《网络信息安全》上机实验指导

上传人:艾力 文档编号:32773167 上传时间:2018-02-12 格式:DOC 页数:29 大小:664.50KB
返回 下载 相关 举报
《网络信息安全》上机实验指导_第1页
第1页 / 共29页
《网络信息安全》上机实验指导_第2页
第2页 / 共29页
《网络信息安全》上机实验指导_第3页
第3页 / 共29页
《网络信息安全》上机实验指导_第4页
第4页 / 共29页
《网络信息安全》上机实验指导_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《《网络信息安全》上机实验指导》由会员分享,可在线阅读,更多相关《《网络信息安全》上机实验指导(29页珍藏版)》请在金锄头文库上搜索。

1、网络信息安全上机实验指导目 录实验一 Windows 2000 登录漏洞实验二 缓冲区溢出攻击与防护实验三 IIS 的安全机制实验四 拒绝服务攻击的基本原理及防御实验五 Web 欺骗实验六 计算机病毒原理与防范实验一 Windows 2000 登录漏洞警告警告本材料中所有测试程序或方法,可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!使用者风险自负! 【实验目的】通过对 windows 2000 登录漏洞进行试验,从而初步了解系统漏洞对计算机安全的影响,了解漏洞的定义、来源以及相应的解决方案。【实验步骤】1 漏洞描述在 windows 2000 的登录界面上,利用 2000 默认安装中

2、文输入法中的帮助选项,可以绕过其用户名和口令的验证而非法进入系统。2 受影响的系统 Windows 2000 server3 后果非法进入系统,并可能造成系统工作不正常4 实验测试的具体过程1) 、在登陆界面将光标移至用户名输入框2) 、按键盘上的 Ctrl+Shift 键,这时会出现输入法状态条3) 、将鼠标移至输入法状态条点击鼠标右键,出现的对话框中选择帮助,选择操作指南或输入法入门(微软的拼音输入法和智能 ABC 没有这个选项)4) 、出现操作指南或输入法入门窗口5) 、用鼠标左键点击选项按钮,在出现的对话框中选择主页6) 、帮助窗口提示“此页不可显示”等信息,其中有个检测网络设置的链接

3、,点击它就会出现网络设置选项,你可以对网络设置甚至控制面板做任何修改。点击选项按钮,在出现的对话框中选择 Internet 选项,你也可以对主页、连结、安全、高级选项等做任何修改。7) 、最为严重的是用鼠标右键点击选项按钮会出现一个对话框,选择跳至 URL,在其中输入你想看到的路径比如 c:, 帮助窗口的右侧会出现资源管理器 c 盘的界面显示,这时已经是系统管理员权限,可以对你看到的数据做任何的操作。8) 、这样你就绕过了 Windows2000 的登陆验证机制!5 解决方案最终的解决方案还要微软发布补丁程序,临时解决的两个方案如下:解决方案一:删除多余的和有漏洞的输入法1) 、留下你最擅长的

4、一种输入法,其余的输入法全部删除!2) 、内码输入法一定要删除!3) 、删除系统中输入法相应的文件:WINABC.IME 是智能 ABC 输入法PINTLGNT.IME 是微软拼音输入法WINGB.IME 是内码输入法WINPY.IME 是全拼输入法WINSP.IME 是双拼输入法WINZM.IME 是郑码输入法。只能留下微软拼音输入法和智能 ABC 输入法,其余的输入法文件一定要全部删除!解决方案二:删除系统 Winnthelp 目录下的输入法帮助文件WINIME.CHM 对应输入法操作指南WINSP.CHM 对应双拼输入法WINZM.CHM 对应郑码输入法WINPY.CHM 对应全拼输入法

5、实验二 缓冲区溢出攻击与防护警告警告本材料中所有测试程序或方法,可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!使用者风险自负! 【实验目的】缓冲区溢出(buffer flow)是指一种系统攻击的手段,通过往程序的缓冲区写超出其长度的内容,造成缓冲区的溢出,从而破坏程序的堆栈,使程序转而执行其它指令,以达到攻击的目的。据统计:对三种系统:Redhat Linux, Solaris, NT 的攻击总数缓冲区溢出攻击70%,溢出可分为本地溢出和远程溢出(危害大),本实验重点要求了解堆栈溢出,在微机上对一个简单的有溢出漏洞的程序进行攻击及修正。【实验步骤】1 测试环境:操作系统:Window

6、s Professional 2000版本为: 5.00.2195编程工具:Visual Studio - Visual C+ 6.0及 2000 下的 Debug2 缓冲区溢出原因:程序没能仔细检查用户输入的参数3 溢出的样例函数:void overflow(char *s, int size) char buffer80; ssize=0;strcpy( buffer, s ); 该函数的不妥在于 strcpy 函数的调用头文件中 strcpy 的语法描述:char * strcpy(char *, const char *)4 主程序:void main(int argc, char *

7、argv) FILE *file;char buf 300;if(argc (0xc1 - 0xc0) * 0x40 + 0xhh%c0%hh - (0xc0 - 0xc0) * 0x40 + 0xhh因此,利用这种编码我们可以构造很多字符,例如%c1%1c - (0xc1 - 0xc0) * 0x40 + 0x1c = 0x5c = /%c0%2f - (0xc0 - 0xc0) * 0x40 + 0x2f = 0x2f = 如果此编码发生在 IIS 检测处理路径串中的“.”之后,则可以突破 IIS 路径访问到上级目录。2 漏洞描述:(IIS-038)NSFOCUS 安全小组发现 IIS 4

8、.0 和 IIS 5.0 在 Unicode 字符解码的实现中存在一个安全漏洞,导致用户可以远程通过 IIS 执行任意命令。当 IIS 打开文件时,如果该文件名包含unicode 字符,它会对其进行解码,如果用户提供一些特殊的编码,将导致 IIS 错误的打开或者执行某些 web 根目录以外的文件。对于英文版的 IIS 4.0/5.0,此问题同样存在,只是编码格式略有不同,变成%c0%af或者%c1%9c。3 在 windows 2000 server 上进行下述试验:1) 、浏览 IIS 服务器的目录2) 、察看 IIS 服务器上文件的内容3) 、在 IIS 服务器上拷贝和删除文件4) 、从

9、IIS 服务器上下载普通权限不能获取的文件,如口令文件。5) 、修改主页6) 、植入控制程序4 解决方案:1)安装补丁程序 2)没有安装补丁程序之前,暂时采用下列方法临时解决问题:如果不需要可执行的 CGI,可以删除可执行虚拟目录,例如 /scripts 等等。如果确实需要可执行的虚拟目录,建议可执行虚拟目录单独在一个分区。使用最新版本的 Web 服务器,安装最新的补丁程序,正确配置服务器按照帮助文件正确安装 CGI 程序,删除不必要的安装文件和临时文件使用 C 编写 CGI 程序时,使用安全的函数使用安全有效的验证用户身份的方法验证用户的来源,防止用户短时间内过多动作推荐过滤“ | * ?

10、( ) $ n r t 0 # ./”注意处理好意外情况实现功能时制定安全合理的策略培养良好的编程习惯科学严谨的治学态度,避免“想当然”的错误实验四 拒绝服务攻击的基本原理及防御警告警告本材料中所有测试程序或方法,可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!使用者风险自负! 【实验目的】掌握拒绝服务攻击的原理,熟悉 TCP/IP 数据包的格式,能自行构造相应数据包,并能在VC+及 windows2000 平台实现基本的攻击程序,掌握关于拒绝服务相应的防范技术.【实验步骤】第一部分 SYN Flood 的基本原理 SYN Flood 是当前最流行的 DoS(拒绝服务攻击)与 DDoS

11、(分布式拒绝服务攻击)的方式之一,这是一种利用 TCP 协议缺陷,发送大量伪造的 TCP 连接请求,从而使得被攻击方资源耗尽(CPU 满负荷或内存不足)的攻击方式。 要明白这种攻击的基本原理,还是要从 TCP 连接建立的过程开始说起:大家都知道,TCP 与 UDP 不同,它是基于连接的,也就是说:为了在服务端和客户端之间传送 TCP 数据,必须先建立一个虚拟电路,也就是 TCP 连接,建立 TCP 连接的标准过程是这样的:首先,请求端(客户端)发送一个包含 SYN 标志的 TCP 报文,SYN 即同步(Synchronize) ,同步报文会指明客户端使用的端口以及 TCP 连接的初始序号; 第

12、二步,服务器在收到客户端的 SYN 报文后,将返回一个 SYN+ACK 的报文,表示客户端的请求被接受,同时 TCP 序号被加一,ACK 即确认(Acknowledgement) 。 第三步,客户端也返回一个确认报文 ACK 给服务器端,同样 TCP 序列号被加一,到此一个TCP 连接完成。 以上的连接过程在 TCP 协议中被称为三次握手(Three-way Handshake) 。 问题就出在 TCP 连接的三次握手中,假设一个用户向服务器发送了 SYN 报文后突然死机或掉线,那么服务器在发出 SYN+ACK 应答报文后是无法收到客户端的 ACK 报文的(第三次握手无法完成) ,这种情况下服

13、务器端一般会重试(再次发送SYN+ACK 给客户端)并等待一段时间后丢弃这个未完成的连接,这段时间的长度我们称为 SYN Timeout,一般来说这个时间是分钟的数量级(大约为 30 秒-2 分钟) ;一个用户出现异常导致服务器的一个线程等待 1 分钟并不是什么很大的问题,但如果有一个恶意的攻击者大量模拟这种情况,服务器端将为了维护一个非常大的半连接列表而消耗非常多的资源-数以万计的半连接,即使是简单的保存并遍历也会消耗非常多的 CPU 时间和内存,何况还要不断对这个列表中的 IP 进行 SYN+ACK 的重试。实际上如果服务器的 TCP/IP 栈不够强大,最后的结果往往是堆栈溢出崩溃-即使服

14、务器端的系统足够强大,服务器端也将忙于处理攻击者伪造的 TCP 连接请求而无暇理睬客户的正常请求(毕竟客户端的正常请求比率非常之小) ,此时从正常客户的角度看来,服务器失去响应,这种情况我们称作:服务器端受到了 SYN Flood 攻击(SYN 洪水攻击) 。 从防御角度来说,有几种简单的解决方法,第一种是缩短 SYN Timeout 时间,由于 SYN Flood 攻击的效果取决于服务器上保持的 SYN 半连接数,这个值=SYN 攻击的频度 x SYN Timeout,所以通过缩短从接收到 SYN 报文到确定这个报文无效并丢弃改连接的时间,例如设置为 20 秒以下(过低的 SYN Timeo

15、ut 设置可能会影响客户的正常访问) ,可以成倍的降低服务器的负荷。第二种方法是设置 SYN Cookie,就是给每一个请求连接的 IP 地址分配一个 Cookie,如果短时间内连续受到某个 IP 的重复 SYN 报文,就认定是受到了攻击,以后从这个 IP 地址来的包会被一概丢弃。可是上述的两种方法只能对付比较原始的 SYN Flood 攻击,缩短 SYN Timeout 时间仅在对方攻击频度不高的情况下生效,SYN Cookie 更依赖于对方使用真实的 IP 地址,如果攻击者以数万/秒的速度发送 SYN 报文,同时利用 SOCK_RAW 随机改写 IP 报文中的源地址,以上的方法将毫无用武之地。第二部份 SYN Flooder 源码解读下面我们来分析 SYN Flooder 的程序实现。首先,我们来看一下 TCP 报文的格式:0 1 2 3 4 5 60 2 4 6 8 0 2 4 6 8 0 2 4 6 8 0 2 4 6 8 0 2 4 6 8 0 2 4 6 8 0 2 4+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+| 首部 | 首部 | 数据段 |+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号