DLL木馬是依靠DLL文件來作惡的,木馬運行時不會在進程列表出現新的進程,而且很多DLL木馬還插入到系統關鍵進程中(無法終止),即使能被殺毒軟件檢測出來也無法查殺,這給系統安全帶來極大的威脅。如果你的手頭沒有趁手的殺馬兵器,抄起辦公的Excel我們也可以肉搏一番。下面就看看我們是如何用Excel對付這種插入lsass.exe進程的木馬吧!
第一步:查找被感染的進程
近日開機上網一段時間後就覺得網速特別的慢,於是便運行“netstat -a -n -o”查看開放的端口和連接,其中進程PID為580發起的連接極為可疑:狀態為ESTABLISHED,表示兩台機器正在通信(見圖1)。通過任務管理器可以知道這個進程為lsass.exe,根據進程的解釋,lsass.exe是用於微軟Windows系統的安全機制,它用於本地安全和登陸策略,顯然這個進程是不需要開放端口和外部連接的,據此判斷該進程極可能插入DLL木馬。如果牧馬者當前沒有進行連接,還可以通過端口狀態判斷是否中招,如TIME_WAIT的意思是結束了這次連接,說明端口曾經有過訪問,但訪問結束了,表明已經有黑客入侵過本機。LISTENING表示處於偵聽狀態,等待連接,但還沒有被連接,不過只有TCP協議的服務端口才能處於LISTENING狀態。
小提示:判斷是否中招的前提是要找出被感染的進程,按被插入進程的類別分,DLL木馬大致可以分為:
1.插入常用進程,如Notepad.exe、Iexplorer.exe(此類木馬的判斷很簡單,開機後不啟動任何程序,打開任務管理器如果發現上述進程,那就可以判斷中招了)。
2.插入系統進程,如Explorer.exe、lsass.exe(由於每台電腦開機後都有上述的進程,具體可以通過查看端口和進程本身特性加以判斷,比如本機的lsass.exe、winlogon.exe、explorer.exe就不會開放端口連接)。
3.對於插入本身就開放端口進程如alg.exe、svchost.exe,需要通過連接狀況、連接IP、調用DLL綜合加以判斷。
第二步:追查木馬真凶
知道被插入DLL木馬的進程,我們就可以通過比較進程調用的DLL模塊來甑別。
1.到其它正常電腦上啟動命令提示符運行“tasklist /m /fo list >G:dll1.txt”,將當前進程加載所有DLL文件以列表形式輸出,然後打開dll.txt並復制lsass.exe加載的DLL文件列表(見圖2)。
2..打開Excel,將正常電腦和中招電腦lsass.exe加載的DLL文件復制到A、B列,由於Excel有序號,通過序號就可以輕易發現兩個lsass.exe加載的DLL文件數量不同(64和68)。現在將B列字體設置為紅色,剪切B列內容並粘貼到A列,單擊Excel的“數據/排序”,將數據重新排序後,木馬文件就在連續紅色但和上格不相同的DLL文件中,分別是mswsock.dll、PSAPI.DLL、wshtcpip.dll、share.dll(見圖3)。
小提示:
如果無法確定哪個進程被插入木馬,可以先輸出所有DLL文件,然後在Excel中排序和正常狀態DLL文件比較,依次找出新增的DLL文件一一排查。
第三步:刪除木馬文件
從上可以知道DLL木馬就在上述多出的4個文件中,現在通過搜索功能找到這些文件(DLL文件大多在系統目錄,搜索范圍可限制在此),並通過查看屬性最終找到真凶為c:windowssystem32share.dll。現在進入安全模式將share.dll刪除,然後根據它的創建時間、大小找到木馬的同伙並刪除。一般微軟系統DLL文件都有版本標簽,而且文件日期大多是一樣的,可以通過這些屬性判斷。
小提示:對於插入notepad、IE、explorer.exe等進程的dll木馬,可以將進程終止後直接刪除dll木馬。
第四步:做好備份,防患於未然
相對來說,本例被插入木馬的系統進程比較容易判斷,但是對插入系統本身就開放端口的進程如svchost.exe,判斷起來就比較困難。因此我們平時要用Tasklist命令做好常見系統進程DLL文件備份,這樣就可以在懷疑自己中招時,重啟並關閉任何無關程序,然後通過Excel排序快速找到木馬真凶!
注意:系統有多個svchost.exe進程,但是它們進程pid是不同的,需要分開備份。