黑客實(shí)例講解木馬的分析方法!
以前有過(guò)一款國產(chǎn)木馬,它有個(gè)好聽(tīng)的名字,叫做“廣外女生”。這個(gè)木馬是廣東外語(yǔ)外貿大學(xué)“廣外女生”網(wǎng)絡(luò )小組的作品,它可以運行于WIN98,WIN98SE,WINME,WINNT,WIN2000或已經(jīng)安裝Winsock2.0的Win95/97上。與以往的木馬相比,它具有體積更小、隱藏更為巧妙的特點(diǎn)??梢灶A料,在將來(lái)的日子里它會(huì )成為繼“冰河”之后的又一流行的木馬品種。
本文引用地址:http://dyxdggzs.com/article/201706/357346.htm由于“廣外女生”這個(gè)木馬的駐留、啟動(dòng)的方法比較具有典型性,下面我就通過(guò)對這種新型木馬的詳細分析過(guò)程來(lái)向大家闡述對一般木馬的研究方法。下面的測試環(huán)境為Windows2000中文版。
一、所需工具
1.RegSnap v2.80 監視注冊表以及系統文件變化的最好工具
2.fport v1.33 查看程序所打開(kāi)的端口的工具
3.FileInfo v2.45a 查看文件類(lèi)型的工具
4.ProcDump v1.6.2 脫殼工具
5.IDA v4.0.4 反匯編工具
二、分析步驟
一切工具準備就緒了,我們開(kāi)始分析這個(gè)木馬。一般的木馬的服務(wù)器端一旦運行之后都會(huì )對注冊表以及系統文件做一些手腳,所以我們在分析之前就要先對注冊表以及系統文件做一個(gè)備份。
首先打開(kāi)RegSnap,從file菜單選new,然后點(diǎn)OK。這樣就對當前的注冊表以及系統文件做了一個(gè)記錄,一會(huì )兒如果木馬修改了其中某項,我們就可以分析出來(lái)了。備份完成之后把它存為Regsnp1.rgs。
然后我們就在我們的電腦上運行“廣外女生”的服務(wù)器端,不要害怕,因為我們已經(jīng)做了比較詳細的備份了,它做的手腳我們都可以照原樣改回來(lái)的。雙擊gdufs.exe,然后等一小會(huì )兒。如果你正在運行著(zhù)“天網(wǎng)防火墻”或“金山毒霸”的話(huà),應該發(fā)現這兩個(gè)程序自動(dòng)退出了,很奇怪嗎?且聽(tīng)我們后面的分析?,F在木馬就已經(jīng)駐留在我們的系統中了。我們來(lái)看一看它究竟對我們的做了哪些操作。重新打開(kāi)RegSnap,從file菜單選new,然后點(diǎn)OK,把這次的snap結果存為Regsnp2.rgs。
從RegSnap的file菜單選擇Compare,在First snapshot中選擇打開(kāi)Regsnp1.rgs,在Second snapshot中選擇打開(kāi)Regsnp2.rgs,并在下面的單選框中選中Show modifiedkey names and key values。然后按OK按鈕,這樣RegSnap就開(kāi)始比較兩次記錄又什么區別了,當比較完成時(shí)會(huì )自動(dòng)打開(kāi)分析結果文件Regsnp1-Regsnp2.htm。
看一下Regsnp1-Regsnp2.htm,注意其中的:
|
意思就是兩次記錄中,沒(méi)有刪除注冊表鍵,修改了15處注冊表,新增加了一處注冊表。再看看后邊的:
|
這一段話(huà)的意思就是,在C:WINNTSystem32目錄下面新增加了一個(gè)文件diagcfg.exe,這個(gè)文件非??梢?,因為我們在比較兩次系統信息之間只運行了“廣外女生”這個(gè)木馬,所以我們有理由相信diagcfg.exe就是木馬留在系統中的后門(mén)程序。不信的話(huà)你打開(kāi)任務(wù)管理器看一下,會(huì )發(fā)現其中有一個(gè)DIAGCFG.EXE的進(jìn)程,這就是木馬的原身。但這個(gè)時(shí)候千萬(wàn)不要刪除DIAGCFG.EXE,否則系統就無(wú)法正常運行了。
木馬一般都會(huì )在注冊表中設置一些鍵值以便以后在系統每次重新啟動(dòng)時(shí)能夠自動(dòng)運行。我們再來(lái)看看Regsnp1-Regsnp2.htm中哪些注冊表項發(fā)生了變化,憑借經(jīng)驗應該注意到下面這條了:
|
這個(gè)鍵值由原來(lái)的%1 %*被修改為了C:WINNTSystem32DIAGCFG.EXE %1 %*,因為其中包含了木馬程序DIAGCFG.EXE所以最為可疑。那么這個(gè)注冊表項有什么作用呢?
它就是運行可執行文件的格式,被改成C:WINNTSystem32DIAGCFG.EXE %1。%*之后每次再運行任何可執行文件時(shí)都要先運行C:WINNTSystem32DIAGCFG.EXE這個(gè)程序。
原來(lái)這個(gè)木馬就是通過(guò)這里做了手腳,使自己能夠自動(dòng)運行,它的啟動(dòng)方法與一般普通木馬不太一樣,一般的木馬是在
|
鍵里增加一個(gè)鍵值,使自己能夠自啟動(dòng),但這種方法被殺毒軟件所熟知了,所以很容易被查殺。而“廣外女生”這個(gè)木馬就比較狡猾,它把啟動(dòng)項設在了另外的位置。
現在我們已經(jīng)掌握了這個(gè)木馬的駐留位置以及在注冊表中的啟動(dòng)項,還有重要的一點(diǎn)就是我們還要找出它到底監聽(tīng)了哪個(gè)端口。使用fport可以輕松的實(shí)現這一點(diǎn)。在命令行中運行fport.exe,可以看到:
|
我們可以清楚的看到,木馬程序監聽(tīng)在TCP的6267號端口上了。我們到目前為止就可以說(shuō)掌握了“廣外女生”這個(gè)木馬在我們系統中的全部動(dòng)作了,現在我們可以輕而易舉的查殺它了。
三、查殺
經(jīng)過(guò)前面的分析我們已經(jīng)了解了“廣外女生”這種木馬的工作方式,現在我們就來(lái)清除它。下面就是徹底清除“廣外女生”的方法,注意:這個(gè)步驟的次序不能顛倒,否則可能無(wú)法完全清除掉此木馬。
1.按“開(kāi)始”菜單,選擇“運行”,輸入regedit,按確定。打開(kāi)下面鍵值:
|
但是先不要修改,因為如果這時(shí)就修改注冊表的話(huà),DIAGCFG.EXE進(jìn)程仍然會(huì )立刻把它改回來(lái)的。
2.打開(kāi)“任務(wù)管理器”,找到DIAGCFG.EXE這個(gè)進(jìn)程,選中它,按“結束進(jìn)程”來(lái)關(guān)掉這個(gè)進(jìn)程。注意,一定也不要先關(guān)進(jìn)程再打開(kāi)注冊表管理器,否則執行regedit.exe時(shí)就又會(huì )啟動(dòng)DIAGCFG.EXE。
3.把
|
的鍵值由原來(lái)的C:WINNTSystem32DIAGCFG.EXE %1 %*改為%1 %*。
4.這時(shí)就可以刪除C:WINNTSystem32目錄下的DIAGCFG.EXE了。切記萬(wàn)萬(wàn)不可首先刪除這個(gè)文件,否則的話(huà)就無(wú)法再系統中運行任何可執行文件了。由于我們下面還打算進(jìn)一步深入分析這個(gè)木馬,所以現在不刪除它,而是把它拷貝到其他的目錄以便研究。
四、深入研究
我們已經(jīng)知道了“廣外女生”的基本工作原理、啟動(dòng)流程以及如何徹底清除它了,但是還有一點(diǎn)我們沒(méi)有徹底弄清楚,那就是它是如何對付“天網(wǎng)防火墻”或“金山毒霸”的。要深入了解這一點(diǎn),我們必須要去看“廣外女生”的代碼,這個(gè)木馬并沒(méi)有公布源代碼,但是我們仍然可以通過(guò)反匯編它來(lái)看個(gè)究竟。
“廣外女生”的服務(wù)器端只有96K,顯然是使用了壓縮軟件進(jìn)行了加殼的,我們首先就要確定它到底加了什么殼。通過(guò)使用FileInfo這個(gè)小工具就可以偵測出來(lái)?,F在我們就把前面分析過(guò)的那個(gè)DIAGCFG.EXE復制到FileInfo的目錄下,然后在命令行下fi.exe,然后按回車(chē),就會(huì )顯示:
|
FileInfo就已經(jīng)檢測出DIAGCFG.EXE是使用了ASPack v1.06b進(jìn)行加殼。知道了它的加密方法我們就可以使用ProcDump來(lái)把它脫殼了。
運行ProcDump,點(diǎn)擊Unpack按鈕,因為我們要脫ASPack v1.06b的殼,所以就在其中選中Aspack108,然后按OK。這時(shí)它會(huì )讓你打開(kāi)要脫殼的文件,我們就選DIAGCFG.EXE,打開(kāi)。然后稍微等幾秒種后按“確定”,ProcDump就會(huì )把DIAGCFG.EXE脫殼,然后會(huì )出個(gè)對話(huà)框要你把脫殼過(guò)的文件存盤(pán),我們就把它存為gwns.exe。
注意:這時(shí)候,木馬又在你的系統上運行了一次,所以必須按照前面的清除步驟重新把它清除掉。由于前面已經(jīng)寫(xiě)過(guò)清除方法,這里就不再贅述了。
好了,現在我們已經(jīng)得到了這個(gè)木馬加殼前的原始文件了,看看脫殼過(guò)的gwns.exe,有194k之大,比原來(lái)的程序大了一倍還多,這就是加殼軟件的功勞了?,F在就可以使用反匯編程序對其進(jìn)行反匯編,然后看它的匯編程序代碼了。
我們就用IDA來(lái)反匯編它,順便說(shuō)一句,這個(gè)IDA是個(gè)超強的反匯編工具,是cracker以及Windows hacker所必備的工具。下面我們就來(lái)看看部分反匯編過(guò)的代碼:
|
木馬首先加載了kernel32.dll,然后利用GetProcAddress來(lái)得到RegisterServiceProcess這個(gè)API的地址,木馬首先需要把自己注冊為系統服務(wù),這樣在Win9x下運行時(shí)就不容易被任務(wù)管理器發(fā)現。然后它會(huì )GetCommandLineA來(lái)得到運行參數,如果參數是可執行文件的話(huà)就調用Winexec來(lái)運行。
|
然后木馬會(huì )查找snfw.exe和kav9x.exe的進(jìn)程,也就是“天網(wǎng)防火墻”或“金山毒霸”的進(jìn)程,然后將其殺掉。
|
木馬還會(huì )修改“天網(wǎng)防火墻”或“金山毒霸”在注冊表中的啟動(dòng)項,使其在下次系統重新啟動(dòng)時(shí)無(wú)法自動(dòng)運行。
|
下面就是修改木馬的注冊表啟動(dòng)項,即
|
項,使其能夠在每次系統重新啟動(dòng)時(shí)能夠自行啟動(dòng)。接下來(lái)木馬就會(huì )初始化Winsock dll,綁定端口,等待木馬客戶(hù)端的連接。
五、總結
截止目前為止,我們已經(jīng)完成了對“廣外女生”這個(gè)木馬程序的全部分析過(guò)程,了解了木馬的啟動(dòng)、運行機制。當然,我寫(xiě)本文的目的并不是簡(jiǎn)單的介紹“廣外女生”這一種木馬,而是通過(guò)對這個(gè)具有典型意義的木馬的詳細分析,來(lái)向大家介紹對一般木馬的分析方法。利用本文的分析方法,你完全對任何一種未知的木馬品種進(jìn)行分析。最后我們再來(lái)總結一下對木馬分析的方法及步驟:
首先對系統注冊表以及系統文件進(jìn)行備份,然后運行木馬服務(wù)器端,再對運行過(guò)木馬的注冊表以及系統文件進(jìn)行記錄,利用注冊表分析工具對兩次記錄結果進(jìn)行比較,這樣就可以了解木馬在系統中做了哪些手腳。利用fport來(lái)查看木馬監聽(tīng)端口。然后利用所獲取的信息做出木馬的清除方法。
如果想要對木馬進(jìn)行深入的分析,還應該對木馬服務(wù)器端進(jìn)行脫殼、反匯編。這樣就可以完全掌握木馬的任何動(dòng)作,當然,這需要你對匯編語(yǔ)言有相當的掌握程度以及一定的耐心,因為冗長(cháng)的匯編代碼不是一般的新手所能完全閱讀的。
如果還想進(jìn)一步分析木馬報文格式的話(huà),就用sniffer對木馬的端口進(jìn)行監聽(tīng),然后進(jìn)行比較分析,這種分析方法比較復雜,本文就不舉例說(shuō)明了。
只是閱讀文章還不行,要想完全分析清楚一只木馬,還需要實(shí)際操練一下!祝你好運!
評論