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

下载本文档

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

文档简介

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

不管这些命令是什么意思,任选一个输入,观察一下Vulnserver的反应,比如我们选择HTER1234。观察Vulnserver,可知道它确实接收到了数据。至此我们已经找到了目标程序的接受的数据格式,所以以HTER[hter_value]为数据模型,编写peachpit模板。2.编写peachpit模板复制一个模板peachpit文件,对它进行修改是一个聪明的做法。然后就是对它的几个模块进行分析和改写。DataModel我们要进行变异的数据为命令行"HTER[可选值]”,HTER和之后的一个空格是必要格式,不能对此进行变异,还要在命令后加一个换行符,所以数据模块应为:〈DataModelname="DataHTER"〉〈Stringvalue="HTER"mutable="false"token="true"/>〈Stringvalue=""/><Stringvalue="\r\n"mutable="false"token="true"/>〈/DataModel〉请注意,HTER后有一个空格。StateModelVulnserver是一个服务器程序,我们理解它的收发数据的过程为,先对发送请求的程序(测试过程中,这个程序为peachfuzzer)回应一个数据DataResponse,然后接受一个数据DataHTER(即我们进行模糊测试的数据),最后再回应一个数据DataResponse,所以还需要有一个DataModel为DataReSponse的,不对它进行格式定义,因为我们要用测试的是DataHTER数据块。所以,StateModel应为:〈StateModelname="StateHTER"initialState="Initial"><Statename="Initial">〈Actiontype="input">〈DataModelref="DataResponse"/>〈/Action〉<Actiontype="output">〈DataModelref="DataHTER"/>〈/Action〉<Actiontype="input"><DataModelref="DataResponse"/></Action></State>〈/StateModel〉DataResponse为:〈DataModelname="DataResponse"〉〈Stringvalue=""/>〈/DataModel〉Agent对于Agent的配置,本教程先不去深究每一个元素和属性的意义,在此需要配置的是Windbg的路径和启动目标程序的命令行。〈Agentname="RemoteAgent"location="tcp://127.0.0.1:9001"〉〈Monitorname="Debugger"class="WindowsDebugger"><Paramname="CommandLine"value="C:\ProgramFiles\vulnserver\vulnserver.exe"/><Paramname="WinDbgPath"value="C:\ProgramFiles\DebuggingToolsforWindows(x86)"/>〈/Monitor〉〈/Agent〉TestTest是测试的配置,它需要指定Agent(因为一个Peachpit文件里可能不止一个Agent),指定StateModel(原因同Agent),配置Publisher和Logger。Publisher是数据交换的接口,Logger主要配置日志路径,默认在当前工作空间。<Testname="TestHTER"><Agentref="RemoteAgent"/><StateModelref="StateHTER"/><Publisherclass="TcpClient"><Paramname="Host"value="127.0.0.1"/><Paramname="Port"value="9999"/></Publisher><Loggerclass="File"><Paramname="Path"value="Logs"/></Logger></Test>到此为止Peachpit文件编写完毕,下一步就是启动模糊测试!

3.模糊测试首先要启动一个Agent,告诉匕使用TCP信道。这个Agent会在peach的指导下,负责每次测试打开Vulnserver程序,并在程序出现崩溃时,检测出来,调用Windbg,复制现场等工作。c*命令提示符-Peach-atcpMicrosoftWindowsXP 5.1.2600]<C>版权所有1985-2001MicrosoftCorp.C:XDocumentsandSe11ingsSadm>Peach-atcp[[Peachu3.0[[Cop^iriijlitCc>Michae1Eddingrton[*1Startingaorentseruer一一PressENTERtoquitaccent一一MicrosoftUindousXP[版本MicrosoftUindousXP[版本5.1.2600]<C>版权所有1985-200丄MicrosoftCorp.C:\DocumentsandSettings\adn>PeachC:\peach\samplesMiter-xmlTestHTER[[Peachu3.0[[Gopyuight: MicJiac1Eddin^rtonL*]TestJTestHTER^startingwithrandomseed55312.[R1 Performincfiteration[1,-,-]Performingiteva.tion[*]Fussing:DataHTER・DataElementJ[*]Mutatoi':UnicadeBomMLiitatDi'[2.—-1Performingiteration[*]Fuzzing:DataHTER-DataElementJ[*]Mutcitof=DrttdElenientDupliica.telli.Ltatiait'L3,-,-lPei'fopmingiteration[*]Fuzzing:DataHTER.DataEl巳EEnt」[*]Mutatop:DataElementSwaphlearNodesMutator测试跑了一会,出现crash,如下图所示。

心\命令崔示符-PeachC:\peach\sa>ples\hter.xmITestHTER-r[*]Fuzzing:DataHTER■DataElement_l[*]Mutator:UnicodeBomHutator[1440 Pepformingiteration[*1Fuseing:DataHTER■DataElement_l[*1Mutatov:StringMutatop——CaucfhtfauItatiteration1440,tryingtoreproduce——[1440,-^-1Performingiteration[*1Fuseing:DataHTER■DataElcncnt_l[*1Mutator:StringMutator—Reproducedfaultatiteratian1440一一[1441 Perforuingiteration[*1Fuzzing:DataHTER■DataElement_l[*]Mutator:DataElementRemoueMutator[1442j■一厂]Performingiteration[*]Fuzzing:DataHTER.DataElement_l[*1Mutator:DataElementSwapNeai'NodesMutator4.Crash分析在测试进行一段时间后,你会在路径C:\DocumentsandSettings\adm\logs下发现文件夹hter.xml_Default_2015xxxxxx这里面便是存放错误现场的文件夹。打开此文件夹,里面有个Faults文件夹,继续打开有EXPLOITABLE_0xXXXXXX的文件夹。Peach有一个优点,它使用WinDbg时,会自动调用一个Microsoft,MSECDebuggerExtensions的模块,这个模块会尝试分辨每次崩溃是不是可利用的,因此Faults里还可能有一个NO_EXPLOITABLE_XXX的文件夹。打开EXPLOITABLE_0xXXXXXX文件夹,里面有若干个带有数字编号的文件夹,里面存放着各个编号的测试用例导致的崩溃的现场。□回区文件®编辑⑥查看过收藏®工具心帮助⑪©后退T 卫搜索昶7文件夹|;話|T地址 C:\Documentsand^ttingS\adm\lofs\hter.xml_Defwult_2015031320E608\Faults\EXFLOIT转到龙件和玄件夹任务二创逹一八新文件夹透将这于文件夹发布到▼WeL氐共享此文件夹£3207719252Z07其它位置□回区文件®编辑⑥查看过收藏®工具心帮助⑪©后退T 卫搜索昶7文件夹|;話|T地址 C:\Documentsand^ttingS\adm\lofs\hter.xml_Defwult_2015031320E608\Faults\EXFLOIT转到龙件和玄件夹任务二创逹一八新文件夹透将这于文件夹发布到▼WeL氐共享此文件夹£3207719252Z07其它位置Faults我的文档共享文档我的电脑网上邻尼2381 亡丁2381详纳信息 站】任意打开一个文件夹,这便包含此测试用例导致崩溃的所有现场资料。最主要的两个文件是导致程序崩溃的输入,和崩溃时的栈回溯。■1440文件②编辑⑥查看②收藏(A)工具①帮比⑪©傩”0〒费卩搜索后文斗夹QIP地址也)ICJC:\3ocumentsandSettings\admVlogiVhter.xt)1_De£a<Lt_20150313205638\Faults\EXPLOIT转到玄件和童件夹任务arLiiijwsDebupErLEi---文本文档19KB注ctiun._2JJutput_VrLkntiwnAct2.txt文本文档n创逹一于新文件吴对将这亍文件夹发冇到NWeb馬共享此文件夹actiorL_l_lTLput_lJrilrLijwnAtion1.t:i:t文本文档actiun_3InputUtJtlcatlAction3.txt文本文档hXnUllAbLE_UxZ54db1讥我的文裆北亨立档我的电脑网上邻居其它位置£!□巴JSWiaduWEDebiigErLEi■-文本丈档19KBft-EXPLOITABLE0x264d5172OxOOOOOODO打开栈回溯文件,可以看到这是典型的栈溢出所具备的样子。ModLoad:71a0OO0O71a08O0OC:\WIND0WS\System32\wshtcpip.dll(2484.24a4):A

温馨提示

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

评论

0/150

提交评论