同病毒相比,木馬(尤其是DLL木馬)則陰險的多,木馬的活動并不張揚,而是悄無聲息的潛入系統(tǒng),并開啟后門為黑客打開入侵通道,讓其可以輕松對本機進行各種遙控操作,執(zhí)行注入盜竊數(shù)據(jù),攔截信息等勾當。一旦您的機密沒信息被盜,那么就會帶來很大的損失。雖然使用殺軟可以攔截木馬,但是殺軟并非萬能,對于免殺型木馬來說,突破殺軟防線并非難事??磥?,僅僅依靠殺軟還是不夠的,這就要求我們能夠發(fā)現(xiàn)并及時清除深層木馬。
這里就以對付DLL木馬為例,來說明發(fā)現(xiàn)和清除之道。這類木馬將自身的關鍵代碼封裝在DLL動態(tài)庫中,然后由主控程序?qū)⒛抉RDLL文件非法插入到系統(tǒng)的核心進程中,同時主動連接遠程控制端電腦,讓防火墻形同虛設。木馬的最大特點就是開啟后門,要開啟后門就必然打開特定的端口。在CMD窗口中運行“netstat -ano”命令,可以查看網(wǎng)絡連接信息。
不過,在很多情況下,面對一大串的連接信息,會讓人感到眼暈。其實,借助簡單的命令,就可以讓可疑連接迅速浮出水面。在系統(tǒng)運行正常時,執(zhí)行“netstat –ano >c:\test\netone.txt”命令,將所有的網(wǎng)絡連接信息導出到“netone.txt”文件中。當懷疑有木馬活動時,執(zhí)行“netstat –an >c:\test\nettwo.txt”命令,獲得所需的監(jiān)控文件。之后執(zhí)行“fc netone.txt nettwo.txt”命令,對兩者的內(nèi)容進行比較,就可以大大縮小查找的范圍。這些信息包括就能看到當前系統(tǒng)中所有網(wǎng)絡連接信息,包括源地址和端口號、目標地址和端口號、連接狀態(tài)、進程的PID號等內(nèi)容,據(jù)此可以很容易的發(fā)現(xiàn)可疑的網(wǎng)絡連接
例如,在本例中可以清晰的看到一個可疑的TCP連接信息,在本地端口打開了9100端口,和遠程地址xxx.xxx.140.109的3060端口建立了網(wǎng)絡連接,建立該連接的是PID為1736的進程。根據(jù)查到的進程PID號,打開Windows任務管理器,切換到“進程”面板,點擊菜單“查看”→“選擇列”,在列名稱選擇窗口中勾選“PID”,確認后在“進程”面板中就能查看到所有進程的PID號了,很快就找到了PID為1736的進程名,原來是系統(tǒng)進程“Svchost.exe”,而該進程默認是不會開啟可疑端口的,肯定是木馬程序?qū)⒆陨碜⑷氲皆撓到y(tǒng)進程中,并利用反彈連接主動和遠程控制端建立聯(lián)系,達到非法控制本機的目的。
到底是什么可疑程序隱藏到了“Svchost.exe”進程中了呢?在CMD窗口中運行命令“Tasklist /m”,Windows 會逐一列出每一個進程的名稱,PID號,以及其中包含的所有模塊信息。根據(jù)名稱為1736的PID號,找到“Svchost.exe”進程,將“Svchost.exe”進程中包含的模塊信息復制粘貼到記事本中,將多余的空格和逗號刪除,按一行一個文件名的順序排列。然后將其保存,假設文件名為“Svchost.txt”。
為了找出隱藏在其中的可疑模塊,可以到其它正常的電腦中提取對應的的模塊信息(最好在Windows XP剛剛安裝之后,就保存所有系統(tǒng)進程包含的模塊信息),將提取的模塊信息經(jīng)過同樣處理后保存,假設文件名為“Svchost0.txt”。在Cmd窗口中運行命令“fc Svchost.txt Svchost0.txt”,很快就縮小了查找的范圍,最終將可疑點集中到了“winsrv32.dll”文件上。同時在Windows的任務管理器中發(fā)現(xiàn)“kndriver.exe”和“service.exe”兩個可疑程序,當試圖中止上述兩個可疑進程時,發(fā)現(xiàn)其具相互守護功能,無法手工關閉??磥恚@兩個可疑進程很有可能是木馬的幫兇。
打開文件夾選項窗口,確認選擇顯示所有的文件和文件夾項。利用Windows XP的查找功能,確定上述可疑文件都位于位于“c:\windows\system32\media”文件夾中,當試圖刪除該文件時,系統(tǒng)提示該文件正在使用無法刪除。同時運行“Msconfig.exe”程序,發(fā)現(xiàn)在注冊表啟動項中存在和可疑程序“kndriver.exe”相關的啟動項。木馬既然可以自動運行,而且可以將木馬DLL模塊插入到系統(tǒng)進程中,一定是通過與之關聯(lián)的啟動項目實現(xiàn)的。但是運行“msconfig.exe”程序,在系統(tǒng)配置實用程序窗口中打開“啟動”面板,在其中沒有發(fā)現(xiàn)可疑項目。在“服務”面板中勾選“隱藏所有Microsoft服務”項,在第三方服務列表中仔細查看,同樣沒有發(fā)現(xiàn)可疑的服務項目??磥?,該DLL木馬很有可能是通過驅(qū)動文件的形式加載的。果然,運行“msinfo32.exe”程序,在系統(tǒng)信息窗口左側(cè)點擊“簽署的驅(qū)動程序”項,在右側(cè)窗口中顯示所有的第三方驅(qū)動程序信息,因為一般的軟件是不會隨意在系統(tǒng)中安裝驅(qū)動的。
在運行正常的主機上打開上述系統(tǒng)信息窗口。列出驅(qū)動文件信息。兩者對比,很快就發(fā)現(xiàn)了名為“netadapter”的驅(qū)動程序極為可疑,應該是該驅(qū)動文件從系統(tǒng)底層執(zhí)行加載操作,將木馬DLL模塊插入到系統(tǒng)進程中。在注冊表編輯器中打開“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services”路徑,在其中果然找到了名為“netadapter”的驅(qū)動項目,在右側(cè)的“ImagePath”攔發(fā)現(xiàn)了該驅(qū)動文件的存儲路徑,位于“C:\Windows\System32\drivers”路徑中,其名稱為“netnupio.sys”。
確定了木馬藏身地后,可以進入安全模式,將上述“kndriver.exe”,“service.exe”,“netnupio.sys”,“winsrv32.dll”等可疑文件全部刪除。也可以使用WinPE優(yōu)盤引導系統(tǒng)進入WinPE環(huán)境,執(zhí)行手工清除操作。例如,先將可疑文件“winsrv32.dll”刪除,接著依次其余的可疑文件即可。然后重新進入電腦,連接上網(wǎng)后重新檢查網(wǎng)絡連接信息,發(fā)現(xiàn)上述可疑網(wǎng)絡連接已經(jīng)消失了。運行“msconfig.exe”程序,將和木馬相關的啟動項刪除。進入注冊表編輯器,打開“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services”路徑,將木馬創(chuàng)建的“netadapter”驅(qū)動項目刪除,這樣就徹底清除了該DLL木馬。