挖網絡程序初級教程_第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

提交評論