


簡(jiǎn)單五步清除DLL木馬
互聯(lián)網(wǎng)安全日新月異的發(fā)展,越來(lái)越多的安全產(chǎn)品擺在人們眼前,安全廠商為了更好的保護(hù)用戶的網(wǎng)絡(luò)安全而進(jìn)行一次次的技術(shù)革新。但是正所謂有光的地方就有陰影,黑客們的技術(shù)也在不斷發(fā)展,為了在NT系統(tǒng)下能夠繼續(xù)隱藏進(jìn)程,木馬的開發(fā)者們開始利用DLL(DynamicLinkLibrary動(dòng)態(tài)鏈接庫(kù))文件,起初他們只是將自己的木馬寫成DLL形式來(lái)替換系統(tǒng)中負(fù)責(zé)WinSocket1.x的函數(shù)調(diào)用wsock32.dll(WinSocket2中則由WS2_32.DLL負(fù)責(zé)),這樣通過(guò)對(duì)約定函數(shù)的操作和對(duì)未知函數(shù)的轉(zhuǎn)發(fā)(DLL木馬替換wsock32.dll時(shí)會(huì)將之更名,以便實(shí)現(xiàn)日后的函數(shù)轉(zhuǎn)發(fā))來(lái)實(shí)現(xiàn)遠(yuǎn)程控制的功能。
但是隨著MS數(shù)字簽名技術(shù)和文件恢復(fù)功能的出臺(tái),這種DLL馬的生命力也日漸衰弱了,于是在開發(fā)者的努力下出現(xiàn)了時(shí)下的主流木馬–動(dòng)態(tài)嵌入式DLL木馬,將DLL木馬嵌入到正在運(yùn)行的系統(tǒng)進(jìn)程中.explorer.exe、svchost.exe、smss.exe等無(wú)法結(jié)束的系統(tǒng)關(guān)鍵進(jìn)程是DLL馬的最愛,這樣這樣在任務(wù)管理器里就不會(huì)出現(xiàn)我們的DLL文件,而是我們DLL的載體EXE文件.當(dāng)然通過(guò)進(jìn)一步的加工DLL木馬還可以實(shí)現(xiàn)另外的一些如端口劫持/復(fù)用(也就是所謂的無(wú)端口)、注冊(cè)為系統(tǒng)服務(wù)、開多線程保護(hù)、等功能。簡(jiǎn)而言之,就是DLL木馬達(dá)到了前所未有的隱蔽程度。
那么我們?nèi)绾蝸?lái)發(fā)現(xiàn)并清除DLL木馬呢?
一、從DLL木馬的DLL文件入手,我們知道system32是個(gè)捉迷藏的好地方,許多木馬都削尖了腦袋往那里鉆,DLL馬也不例外,針對(duì)這一點(diǎn)我們可以在安裝好系統(tǒng)和必要的應(yīng)用程序后,對(duì)該目錄下的EXE和DLL文件作一個(gè)記錄:運(yùn)行CMD–轉(zhuǎn)換目錄到system32–dir*.exe>exeback.txt&dir*.dll>dllback.txt,這樣所有的EXE和DLL文件的名稱都被分別記錄到exeback.txt和dllback.txt中,日后如發(fā)現(xiàn)異常但用傳統(tǒng)的方法查不出問題時(shí),則要考慮是不是系統(tǒng)中已經(jīng)潛入DLL木馬了.這是我們用同樣的命令將system32下的EXE和DLL文件記錄到另外的exeback1.txt和dllback1.txt中,然后運(yùn)行CMD–fcexeback.txtexeback1.txt>diff.txt&fcdllback.txtdllback1.txt>diff.txt.(用FC命令比較前后兩次的DLL和EXE文件,并將結(jié)果輸入到diff.txt中),這樣我們就能發(fā)現(xiàn)一些多出來(lái)的DLL和EXE文件,然后通過(guò)查看創(chuàng)建時(shí)間、版本、是否經(jīng)過(guò)壓縮等就能夠比較容易地判斷出是不是已經(jīng)被DLL木馬光顧了。沒有是最好,如果有的話也不要直接DLL掉,我們可以先把它移到回收站里,若系統(tǒng)沒有異常反應(yīng)再將之徹底刪除或者提交給殺毒軟件公司。
二、上文也曾提到一些系統(tǒng)關(guān)鍵進(jìn)程是這類木馬的最愛,所以一旦我們懷疑系統(tǒng)已經(jīng)進(jìn)駐了DLL木馬,我們當(dāng)然要對(duì)這些關(guān)鍵進(jìn)程重點(diǎn)照顧了,怎么照顧?這里推薦一個(gè)強(qiáng)大的脫殼工具工具Procedump.exe他可以幫您看出進(jìn)程到底調(diào)用了那些DLL文件,但是由于有的進(jìn)程調(diào)用的DLL文件非常多,使得靠我們自己去一個(gè)核對(duì)變的不太現(xiàn)實(shí),所以我們會(huì)用到一個(gè)shotgun寫的NT進(jìn)程/內(nèi)存模塊查看器ps.exe,用命令ps.exe/a/m>nowdlls.txt將系統(tǒng)目前調(diào)用地所有DLL文件地名稱保存到nowdlls.txt,然后我們?cè)儆胒c將之于事先備份dllback.txt比較一下,這樣也能夠縮小排查范圍。
三、還記得木馬的特征之一端口么?所有的木馬只要進(jìn)行連接,只要它接受/發(fā)送數(shù)據(jù)則必然會(huì)打開端口,DLL木馬也不例外,這也為我們發(fā)現(xiàn)他們提供了一條線索,我們可以使用foundstone的進(jìn)程端口查看工具Fport.exe來(lái)查看與端口對(duì)應(yīng)的進(jìn)程,這樣可以將范圍縮小到具體的進(jìn)程,然后結(jié)合Procedump來(lái)查找DLL木馬就比較容易了.當(dāng)然有如上文提到的有些木馬會(huì)通過(guò)端口劫持或者端口重用的方法來(lái)進(jìn)行通信,139、80、1443、等常見端口則是木馬的最愛。因?yàn)榧词辜词褂脩羰褂枚丝趻呙柢浖䴔z查自己的端口,發(fā)現(xiàn)的也是類似TCPUserIP:1026ControllerIP:80ESTABLISHED的情況,稍微疏忽一點(diǎn),您就會(huì)以為是自己在瀏覽網(wǎng)頁(yè)(防火墻也會(huì)這么認(rèn)為的)。所以光看端口還不夠,我們要對(duì)端口通信進(jìn)行監(jiān)控,這就是第四點(diǎn)要說(shuō)的。
四、我們可以利用嗅探器來(lái)了解打開的端口到底在傳輸些什么數(shù)據(jù)。通過(guò)將網(wǎng)卡設(shè)為混雜模式就可以接受所有的IP報(bào)文,嗅探程序可以從中選擇值得關(guān)注的部分進(jìn)行分析,剩下的無(wú)非是按照RFC文檔對(duì)協(xié)議進(jìn)行解碼。這樣就可以確定木馬使用的端口。
五、通常說(shuō)道查殺木馬我們會(huì)習(xí)慣性地到注冊(cè)表碰碰運(yùn)氣,以前可能還蠻有效的,但如果碰到注冊(cè)為系統(tǒng)服務(wù)的木馬(原理:在NT/2K/XP這些系統(tǒng)中,系統(tǒng)啟動(dòng)時(shí)會(huì)加載指定的服務(wù)程序)這時(shí)候檢查:?jiǎn)?dòng)組/注冊(cè)表/autoexec.bat/win.ini/sysytem.ini/wininit.ini/*.inf(例如autorun.inf)/config.sys等文件就發(fā)現(xiàn)不了絲毫的異樣,這時(shí)候我們就應(yīng)該查看一下系統(tǒng)服務(wù)了:右擊我的電腦–管理–服務(wù)和應(yīng)用程序–服務(wù),這時(shí)您會(huì)看到100多個(gè)服務(wù),,當(dāng)然如果您以前曾經(jīng)用導(dǎo)出列表功能對(duì)服務(wù)備份過(guò),則用文件比較的方法會(huì)很容易發(fā)現(xiàn)哪些是外來(lái)客,這時(shí)您可以記錄下服務(wù)加載的是那個(gè)文件,然后用ResourceKits里提供的srvinstw.exe來(lái)移除該服務(wù)并清除被<
新文章:
- CentOS7下圖形配置網(wǎng)絡(luò)的方法
- CentOS 7如何添加刪除用戶
- 如何解決centos7雙系統(tǒng)后丟失windows啟動(dòng)項(xiàng)
- CentOS單網(wǎng)卡如何批量添加不同IP段
- CentOS下iconv命令的介紹
- Centos7 SSH密鑰登陸及密碼密鑰雙重驗(yàn)證詳解
- CentOS 7.1添加刪除用戶的方法
- CentOS查找/掃描局域網(wǎng)打印機(jī)IP講解
- CentOS7使用hostapd實(shí)現(xiàn)無(wú)AP模式的詳解
- su命令不能切換root的解決方法
- 解決VMware下CentOS7網(wǎng)絡(luò)重啟出錯(cuò)
- 解決Centos7雙系統(tǒng)后丟失windows啟動(dòng)項(xiàng)
- CentOS下如何避免文件覆蓋
- CentOS7和CentOS6系統(tǒng)有什么不同呢
- Centos 6.6默認(rèn)iptable規(guī)則詳解