常見木馬技術(shù)和手動檢測方法_第1頁
常見木馬技術(shù)和手動檢測方法_第2頁
常見木馬技術(shù)和手動檢測方法_第3頁
常見木馬技術(shù)和手動檢測方法_第4頁
常見木馬技術(shù)和手動檢測方法_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

常見木馬技術(shù)和手動檢測方法所有病毒case,Symantec用戶抱怨的無非兩項,一是查不到病毒,二是不斷的查到相同的病毒(絕大多數(shù)是木馬downloader,backdoor.trojan)。木馬是什么?是一個有惡意行為程序。殺毒軟件怎么查殺它?特征碼和行為分析。如果一個木馬在技術(shù)上或者創(chuàng)意上做的稍微好些,我覺得殺毒軟件對于已經(jīng)中毒的電腦很難起到作用,經(jīng)常是查到了一部分,落掉一部分,而落掉的部分又會監(jiān)控、恢復(fù)被查殺的部分,造成上面所說的第二種情況,而這又一定會包含第一種情況。木馬既然是程序,惡意程序,那它運行也不免會露出蛛絲馬跡,程序運行的兩個必要條件—進(jìn)程(模塊,線程)和加載(自啟動和觸發(fā))。那我們查找木馬也從這兩個大的方向入手,理論上可以找出所有木馬,但是這跟做數(shù)學(xué)題一樣,大方法是有的,但是操作過程千變?nèi)f化的。工欲善其事,必先利其器。首先要找?guī)讉€適合自己的工具:主工具我個人喜歡用冰刃,它能干大部分的檢查啟動項和進(jìn)程監(jiān)控。兵刃功能上的不足,利用其他的軟件補(bǔ)充。FileMon和RegMon可以查找針對特定文件和注冊表的進(jìn)程信息;ProceXP可以模塊反向查找進(jìn)程,也可以看出進(jìn)程之間的調(diào)用關(guān)系;SSDT—Hook修復(fù),SSDT—Inline—Hook修復(fù)工具(兵刃可以看到SSDT,但沒有修復(fù)功能),但是冰刃也可以看到絕大多數(shù)的使用隱藏技術(shù)的進(jìn)程和線程;SRENG可以顯示進(jìn)程、模塊、驅(qū)動的簽名(可以提高我們的效率),以及強(qiáng)大的自啟動項檢測;SymantecProcessViewer會hook住ntcreateprocess,ntcreateprocessxp,ntopenkey,ntterminateprocess四個SSDT服務(wù)函數(shù),會監(jiān)控開機(jī)到當(dāng)前所有運行過的進(jìn)程,能起到參考作用;TCPView可以實時查看創(chuàng)建連接和已經(jīng)連接的端口和相應(yīng)的進(jìn)程;MD5計算工具;Mr.Google和百度。具體方法:第一部分看進(jìn)程(模塊,線程)。最笨的木馬都有自己的進(jìn)程,還不隱藏,還起個大家都知道的名字。這個太簡單了,簡單google一下,用任務(wù)管理器都能發(fā)現(xiàn)。有些木馬本身是修改了或替換了的原有的正常的exe文件,或者系統(tǒng)文件,因此不要完全依賴于進(jìn)程名字,MD5值還是有必要看下的;有些是隱藏進(jìn)程的(Rootkit技術(shù),比如Hook在WIN32API或者SSDT的ntquerysysteminfomation),所幸冰刃可以看得到大部分隱藏進(jìn)程。除此之外,如果木馬沒有技術(shù)來修改文件修改時間,有的木馬唯恐別人不認(rèn)識它,占用內(nèi)存,CPU很高,向外發(fā)包,這些是更笨的木馬,任務(wù)管理器以及TCPview(發(fā)包的)很容易確定進(jìn)程。高級的木馬首先是隱藏自己做的很好的,這些木馬只干該干的事情,并且最大程度上減少對系統(tǒng)的影響。我相信用戶如果真的中了這個級別的木馬,SAV又發(fā)現(xiàn)不了,用戶就不會找我們,因為他自己也不知道。就怕SAV能發(fā)現(xiàn)它(畢竟SAV是自動的,特征碼加行為檢測),但是又不徹底。因為此類木馬很多都會有個影子程序在監(jiān)控,并恢復(fù)被刪除的惡意程序。影子程序怎么做?無非是恢復(fù)文件,恢復(fù)注冊表,創(chuàng)建進(jìn)程,動態(tài)注入dll或者線程。如果影子程序本身是一個進(jìn)程,那我們的目的還是查出這個進(jìn)程。分別用FileMon;RegMon;冰刃的監(jiān)控進(jìn)程創(chuàng)建;動態(tài)注入dll首先需要創(chuàng)建被刪除的惡意dll文件,用FileMon;線程動態(tài)注入我還沒找到一個直接根據(jù)這個線索找到可疑進(jìn)程的方法(不清楚冰刃監(jiān)控進(jìn)程創(chuàng)建是否可行),不過也可以用稍微笨一點的方法比如枚舉所有進(jìn)程等方法;另外第二部分查看加載項也是可行的,因為影子程序本身也是需要啟動的。由于影子程序本身基本上不做惡意行為,本身不包含惡意代碼,而應(yīng)子程序釋放的木馬文件在影子程序處肯定以加密后的資源形勢存在,因此就很難被SAV自動查到了(除非其他用戶提交了樣本,SRC又加到病毒定義里面,不過把影子程序都加到病毒定義,那病毒定義文件得多大?),因此經(jīng)常會發(fā)生SAV總是在相同的位置發(fā)現(xiàn)相同的病毒文件的情況了。如果每個病毒都有自己獨立的進(jìn)程,查木馬就是查找進(jìn)程,那我們就太好做了,但是沒有這個么好的事情。相當(dāng)一部分的木馬沒有自己獨立的進(jìn)程,只是以模塊(絕大多數(shù)情況下是dll文件,偶爾有ocx插件)形勢注入到系統(tǒng)進(jìn)程,比如iexplore.exe,explorer.exe,svchost.exe,winlogon.exe,smss.exe,csrss.exe等等。此時做可疑動作的進(jìn)程就是這些系統(tǒng)進(jìn)程了,找到這些進(jìn)程病毒代表我們找到了木馬。此時在找到宿主進(jìn)程文件的前提下,用冰刃查找該進(jìn)程所調(diào)用的模塊,可以發(fā)現(xiàn)一般有上百個之多,頭大了;用symantecprocessviewer比兵刃強(qiáng)點,能查到這些模塊對應(yīng)文件的創(chuàng)建時間;有的殺毒軟件的進(jìn)程讀取器(例如KV2007)還可以過濾掉所有microsoft簽名的dll文件,這樣會方便一些。但是萬幸任何一個dll不可能自動注入到某一個進(jìn)程,或者需要靜態(tài)加載,或者需要動態(tài)加載,或者替換加載。靜態(tài)加載需要在系統(tǒng)自啟動項中有加載的語句(例如rundll32.exe加載,winlogon.exe加載,以服務(wù)的形式被svchost.exe加載等等),這些項的查找利用Sreng.exe應(yīng)該都不難找到。如果是動態(tài)加載,那么肯定會有一個進(jìn)程(模塊、線程)運行,做這個dll注入的動作,可以嘗試(不能保證)用FileMon或者冰刃的監(jiān)控進(jìn)程創(chuàng)建去監(jiān)控動態(tài)加載過程;但是更多的情況下需要從觀察進(jìn)程(模塊)以及自啟動項來查找,畢竟這個動態(tài)加載的命令不是系統(tǒng)給的,一定是有特定的進(jìn)程(模塊,線程)做這個事情,而這個進(jìn)程本身也是需要加載的,因此也可以使用查找加載項的方法。替換加載通常是把正常的dll改名,然后木馬文件本身再改名為原來的正常的dll文件名,這樣進(jìn)程按照規(guī)定正常加載就會加載到木馬dll文件,而這個木馬dll會在宿主進(jìn)程需要調(diào)用該dll的正常功能的時候,會進(jìn)行函數(shù)轉(zhuǎn)發(fā)到原來的dll文件,這樣也不會影響原來程序的功能,對于此類的注入,手動方法也許能用的也就剩下MD5驗證了。提到模塊,那就需要提到線程,進(jìn)程注入型的木馬注入到進(jìn)程中的是一個模塊,也就是說,必須有一個模塊文件的存在,這樣我們可以找到這個模塊并通過對其文件進(jìn)行簽名驗證來找出注入木馬;而線程注入型的木馬,注入到進(jìn)程中的卻只是一段代碼,是沒有文件存在的,雖然可以利用冰刃的查看線程查看每個進(jìn)程的各個線程,但通過這個想發(fā)現(xiàn)并找出哪一個線程是木馬的,我估計全世界沒多少人。好在線程加載自己本身不能完成,需要加載程序去做這個事情,我們找不到可疑線程,找到可疑的加載程序(進(jìn)程、模塊、線程)也是一樣的。記得中學(xué)的時候說到的解題方法,在我們TS部門經(jīng)常會用到兩個不同方向的思路,窮舉排除法和逆推分析法。就說一個Rtvscan.exe占用CPU高的問題,如果根據(jù)經(jīng)驗,查KB,查資料把可能的原因都列出來,然后和用戶的情況作比較,最終找到符合情況的一種,這就是窮舉排除法;如果對Rtvscan.exe第二部分看加載這個部分我想看過上面的dll注入部分的話會受到一定的啟發(fā)。任何一種木馬不是系統(tǒng)生來就有的,肯定是后天裝上的。那這個木馬不管是進(jìn)程還是模塊,也是需要啟動的,這個啟動(也就是加載)過程,想一想也就兩種:隨著系統(tǒng)啟動自己啟動,觸發(fā)某個動作啟動。隨著系統(tǒng)啟動自己啟動,大部分的木馬會有這種方式,但是路徑就五花八門了。最常見的HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run有很多的初級木馬都會在這里有體現(xiàn),除此之外此前總結(jié)過以下的有可能的系統(tǒng)自啟動項加載位置還有一些其他鍵值,經(jīng)常會有一些程序在這里自動運行,如:[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System\Shell],

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ShellServiceObjectDelayLoad],

[HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\System\Scripts],

[HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\System\Scripts]。Symantec的KB中也有檢查注冊表,查找可疑文件的方法:Title:'Commonloadingpointsforviruses,worms,andTrojanhorseprogramsonWindowsNT/2000/XP/2003'DocumentID:2001060517115206WebURL:/support/ent-security.nsf/docid/2001060517115206?Open&src=ent_gold_namTitle:'Commonloadingpointsforviruses,worms,andTrojanhorseprogramsonWindows98/95/3.1x'DocumentID:1999052415383948WebURL:/support/ent-security.nsf/docid/1999052415383948?Open&src=ent_gold_namTitle:'PossibleloadingpointsforvirusesandsecurityrisksoncomputersthatrunRedHatEnterpriseLinuxandSuSELinux'DocumentID:2005101812364548WebURL:/support/ent-security.nsf/docid/2005101812364548?Open&src=ent_gold_nam3)檢查win.ini文件和system.ini文件。Win.ini位于C:\Windows下,其[windows]字段中有啟動命令“l(fā)oad=”和“run=”,通常“=”后面是空白的,如果后面跟著程序,很可能就是病毒程序。System.ini位于C:\Windows下,其[boot]字段一般為shell=Explorer.exe如果后面跟著程序,很可能就是木馬程序;其[386Enh]字段內(nèi)的“driver=路徑\程序名”,也有可能有病毒程序加載項;其[mic]、[drivers]、[drivers32]三個字段,也有可能有病毒程序加載項。4)其他方法:可以通過查找msconfig,以及查看服務(wù)中的automatic的服務(wù)的方法,有時也可以找出可疑文件。其實從實際當(dāng)中的例子來看,除了上面的HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run之外,HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon也是最近很多木馬自啟動加載的地方。除此之外,很重要的自啟動方式服務(wù)啟動。所有的服務(wù)啟動項都會在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Service下面列出來,但是基本上看起來沒什么頭緒。這些服務(wù)自啟動又會分為win32服務(wù)應(yīng)用程序和驅(qū)動程序,用SRENG可以很清楚的看出這兩部分。Win32服務(wù)應(yīng)用程序就是系統(tǒng)當(dāng)中管理工具—服務(wù)里面的內(nèi)容,包括SymantecAntivirus服務(wù)。其主文件可以是單獨的exe文件,例如rtvscan.exe;也可以是一個dll文件,會被svchost.exe進(jìn)程調(diào)用而自動啟動(svchost.exe的作用就是用同一個進(jìn)程提供不同的系統(tǒng)或者非系統(tǒng)的服務(wù),從而節(jié)省系統(tǒng)資源;而這恰好也成了很多木馬很好的自啟動加載點,很多時候我們看到svchost.exe做一些異常的事情,或者從冰刃的創(chuàng)建進(jìn)程查看看到svchost.exe創(chuàng)建木馬進(jìn)程,肯定就是有惡意的dll以win32服務(wù)的形勢被svchost.exe加載)。驅(qū)動程序啟動也是很多木馬(驅(qū)動級木馬)自啟動加載的地方。首先自啟動加載首先需要一個sys文件,通常位置是C:\windows\system32\drivers目錄里面;另外會在控制面板—設(shè)備管理器—非即插即用設(shè)備里面會有該設(shè)備驅(qū)動的信息。SAV的SAVRT驅(qū)動,SEP的sysplant驅(qū)動都是此類。對于此類的木馬,我們往往需要在先關(guān)掉保護(hù)進(jìn)程的前提下,卸載該設(shè)備,刪除注冊表,在刪除sys文件。以上是自啟動木馬,除此之外是觸發(fā)式木馬。觸發(fā)式木馬是當(dāng)你進(jìn)行某一操作時會觸發(fā)木馬的啟動機(jī)制,使得木馬啟動,如果你永遠(yuǎn)不進(jìn)行這一操作,而木馬則永遠(yuǎn)不會啟動。這樣,事實上對于自啟動木馬,我們仔細(xì)查找各個啟動項,總能找到蛛絲馬跡;不過觸發(fā)是木馬就可以充分發(fā)揮作者的想象空間了,對我們來說也是更大的挑戰(zhàn)。最常見的也是我們首先要檢查的當(dāng)然就是Autorun.inf了,這個臭名昭著,一般都會關(guān)聯(lián)到同一個目錄下的一個exe文件。

通常此文件會以隱藏文件的形式出現(xiàn),更有些惡毒的會加上“注冊表監(jiān)控并回寫”來為文件隱藏護(hù)航,你一旦更改系統(tǒng)為“顯示所有文件”,它馬上會再次改為“不顯示隱藏文件”。更有甚者,很多最新的木馬對這個autorun.inf和關(guān)聯(lián)的exe文件使用rootkit技術(shù),隱藏的更為隱蔽。處理方法:使用冰刃,它可以顯示所有的隱藏文件大部分的使用的rootkit保護(hù)的文件,由于autorun.inf和關(guān)聯(lián)的exe文件通常都是木馬的安裝文件,大可直接刪除。刪除后,隱藏文件恢復(fù)到注冊表HKLM\Software\Microsoft\Windows\CurrentVersion\Exporler\Advanced\Folder\Hidden\ShowAll下的checkvalue值改為1。另外autorun.inf修改了硬盤的打開屬性,刪除后盤附打不開,在注冊表中搜索該exe文件名稱,找到后刪除。

另一種常見的觸發(fā)方式是修改文件關(guān)聯(lián)。文件關(guān)聯(lián)就是某一類型的文件與某一程序的對應(yīng)關(guān)系,我們的系統(tǒng)中有無數(shù)種文件格式,比如:圖片文件(以.bmp.jpg.gif等為擴(kuò)展名)、音樂文件(mp3mp4等)......當(dāng)你雙擊一個圖片時,系統(tǒng)會調(diào)用看圖程序來打開并顯示圖片,而不是調(diào)用播放器來播放圖片,系統(tǒng)為什么會知道要調(diào)用看圖程序而不是調(diào)用播放器呢?這就是因為文件關(guān)聯(lián)的存在,在注冊表中,圖片文件已經(jīng)與看圖程序關(guān)聯(lián)在了一起,相應(yīng)的,音樂文件與播放器關(guān)聯(lián)在了一起,大多數(shù)類型的文件都與某一特定程序有關(guān)聯(lián)。這樣,系統(tǒng)才知道,打開什么樣的文件需要調(diào)用什么程序。

木馬就是把某一特定類型文件的關(guān)聯(lián)改為了與它自己關(guān)聯(lián),這時你一旦打開這一類型的文件就會觸發(fā)木馬的啟動。由于木馬啟動后,會由它再調(diào)用正常的關(guān)聯(lián)程序,所以,文件仍然會正常打開,而你也就不知道其實你的操作已經(jīng)將木馬啟動了起來。木馬會改哪種文件的關(guān)聯(lián)呢?這只有木馬的作者才知道。系統(tǒng)中又有多少文件關(guān)聯(lián)可供它改呢?HKEY_CLASSIS_ROOT下的子項全部都是,怎么也得上千個吧。

這樣,只要你打開被關(guān)聯(lián)格式的文件,就會觸發(fā)木馬,一般該木馬還會指向到原來的關(guān)聯(lián)進(jìn)程,這個文件也可以正常打開,因此用戶是注意不到的。如果這個木馬的關(guān)聯(lián)文件是一個影子程序的話,那由于影子程序不具備病毒特征,所以SAV全面掃描也不會將它找出來,你找到并清除的都是影子程序的釋放體,這就又會造成總是在相同的位置發(fā)現(xiàn)相

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論