目前網絡上最猖獗的病毒估計非木馬程式莫數了,特别是在過去的2004年木馬程式的攻擊性也有了很大的加強,在程序隐藏方面,做了較大的改動,不再采用獨立的EXE可執行檔案形式,而是改為核心嵌入方式、遠端線程插入技術、挂接PSAPI等,這些木馬也是目前最難對付的。本期就教你查找和清除線程插入式木馬。
操作步驟:
1、通過自動運作機制查木馬
一說到查找木馬,許多人馬上就會想到通過木馬的啟動項來尋找“蛛絲馬迹”,具體的地方一般有以下幾處:
1)系統資料庫啟動項:
在“開始/運作”中輸入“regedit.exe”打開系統資料庫編輯器,依次展開[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\]和[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\],檢視下面所有以"Run"開頭的項,其下是否有新增的和可疑的鍵值,也可以通過鍵值所指向的檔案路徑來判斷,是新安裝的軟體還是木馬程式。
另外[HKEY LOCAL MACHINE\Software\classes\exefile\shell\open\command\]鍵值也可能用來加載木馬,比如把鍵值修改為“X:\windows\system\ABC.exe "%1"%”。
2)系統服務
有些木馬是通過添加服務項來實作自啟動的,大家可以打開系統資料庫編輯器,在[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Runservices]下查找可疑鍵值,并在[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\]下檢視的可疑主鍵。
然後禁用或删除木馬添加的服務項:在“運作”中輸入“Services.msc”打開服務設定視窗,裡面顯示了系統中所有的服務項及其狀态、啟動類型和登入性質等資訊。找到木馬所啟動的服務,輕按兩下打開它,把啟動類型改為“已禁用”,确定後退出。也可以通過系統資料庫進行修改,依次展開“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\服務顯示名稱”鍵,在右邊窗格中找到二進制值“Start”,修改它的數值數,“2”表示自動,“3”表示手動,而“4”表示已禁用。當然最好直接删除整個主鍵,平時可以通過系統資料庫導出功能,備份這些鍵值以便随時對照。
3)開始菜單啟動組
現在的木馬大多不再通過啟動菜單進行随機啟動,但是也不可掉以輕心。如果發現在“開始/程式/啟動”中有新增的項,可以右擊它選擇“查找目标”到檔案的目錄下檢視一下,如果檔案路徑為系統目錄就要多加小心了。也可以在系統資料庫中直接檢視,它的位置為[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders],鍵名為Startup。
4)系統INI檔案Win.ini和System.ini
系統INI檔案Win.ini和System.ini裡也是木馬喜歡隐蔽的場所。選擇“開始/運作”,輸入“msconfig”調出系統配置實用程式,檢查Win.ini的[Windows]小節下的load和run字段後面有沒有什麼可疑程式,一般情況下“=”後面是空白的;還有在System.ini的[boot]小節中的Shell=Explorer.exe後面也要進行檢查。
5)批處理檔案
如果你使用的是WIN 9X系統,C槽根目錄下“AUTOEXEC.BAT”和WINDOWS目錄下的“WinStart.bat”兩個批處理檔案也要看一下,裡面的指令一般由安裝的軟體自動生成,在系統預設會将它們自動加載。在批處理檔案語句前加上“echo off”,啟動時就隻顯示指令的執行結果,而不顯示指令的本身;如果再在前面加一個“@”字元就不會出現任何提示,以前的很多木馬都通過此方法運作。
2、通過檔案對比查木馬
最近新出現的一種木馬。它的主程式成功加載後,會将自身做為線程插入到系統程序SPOOLSV.EXE中,然後删除系統目錄中的病毒檔案和病毒在系統資料庫中的啟動項,以使反病毒軟體和使用者難以查覺,然後它會監視使用者是否在進行關機和重新開機等操作,如果有,它就在系統關閉之前重新建立病毒檔案和系統資料庫啟動項。下面的幾招可以讓它現出原形(下面均以Win XP系統為例):
1)對照備份的常用程序
大家平時可以先備份一份程序清單,以便随時進行對比查找可疑程序。方法如下:開機後在進行其他操作之前即開始備份,這樣可以防止其他程式加載程序。在運作中輸入“cmd”,然後輸入“tasklist /svc >X:\processlist.txt”(提示:不包括引号,參數前要留白格,後面為檔案儲存路徑)回車。這個指令可以顯示應用程式和本地或遠端系統上運作的相關任務/程序的清單。輸入“tasklist /?”可以顯示該指令的其它參數。
2)對照備份的系統DLL檔案清單
對于沒有獨立程序的DLL木馬怎麼辦嗎?既然木馬打的是DLL檔案的主意,我們可以從這些檔案下手,一般系統DLL檔案都儲存在system32檔案夾下,我們可以對該目錄下的DLL檔案名等資訊作一個清單,打開指令行視窗,利用CD指令進入system32目錄,然後輸入“dir *.dll>X:\listdll.txt”敲回車,這樣所有的DLL檔案名都被記錄到listdll.txt檔案中。日後如果懷疑有木馬侵入,可以再利用上面的方法備份一份檔案清單“listdll2.txt”,然後利用“UltraEdit”等文本編輯工具進行對比;或者在指令行視窗進入檔案儲存目錄,輸入“fc listdll.txt listdll2.txt”,這樣就可以輕松發現那些發生更改和新增的DLL檔案,進而判斷是否為木馬檔案。
3)對照已加載子產品
頻繁安裝軟體會使system32目錄中的檔案發生較大變化,這時可以利用對照已加載子產品的方法來縮小查找範圍。在“開始/運作”中輸入“msinfo32.exe”打開 “系統資訊”,展開“軟體環境/加載的子產品”,然後選擇“檔案/導出”把它備份成文本檔案,需要時再備份一個進行對比即可。
4)檢視可疑端口
所有的木馬隻要進行連接配接,接收/發送資料則必然會打開端口,DLL木馬也不例外,這裡我們使用netstat指令檢視開啟的端口。我們在指令行視窗中輸入“netstat -an”顯示出顯示所有的連接配接和偵聽端口。Proto是指連接配接使用的協定名稱,Local Address是本地計算機的IP位址和連接配接正在使用的端口号,Foreign Address是連接配接該端口的遠端計算機的IP位址和端口号,State則是表明TCP連接配接的狀态。Windows XP所帶的netstat指令比以前的版本多了一個-O參數,使用這個參數就可以把端口與程序對應起來。輸入“netstat /?”可以顯示該指令的其它參數。
接着我們可以通過分析所打開的端口,将範圍縮小到具體的程序上,然後使用程序分析軟體,例如《Windows優化大師》目錄下的WinProcess.exe程式,來查找嵌入其中的木馬程式。有些木馬會通過端口劫持或者端口重用的方法來進行通信的,一般它們會選擇139、80等常用端口,是以大家分析時要多加注意。也可以利用網絡嗅探軟體(如:Commview)來了解打開的端口到底在傳輸些什麼資料
本文轉自 goldwinner 51CTO部落格,原文連結:http://blog.51cto.com/355665/88317,如需轉載請自行聯系原作者