二、上文也曾提到一些系統關鍵工作行程是這類木馬的最愛,所以一旦我們懷疑係統已經進駐了DLL木馬,我們當然要對這些關鍵工作行程重點照顧了,怎麼照顧?這裡推薦一個強大的脫殼工具工具Procedump.exe他可以幫您看出工作行程到底呼叫了那些DLL文件(如圖1)但是由於有的工作行程呼叫的DLL文件非常多,使得靠我們自己去一個核對變的不太現實,所以我們會用到一個shotgun寫的NT工作行程/記憶體模塊檢視器ps.exe,用命令ps.exe /a /m >nowdlls.txt將系統目前呼叫地所有DLL文件地名稱儲存到nowdlls.txt,然後我們再用fc將之於事先備份dllback.txt比較一下,這樣也能夠縮小排查範圍。
三、還記得木馬的特徵之一連接阜麼?所有的木馬只要進行連接,只要它接受/發送資料則必然會打開連接阜,DLL木馬也不例外,這也為我們發現他們提供了一條線索,我們可以使用foundstone的工作行程連接阜檢視工具Fport.exe來檢視與連接阜對應的工作行程,這樣可以將範圍縮小到具體的工作行程,然後結合Procedump來查找DLL木馬就比較容易了.當然有如上文提到的有些木馬會通過連接阜劫持或者連接阜重用的方法來進行通信,139、80、1443、等常見連接阜則是木馬的最愛。因為即使即使用戶使用連接阜掃瞄軟件檢查自己的連接阜,發現的也是類似TCP UserIP:1026 ControllerIP:80ESTABLISHED 的情況,稍微疏忽一點,您就會以為是自己在瀏覽網頁(防火牆也會這麼認為的)。所以光看連接阜還不夠,我們要對連接阜通信進行監控,這就是第四點要說的。
四、我們可以利用嗅探器來瞭解打開的連接阜到底在傳輸些什麼資料。通過將網卡設為混雜模式就可以接受所有的IP報文,嗅探程式可以從中選擇值得關注的部分進行分析,剩下的無非是按照RFC文檔對協議進行解碼。這樣就可以確定木馬使用的連接阜,結合Fport和Procedump我們就能夠查找到該DLL木馬了。至於嗅探器個人推薦使用IRIS,圖形界面比較容易上手。
五、通常說道查殺木馬我們會習慣性地到註冊表碰碰運氣,以前可能還蠻有效的,但如果碰到註冊為系統服務的木馬(原理:在NT/2K/XP這些系統中,系統啟動時會載入指定的服務程式)這時候檢查:啟動組/註冊表/autoexec.bat/win.ini/sysytem.ini/wininit.ini/*.inf(例如autorun.inf)/config.sys等文件就發現不了絲毫的異樣,這時候我們就應該檢視一下系統服務了:右擊我的電腦--管理--服務和應用程式--服務,這時您會看到100多個服務,(MS也真是的,其中75%對個人用戶無用,可以禁止。),慢慢找吧,看誰不順眼就把它拎出來
,當然如果您以前曾經用匯出列表功能對服務備份過,則用文件比較的方法會很容易發現哪些是外來客,這時您可以記錄下服務載入的是那個文件,然後用Resource Kits裡提供的srvinstw.exe來移除該服務並清除被載入的文件。
通過以上五步,基本能發現並清除狡猾的動態嵌入式DLL木馬了,也許您也發現如果適當地做一些備份,會對我們的查找木馬的過程有很大的幫助,當然也會減輕不少工作的壓力哦。