挖网络程序初级教程_第1页
挖网络程序初级教程_第2页
挖网络程序初级教程_第3页
挖网络程序初级教程_第4页
挖网络程序初级教程_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、序本文描述了一个用Peach挖掘漏洞的全过程,目的在于给想要学习的人一个总体上的理解。所用目标程序特别设计,有明显缺陷,因此不作为日后漏洞挖掘难度的参考。特别提醒,正因此程序有明显漏洞,所以不能在网络情况下,运行在自己的主机上,这样可能会被人拿到控制。实验环境:XP-SP3虚拟机 + peach运行环境1. 研究目标程序本教程选取的是Vulnserver,一个自行设计有脆弱点的应用程序,通常用来练习漏洞利用技术。这是一个基本的服务器程序,接受TCP连接,并接受任意输入,这些输入可能会导致缓冲区溢出和SHE重写等漏洞。Vulnserver默认开启的端口号为9999,我们用netcat程序给Vul

2、nserver发送数据,来观察它接受怎样的输入。Vulnserver程序和netcat程序在教程文件夹里都有。首先让我们先打开Vulnserver程序。先不管Vulnserver程序,再打开netcat程序,连接9999端口,并输入HELP查询可以输入的命令。不管这些命令是什么意思,任选一个输入,观察一下Vulnserver的反应,比如我们选择HTER 1234。观察Vulnserver,可知道它确实接收到了数据。至此我们已经找到了目标程序的接受的数据格式,所以以HTER hter_value为数据模型,编写peach pit模板。2. 编写peach pit模板复制一个模板peach pit

3、文件,对它进行修改是一个聪明的做法。然后就是对它的几个模块进行分析和改写。2.1. DataModel我们要进行变异的数据为命令行“HTER 可选值”,HTER和之后的一个空格是必要格式,不能对此进行变异,还要在命令后加一个换行符,所以数据模块应为:<DataModel name="DataHTER"><String value="HTER " mutable="false" token="true" /><String value="" /><Stri

4、ng value="rn" mutable="false" token="true" /></DataModel>请注意,HTER后有一个空格。2.2. StateModelVulnserver是一个服务器程序,我们理解它的收发数据的过程为,先对发送请求的程序(测试过程中,这个程序为peach fuzzer)回应一个数据DataResponse,然后接受一个数据DataHTER(即我们进行模糊测试的数据),最后再回应一个数据DataResponse,所以还需要有一个DataModel为DataReSponse的,不对

5、它进行格式定义,因为我们要用测试的是DataHTER数据块。所以,StateModel应为:<StateModel name="StateHTER" initialState="Initial"><State name="Initial"><Action type="input"><DataModel ref="DataResponse" /></Action><Action type="output">

6、<DataModel ref="DataHTER" /></Action><Action type="input"><DataModel ref="DataResponse" /></Action></State></StateModel>DataResponse为:<DataModel name="DataResponse"> <String value="" /></DataMo

7、del>2.3. Agent对于Agent的配置,本教程先不去深究每一个元素和属性的意义,在此需要配置的是Windbg的路径和启动目标程序的命令行。<Agent name="RemoteAgent" location="tcp:/127.0.0.1:9001"><Monitor name="Debugger" class="WindowsDebugger"><Param name="CommandLine" value="C:Program File

8、svulnservervulnserver.exe" /><Param name="WinDbgPath" value="C:Program FilesDebugging Tools for Windows (x86)" /></Monitor></Agent>2.4. TestTest是测试的配置,它需要指定Agent(因为一个Peach pit文件里可能不止一个Agent),指定StateModel(原因同Agent),配置Publisher和Logger。Publisher是数据交换的接口,Log

9、ger主要配置日志路径,默认在当前工作空间。<Test name="TestHTER"><Agent ref="RemoteAgent" /><StateModel ref="StateHTER"/><Publisher class="TcpClient"><Param name="Host" value="127.0.0.1" /><Param name="Port" value=&quo

10、t;9999" /></Publisher><Logger class="File"><Param name="Path" value="Logs" /></Logger></Test>到此为止Peach pit文件编写完毕,下一步就是启动模糊测试!3. 模糊测试首先要启动一个Agent,告诉它使用TCP信道。这个Agent会在peach的指导下,负责每次测试打开Vulnserver程序,并在程序出现崩溃时,检测出来,调用Windbg,复制现场等工作。接下来就

11、可以启动测试了。测试跑了一会,出现crash,如下图所示。4. Crash分析在测试进行一段时间后,你会在路径C:Documents and Settingsadmlogs下发现文件夹hter.xml_Default_2015xxxxxx,这里面便是存放错误现场的文件夹。打开此文件夹,里面有个Faults文件夹,继续打开有EXPLOITABLE_0xXXXXXX的文件夹。Peach有一个优点,它使用WinDbg时,会自动调用一个Microsoft, MSEC Debugger Extensions的模块,这个模块会尝试分辨每次崩溃是不是可利用的,因此Faults里还可能有一个NO_EXPLOITABLE_XXX的文件

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论