發佈時間:2007.07.27 04:53     來源:賽迪網安全社區    作者:jcx860

目前網絡上最猖獗的病毒估計非木馬程序莫數了,現在的木馬攻擊性越來越強,在進程隱藏方面,很少採用獨立的EXE可執行文件形式,而是改為內核嵌入方式、遠程線程插入技術、掛接PSAPI等,這些木馬也是目前最難對付的。現在教你查找和清除線程插入式木馬。

一、通過自動運行機制查木馬

一說到查找木馬,許多人馬上就會想到通過木馬的啟動項來尋找「蛛絲馬跡」,具體的地方一般有以下幾處:

(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)批處理文件

如果你使用的是Win9X系統,C盤根目錄下「AUTOEXEC.BAT」和 WINDOWS目錄下的「WinStart.bat」兩個批處理文件也要看一下,裡面的命令一般由安裝的軟件自動生成,在系統默認會將它們自動加載。在批 處理文件語句前加上「echo off」,啟動時就只顯示命令的執行結果,而不顯示命令的本身;如果再在前面加一個「@」字符就不會出現任何提示,以前的很多木馬都通過此方法運行。

二、通過文件對比查木馬

新出現的木馬主程序成功加載後,會將自身做為線程插入到系統進程中,然後刪除系統目 錄中的病毒文件和病毒在註冊表中的啟動項,以使反病毒軟件和用戶難以查覺,然後它會監視用戶是否在進行關機和重啟等操作,如果有,它就在系統關閉之前重新 創建病毒文件和註冊表啟動項。下面的幾招可以讓它現出原形(下面均以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 /?」可以顯示該命令的其它參數。接著我們可以通過分析所打開的端口,將範圍縮小到具體的進程上,然後使用進程分析軟件,例如卡卡助手和瑞星個人防火牆。 (責任編輯:李磊)

http://security.ccidnet.com/art/1101/20070726/1156981_1.html

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 ivan0914 的頭像
    ivan0914

    I'n Blog 之萬象真藏

    ivan0914 發表在 痞客邦 留言(0) 人氣()