教你如何找到執行緒插入式木馬

weixin_34115824發表於2017-11-27
目前網路上最猖獗的病毒估計非木馬程式莫數了,特別是在過去的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,如需轉載請自行聯絡原作者

相關文章