中科大网络安全题库 下载本文

内容发布更新时间 : 2024/5/21 2:49:03星期一 下面是文章的全部内容请认真阅读。

Server start get connect from 0xc0a80102 : 0xc927 write ok!

client执行效果如下: Hello,welcome to client ! socket ok !

s_addr = 0x201a8c0 ,port : 0x8888 connect ok ! read ok REC:

hello,welcome to my server

5.用netcat 在本机开启一个监听端口 netcat –na

6.简述Windows命令行程序及Path环境变量的用途

cmd.exe是微软Windows系统的命令行程序,类似于微软的DOS操作系统。cmd.exe是一个16/32位的命令行程序。 cmd.exe是一个Windows程序,作为一个DOS的命令行解释程序。

Path环境变量:指定命令搜索路径,在命令行下面执行命令时,程序会到Path变量所指定的路径中查找看是否能找到相应的命令程序。 7.Windows和Linux系统下符合查看本机网络连接状态 Ping 命令,ping www.http://www.35331.cn/ 看是否能Ping通。 8.如何查看远程主机开放了哪些网络端口 命令:netstate –an 用于查看自己所开放的端口 netstate –bn 用于查看是哪个进程建立了连接 查看远程主机的端口,可使用端口扫描工具nmap等

添加计划任务命令at:at \\\\192.168.11.203 13:42 server.exe 指定时间运行特定程序 查看修改文件夹权限命令cac ls:将C:\\test.bmp的文件访问权限更改为netkey完全控制,cacls C:\\test.bmp /G netkey:f

回显命令echo:用echo和>>符号可以把命令结果导出到某文件中

echo hacked by netkey > index.html //用 ** 覆盖 index.html echo hacked by netkey >> index.html //在 index.html尾部添加** 命令行下注册表修改:regedit/s netkey.reg 将netkey.reg 导入到注册表中

regedit/e filename.reg regpath 将注册表中的某些相值导出。 查看当前系统用户情况命令query: query user 查看当前系统的回话 终止回话命令logoff:【sessionname|sessionid】

DNS查看nslookup :nslookup www.163.com 查询域名对应的IP地址。

第三章

1.为什么要使用TCP Ping 进行探测?

随着人们信息安全意识的提高,人们一般用防火墙阻塞ICMP echo request 信息包,所以必须使用TCP Ping来进行探测。

TCP Ping通过扫描每个潜在IP地址上的常用端口,只要能标识出目标系统上存在开放的端口,就可以断定该主机是活跃的。主要通过两种方式实现:①向目标主机通常会提供服务的端口如80端口发送一个TCP ACK包,然后检测回应的包,若收到RST回应,则表名该机器是活跃的②向目标主机的80等端口发送一个SYN信息包并等待RST或SYN|ACK响应。

此方法的缺点是:探测过程较长,而且不总是有确定的结论 2.用什么方法可以探测到目标主机当前的时间

利用ICMP协议的时戳探测报文,能够获取对该时戳请求有响应的目标机器的当前时钟。有利于攻击者分析和破解建立在时间基础上的认证协议。 3.按漏洞可能对系统造成的直接威胁分类,漏洞可以分成哪几类

①远程管理员权限②本地管理员权限③普通用户访问权限④权限提升⑤读取受限文件⑥远程拒绝服务⑦本地拒绝服务⑧远程非授权文件存取⑨口令回复⑩欺骗(11)服务器信息泄漏(12)其他漏洞

4.列举常用的操作系统类型探测技术

①传统操作系统类型探测技术②基于TCP/IP协议栈的指纹探测,其中包括两大部分:在传输层实现的基于TCP协议的指纹探测技术和在IP层实现的基于ICMP协议的指纹探测技术 在传输层实现的基于TCP协议的指纹探测技术包括以下几个方面:1.FIN探测2.BOGUS(伪造)标记位探测3.TCP ISN取样4.“无碎片”标记位5.TCP初始化“窗口”6.ACK值7.ICMP错误信息查询8.ICMP错误信息引用9.服务类型(TOS)10.片段(碎片)处理11.TCP选项 ③基于ICMP协议的指纹探测技术 5.按漏洞的成因分类:

①输入验证错误②访问验证错误③竞争条件④意外情况处置错误⑤设计错误⑥配置错误⑦环境错误

6.操作系统指纹探测的基本过程:①建立指纹特征库②获取目标的协议指纹③进行特征匹配 第四章

1.函数调用时所建立的栈帧包含了哪几方面的信息

①函数的返回地址②调用函数的栈帧信息③为函数的局部变量分配的空间④为被调用函数的参数分配的空间

2.在什么条件下会发生缓冲区溢出错误,溢出错误一定能被利用以执行用户的代码吗?

如果用大于目标缓冲区大小的内容来向缓冲区进行填充时,就可以改写函数保存在函数栈帧中的返回地址,从而改变程序的执行流程,执行注入在栈中的代码,实现缓冲区溢出攻击。 不一定

3.用图简述Linux IA32的进程内存映像

低地址 .text .data .bss Heap 未使用 Stack 高地址 环境 4.Linux系统下进程的环境变量的起始地址是固定的吗? 5.如果Linux下的simple_overflow.c程序中的smallbuf 缓冲区大小为29字节,通过gdb调试,确定smallbuf的首地址与main()的返回地址相距多少字节。

第五章

1.简述shellcode的概念以及编写shellcode的步骤

Shellcode是一段机器指令,用于在溢出之后改变系统正常流程,转而执行shellcode从而入侵目标系统。

编写Linux IA32的shellcode的步骤:①编写简洁的能完成所需功能的c程序②反汇编可执行代码,用系统功能调用代替函数调用,用汇编语言实现相同的功能③提取出操作码,写成shellcode,并用C程序验证。

2.Linux环境下的shellcode为什么不调用libc中的库函数,而是利用系统调用? Shellcode是一组可注入的指令,可在被攻击的程序内运行,由于shellcode要直接操作寄存器,通常用汇编语言编译并翻译成十六进制操作码,而操纵程序的方法之一是强制它产生系统调用。另外,Linux下每一个函数实际上都是由系统调用实现的。例程实现正常退出的功能,最终使用了系统调用。

在libc库中的库函数的地址映射到代码段的低地址,使每个库函数的地址都有从OX00开始,但通常溢出都发生在字符串拷贝中,所以这样攻击就很难完成,通过字符串来传递这个库函数地址以及后续 参数,所以采用系统调用。 3.编写一个获得zsh的shellcode。

第六章

1.假设WindowsXP下存在缓冲区溢出漏洞的某程序的缓冲区大小为77字节,用图说明跳转地址和shellcode应如何放置。

偏移地址=上取整(sizeof(buffer)/4.0)*4+4 对于本例,偏移=上取整(77/4.0)*4+4 =84 即返回地址=缓冲区地址+偏移量84

2.上机实践 用windbg确定返回地址离sl首地址的距离 void overflow(char * s,int size) {

char sl[99]; int len;

len=strlen(s);

printf(“receive %d bytes”,size); s[size]=0; strcpy(sl,s); }

第七章 1.实验题目

2.修改GetKernel32FunAddress.cpp,打印出kerner32.dll所有的输出函数及其地址 3.为什么传统的(Linux/Unix)把堆栈中shellcode所在的大致地址覆盖函数返回地址的溢出方法在Windows下可行性不高。

在Windows和Linux/Unix的内核设计、内存管理都很不一样,而且Windows下的程序特别推崇多线程,这就导致堆栈位置不固定,所以Linux/Unix传统的把堆栈中shellcode所在的大致地址覆盖函数返回地址的溢出方法在Windows下可行性不高。 第八章

1.简述Smurf攻击的过程

①攻击者向方法网络的广播细致发送源地址伪造成受害者IP地址的ICMP返回请求分组,这样看起来是受害者的主机发起了这些请求,导致放大网络上所有的系统都将对受害者的系统做出响应。②网络中的所有主机都会向欺骗性分组的IP地址发送echo响应,如果这是一个很大的以太网段,可以会有几百个主机对收到的echo请求进行回复③由于多数系统都会尽快的处理ICMP传输信息,Attacker把分组的源地址设置为目标系统的IP地址,目标系统很快就会被大量的echo信息吞没,这样轻而易举的就能够阻止该系统处理其他任何网络传输,从而拒绝为正常系统提供服务。 2.简述SYN Flood 的攻击原理

攻击者向服务器发送大量伪造IP地址的TCP连接请求,由于IP地址是伪造的,无法完成最后一次握手,这样在服务器中有大量的半开连接,侵占了服务器的资源。如果在超时时限之内半开连接超过了上线,则服务器将无法相应新的正常连接。 3.修改Windows注册表,防止SYN攻击

与SYN Flood相关的注册表键为

HKEY_LOCAL_MACHINE\\Systems\\CurrentControlSet\\Tcpip\\Parameters

①增加一个SynAttackProtect的键值,类型为REG_DWORD 取值范围是0-2 ,推荐设为2

②增加一个TcpMaxHalfOpen的键值,类型为REG_DWORD 取值范围是100-0xFFFF,这个值为系统允许同时打开的半连接。

③增加一个TcpMaxHalfOpenRetried的键值,类型为REG_DWORD 取值范围是80-0xFFFF,这个值决定在什么情况下系统会打开SYN攻击保护。 4.DoS的攻击目的是什么

拒绝服务即Denial of Service,简称DoS。造成DoS的攻击行为被称为DoS攻击,其目的是使计算机或网络无法提供正常的服务,导致合法用户无法访问系统资源,从而破坏目标系统的可用性。

5.早期的DoS和现代的DoS方法有什么主要区别

早期的DoS攻击主要利用操作系统或应用软件的缺陷。现代的DoS试图耗尽目标系统(通信层和应用层)的全部能力,让它无法为合法用户提供服务(或不能及时提供服务)

6.简述带宽攻击和连通性攻击

带宽攻击本质是攻击者消耗掉某个网络的所有可用带宽:①攻击者因为有更多的可用带宽而能够造成受害者网络的拥塞。②攻击者通过征用多个网点集中拥塞受害者的网络,以放大他们的DoS攻击效果

带宽攻击指以极大的通信量冲击网络,使得所有可用网络资源都被消耗殆尽,最后导致合法的用户请求就无法通过。

连通性攻击指用大量的连接请求冲击计算机,使得所有可用的操作系统资源都被消耗殆尽,最终计算机无法再处理合法用户的请求。

7.何谓分布式拒绝服务DDoS

分布式拒绝服务即DdoS,是一种分布、协作的大规模拒绝服务攻击方式。为了攻击大型站点,可以利用一大批(数万台)受控制的机器向一台及其(某一站点)发起攻击。这样的攻击成为DdoS攻击。 8.简述如何防止Smurf攻击

①增加连接队列的大小,增加SYN-Flood攻击的难度②缩短连接建立超时时限③应用厂家检测及规避潜在的syn攻击的相关软件补丁④应用网络IDS产品⑤使用退让策略避免被攻击⑥修改注册表,减低SYN Flood的危害

9.为什么基于DNS解析的负载均衡架构具有对SYN Flood攻击的免疫力

基于DNS解析的负载均衡能将用户的请求分配到不同IP的服务器主机上,攻击者攻击的永远只是其中一台服务器,虽然说攻击者也能不断去进行DNS请求从而打破这种“退让”策略,但是一来这样增加了攻击者的成本,二来过多的DNS请求可以帮助我们追查攻击者的真正踪迹(DNS请求不同于SYN攻击,是需要返回数据的,所以很难进行IP伪装)。

第九章

1.狭义病毒的特征是什么?广义病毒的特征是什么?蠕虫病毒的特征是什么?

狭义病毒即传统意义上的病毒,指那种既具有自我复制能力,又必须寄生在其他程序(或文件)中的恶意代码。即同时具有寄生性和感染性的恶意代码。 广义病毒: ①感染性②非授权性③潜伏性④可触发性⑤破坏性