实验2:缓冲区溢出课件

上传人:我*** 文档编号:141609544 上传时间:2020-08-10 格式:PPT 页数:41 大小:945.50KB
返回 下载 相关 举报
实验2:缓冲区溢出课件_第1页
第1页 / 共41页
实验2:缓冲区溢出课件_第2页
第2页 / 共41页
实验2:缓冲区溢出课件_第3页
第3页 / 共41页
实验2:缓冲区溢出课件_第4页
第4页 / 共41页
实验2:缓冲区溢出课件_第5页
第5页 / 共41页
点击查看更多>>
资源描述

《实验2:缓冲区溢出课件》由会员分享,可在线阅读,更多相关《实验2:缓冲区溢出课件(41页珍藏版)》请在金锄头文库上搜索。

1、实验二:缓冲区溢出,国家计算机网络入侵防范中心 刘奇旭,内容摘要,实验目的 实验工具 实验步骤 实验报告,1.实验目的,掌握缓冲区溢出的原理 掌握常用的缓冲区溢出方法 理解缓冲区溢出的危害性 掌握防范和避免缓冲区溢出攻击的方法,2.实验工具,溢出对象: CCProxy 6.2 (课上分析) war-ftp 1.65 (自己分析) 3CTftpSvc 2.0.1 (自己分析) 调试工具: CDB/NTSD/WinDbg:这三个工具都包含在Debugging Tools for Windows中(网上有下载) OllyDBG/IDAPro etc. 需要使用高级语言编程 虚拟机(可选,自行安装),

2、3.实验步骤,介绍CCProxy 6.2 CCProxy 6.2缓冲区溢出漏洞说明 CCProxy 6.2缓冲区溢出漏洞演示 CCProxy 6.2缓冲区溢出漏洞利用,3.1 介绍CCProxy,CCProxy因其设置简单和使用方便等特点,成为国内最受欢迎的代理服务器软件。 CCProxy不但支持常见的HTTP和SOCKS代理,而且还支持FTP和Telnet这类不常用的协议及其它协议。,3.2 漏洞说明,CCProxy在代理Telnet协议时,可以接受Ping命令 Ping命令格式:ping hostnamern 当hostname的长度大于或者等于1010字节时,CCProxy 6.2会发生

3、缓冲区溢出,导致程序崩溃,3.3 漏洞演示,在目标主机运行CCProxy,使用默认设置 运行CCProxy的机器IP是192.168.121.129 使用telnet命令连接CCProxy: telnet 192.168.121.129 23 返回信息:,3.3 漏洞演示,输入ping命令,后接畸形数据: ping AAAA 在ping命令后接10个字符A,观察返回信息 将字符A的数量变为100个、1000个、2000个,观察返回信息 如果终端提示“Host not found”,说明CCProxy正确地处理了这个畸形数据,仍工作正常 如果终端提示“失去了跟主机的连接”,表明CCProxy已经

4、崩溃,3.3 漏洞演示,输入1000个A,输入10个A,3.3 漏洞演示,输入2000个A,3.4 漏洞利用,于是,我们可以考虑利用CCProxy 6.2的这个缓冲区溢出漏洞,利用ping命令向其发送一个长的字符串,溢出局部变量,覆盖RET的位置,从而实现程序跳转。 定位RET 寻找跳转指令地址 构造shellcode 定位shellcode存放位置 编写攻击程序,函数栈布局,3.4.1 定位RET,在目标主机上运行CCProxy 用CDB将其挂起 cdb pn ccproxy.exe,3.4.1 定位RET,输入g继续运行 在攻击主机上按前面所述telnet到目标主机上,并通过ping命令把

5、2000个A组成的字符串发送到CCProxy时,CDB捕捉到CCProxy的Access Violation事件,3.4.1 定位RET,可以发现,EIP的内容为41414141(字符A的ASCII码是0 x41) 这是因为栈中存放RET值的地方已经被41414141覆盖,当函数返回时,就将这个值弹出到EIP寄存器 EIP中存放的是程序下一条指令的地址。但程序在0 x41414141地址处找不到可执行的指令,因此报错 很容易想到,如果覆盖RET位置的不是0 x41414141,而是指向某个跳转指令(eg. Jmp esp)的地址呢?,3.4.1 定位RET,查看一下此时各寄存器中的内容 ESP

6、和ESI指向的内容都有我们植入的字符串,3.4.1 定位RET,我们选择ESP寄存器来实现程序流程跳转 即:将shellcode放在ESP寄存器中,然后在RET位置填充一条指向jmp esp指令的地址,于是函数返回时,就能执行jmp esp,跳转到ESP中的shellcode上运行 定位:缓冲区有多大? RET位置在哪里?,3.4.1 定位RET,利用一串不重复的字符填充缓冲区,然后查看覆盖RET的字符串,计算它们在整个字符串中的位置,从而得出缓冲区的大小及RET的偏移 通过patternCreate.pl来生成不重复的字符,3.4.1 定位RET,3.4.1 定位RET,Telnet到目标主

7、机,将这串字符串通过ping命令发送给CCProxy,CDB捕捉到异常,3.4.1 定位RET,EIP寄存器的值为:0 x68423768 通过patternOffset.pl计算出它在整个长为2000的字符串中的偏移是1012,3.4.1 定位RET,这说明,RET相对缓冲区的偏移大小是1012字节。 由于EBP占4字节,故存放局部变量的缓冲区大小为1008字节。,3.4.2 寻找jmp指令地址,前面说到,我们选择通过jmp esp来实现程序跳转,也就是说,要在RET的位置放置jmp esp指令的地址,那么,到哪里找jmp esp指令呢? 最好是能在系统中找到现成的,而不需要我们重新再构造

8、事实上,在Windows系统的许多DLL中都能找到jmp esp这样一条指令,一个通用的地址是0 x7ffa4512,3.4.2 寻找jmp指令地址,前面分析,ping后接字符串的1012字节位置开始的4个字节将覆盖RET 于是,我们便可以在字符串的这个位置上填充0 x120 x450 xfa0 x7f 程序运行到此,就会转向地址0 x7ffa4512找到jmp esp指令并执行,其流程发生变化,3.4.3 构造shellcode,所谓shellcode就是一段能够完成特定功能的机器码,因其最初的功能为获得目标主机的一个shell而得名 由于受目标主机的缓冲区大小限制,shellcode长度一

9、般越小越好 Shellcode一般构造步骤: 用C语言实现功能 将其修改为带有shellcode特点的汇编(精通汇编语言的人可直接使用汇编语言编写程序) 根据汇编程序得到机器码形式的shellcode,3.4.3 构造shellcode,提供了许多通用的Shellcode,3.4.3 构造shellcode,在目标主机中添加一个用户账号hack,3.4.4 定位shellcode存放位置,我们要把shellcode放置在程序崩溃时ESP指向的地址处 那么,程序崩溃时,ESP指向什么位置呢? 同样,我们可以用定位RET偏移的方法来定位ESP指向的位置,3.4.4 定位shellcode存放位置,

10、用CDB挂起CCProxy.exe 利用patternCreate.pl生成长为2000的字符串 用ping命令向目标主机发送这个字符串 在CDB捕捉到CCProxy.exe的崩溃事件时,查看ESP的内容 用patternOffset.pl计算出它在整个长为2000的字符串中的偏移,3.4.4 定位shellcode存放位置,这说明ESP指向字符串的第4个字节 因此,我们把shellcode放在字符串的第4个字节处 由于这段shellcode长度只有476字节,而缓冲区大小为1012字节,足够容纳下shellcode,构造好的exploit的结构如下所示:,3.4.5 编写攻击程序,Socke

11、t编程 连接目标主机(connect) 构造溢出字符串(即构造后接shellcode的ping命令:ping shellcodern) 向目标主机发送溢出字符串(send) 关闭连接,3.4.5 编写攻击程序,运行攻击程序 在目标主机上查看攻击效果,4. 实验说明,可任选CCProxy 6.2/war-ftp 1.65/3CTftpSvc 2.0.1进行溢出实验 截止时间:2010-11-13 3(暂定) 实验分值:20分 选择CCProxy:满分按18分计 选择war-ftp:满分按20分计 选择3CTftpSvc :满分按20分计,4. 实验说明CCProxy,CCProxy官方发现CCP

12、roxy 6.2的这个ping缓冲区溢出漏洞后,对其进行了修补,当ping请求超过255字节时,会自动截断。不过修补后的CCProxy版本号未变 因此,在网上下载的CCProxy 6.2有可能是已修补了该漏洞的程序,4. 实验说明War-ftp,war-ftp漏洞提示:向服务器发送超过480字节的用户名可以触发漏洞(即使用命令USER longStringrn),溢出之后,ESP中的内容包含了longString中的部分内容,4. 实验说明3CTftpSvc,软件名称:3CTftpSvc 影响版本:Current version:2.0.1 漏洞描述:畸形的传输模式可以导致缓冲区溢出,覆盖EIP,可能造成拒绝服务攻击和远程代码执行。 漏洞调试:当传输模式为mode = netascii + A * 469时覆盖EIP,4. 实验说明,实验报告要求 详细分析漏洞的细节 写出详细的实验步骤 附上攻击程序源代码 附上实验过程截图和结果截图 提出防范此类缓冲区溢出漏洞的方法 阐述碰到的问题及解决方法 阐述收获和体会 阅读相关论文,阐述阅读体会,谢谢 ,

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

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

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