欢迎来到天天文库
浏览记录
ID:12189256
大小:1.75 MB
页数:11页
时间:2018-07-16
《软件安全实验第三次实验报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、软件安全第三次实验报告班级:2010211316学号:10211593姓名:曹梦晨1、目标(1)了解shellcode注入原理(2)理解给出的弹出对话框的汇编代码(3)通过淹没静态地址来实现shellcode的代码植入(4)通过跳板来实现shellcode的代码植入(5)尝试修改汇编语句的shellcode实现修改标题等简单操作(6)作业要求:a)详述修改过程b)实验结果需要截图证明c)绘制修改原理的图示(7)思考题通过跳板的方式,修改StackOverrun程序的流程,使其实现弹出对话框、启动notepad.exe并打开文本shellcode.txt(可使用CreateProce
2、ssA或WinExec等API)。2、测试步骤与结果2.1使用静态地址跳转注入shellcodeStep1:首先建立一个新Win32ConsoleApplication工程,命名为m_overflow。图2-1建立m_overflow工程Step2:使用Depends.exe进行运行程序剖析接下来将m_overflow.exe使用该软件剖析,尝试寻找MessageBoxA和exitprocess的入口地址:图2-2进行函数入口点分析首先在kernel32.dll中寻找exitprocess函数的入口点:图2-3寻找exitprocess函数的入口点这里可以看出,kernel32.d
3、ll的入口地址为0x77820000,而exitprocess的入口地址为0x005BBE2。然后将这两个地址相加得到exitprocess的入口地址为:0x7787BBE2。同理,在user32.dll中寻找MessageBoxA的入口地址:图2-4寻找MessageBoxA函数的入口点这里可以看出,user32.dll的入口地址为0x77370000,而exitprocess的入口地址为0x005EA11。然后将这两个地址相加得到exitprocess的入口地址为:0x773CEA11。Step3:接下来建立一个新Win32ConsoleApplication工程,命名为m_s
4、hellcode。图2-5建立m_shellcode工程把里面两个函数的入口地址改为刚才计算所得值,然后尝试运行程序,观看对话框是否正常弹出:图2-6程序运行结果示意图Step4:使用olydbg获取shellcode将带有shellcode的m_shellcode.exe文件使用olydbg分析,获取弹对话框部分的shellcode:图2-7使用olydbg定位到shellcode图2-8将shellcode内容另存为文件图2-9查看保存到的shellcodeStep5:寻找需要注入shellcode的起始地址用VC6调试之前生成的m_overflow.exe,并在目录下添加pa
5、ssword.txt,定位到strcpy代码行,可以发现需要注入的地址:图2-10获取shellcode注入地址这里可以看出,shellcode是要会复制到变量buffer中的,而buffer的地址为0x0012fab8,即我们shellcode要注入的地址。Step6:构建password.txt以注入shellcode这里突然想起来自己的shellcode中存在0x00[‘ ’],为了shellcode不被截断,将0x00调整为0x02,对打印的字符串不影响。图2-11构造带有shellcode的password.txtStep7:执行程序观察shellcode注入效果图2-
6、12观察shellcode注入效果这里可以看出,password中的内容已经成功拷贝到buffer中,接下来观察程序的跳转情况:图2-13观察shellcode注入效果(2)这里可以看出,将函数的返回地址覆盖后,程序成功跳转到了shellcode上,最后程序成功弹出对话框:图2-14观察shellcode注入效果(3)2.2使用跳板注入shellcodeStep1:在上述实验的基础上,继续使用olydbg分析m_overflow.exe图2-15搜索jmp/callesp语句地址使用olydbg打开要分析的m_overflow.exe,搜索jmp/callesp语句的地址,这里可以
7、发现已经找到了不止一条信息。接下来通过日志功能查看具体的语句地址:图2-16定位一条callesp语句地址这里选择了其中一条在kernel32.dll中的callesp语句,对应地址为77874EBF。Step2:依据跳板地址构造password.txt图2-17使用UE进行password.txt编辑由于刚才重启了下电脑,又由于是在win7下做的实验,所以所有的地址都变了,这里先重新定位了一条jmpesp,地址为0x777D4EBF。然后重新定位exitproces
此文档下载收益归作者所有