郭建偉
當(dāng)病毒通過(guò)各種途徑侵入系統(tǒng)后,總是想方設(shè)法對(duì)系統(tǒng)進(jìn)行各種破壞行動(dòng),輕則造成文件受損,重則導(dǎo)致系統(tǒng)崩潰。病毒發(fā)作之后,肯定會(huì)通過(guò)各種不法行為來(lái)實(shí)現(xiàn)危害系統(tǒng)的目的??傮w來(lái)說(shuō),病毒會(huì)對(duì)文件系統(tǒng)、注冊(cè)表、系統(tǒng)進(jìn)程、網(wǎng)絡(luò)連接、驅(qū)動(dòng)程序等方面進(jìn)行非法的修改、刪除、注入、加載、偽裝、開啟后門、設(shè)置鉤子等等惡意操作。因此,對(duì)病毒的行為進(jìn)行跟蹤、監(jiān)控和分析,就可以將其各種不法操作徹底曝光,進(jìn)而找出其對(duì)系統(tǒng)所做的所有滲透和修改操作。在充分了解其特點(diǎn)的基礎(chǔ)上,就可以有針對(duì)性地將其徹底清除。
一、了解分析工具的用法和特點(diǎn)
俗話說(shuō),工欲善其事必先利其器。在進(jìn)行病毒行為分析之前,首先要掌握各種分析工具的使用要點(diǎn)。例如,F(xiàn)ilemon是一款強(qiáng)悍的文件操作監(jiān)控工具,在使用之前,最好對(duì)其進(jìn)行合理配置。當(dāng)Filemon運(yùn)行后,可以看到其字體很小,不利于觀察。為此可以點(diǎn)擊菜單“設(shè)置”→“字體”項(xiàng),將字體大小設(shè)置為10,觀看起來(lái)就輕松多了。
當(dāng)Filemon運(yùn)行后,會(huì)記錄所有的文件變動(dòng)情況,會(huì)讓人眼花繚亂。點(diǎn)擊“Ctrl+E”鍵,終止監(jiān)控操作。當(dāng)然,也可以在其主界面(如圖1)中點(diǎn)擊“Ctrl+A”鍵,停止?jié)L屏操作,但監(jiān)控依然進(jìn)行??梢酝蟿?dòng)滾動(dòng)條,查看監(jiān)控信息。在監(jiān)控信息中的“請(qǐng)求”列中顯示文件操作方式,包括創(chuàng)建、打開、寫入、刪除等。在“結(jié)果”列中顯示操作結(jié)果,包括成功和失敗。在“路徑”列中顯示被操作的文件的完整路徑信息,這對(duì)于病毒分析很重要。為了排除干擾,準(zhǔn)確捕獲病毒操作文件信息,可以在監(jiān)控列表中選擇無(wú)關(guān)進(jìn)程項(xiàng),在其右鍵菜單中選擇“排除進(jìn)程”項(xiàng),將其排除在監(jiān)控范圍之外。注意,諸如“explorer.exe”“iexplorer.exe”等進(jìn)程不要進(jìn)行排除。為了便于查看監(jiān)控?cái)?shù)據(jù),需要將無(wú)關(guān)內(nèi)容過(guò)濾掉。點(diǎn)擊“Ctd+L”鍵,在彈出窗口中的‘包含”列表中輸入需要監(jiān)控的進(jìn)程,這樣就只監(jiān)控該進(jìn)程的文件操作信息。
Regmon是強(qiáng)悍的注冊(cè)表監(jiān)控工具,注冊(cè)表的任何變化都逃不出其法眼。其顯示字體調(diào)整,開啟暫停監(jiān)控,設(shè)置過(guò)濾等操作均與Filemon相同。在其監(jiān)控列表(如圖2)中的“Request”列中顯示注冊(cè)表操作方式,包括刪除鍵值和設(shè)置鍵值等。在“other”列顯示在注冊(cè)表某子鍵下添加或者刪除的鍵值,這很值得我們關(guān)注。注意,在Regrnon中點(diǎn)擊菜單“Options”→“Log Boot”項(xiàng),可以激活啟動(dòng)記錄功能。Regmon會(huì)使其在下次啟動(dòng)系統(tǒng)時(shí)先于任何其它驅(qū)動(dòng)之前加載到系統(tǒng)中,這樣,系統(tǒng)在啟動(dòng)過(guò)程中所有驅(qū)動(dòng)程序和服務(wù)項(xiàng)目對(duì)注冊(cè)表的任何操作都會(huì)被Regmon記錄下來(lái),并將其內(nèi)容保存在“C:\Windows\regmn.log”文件中。
不管是系統(tǒng)自帶的任務(wù)管理器,還是別的進(jìn)程管理工具,都無(wú)法同ProcessExplorer這款軟件相比,它不僅可以查看正常的進(jìn)程信息,而且可以看到隱藏在后臺(tái)的進(jìn)程項(xiàng)目,其功能強(qiáng)大可以終止任何進(jìn)程。同F(xiàn)ilemon和Regmon一樣,ProcessExplorer同樣是基于Ring0模式運(yùn)行。ProcessExploer使用不同顏色區(qū)分進(jìn)程,例如,新創(chuàng)建額進(jìn)程以綠色顯示,被結(jié)束的進(jìn)程以紅色顯示,當(dāng)前用戶進(jìn)程以淺粉色顯示,服務(wù)進(jìn)程以綠色顯示。在ProcessExplorer主界面左側(cè)的“進(jìn)程”列表提供了升序、降序、分支等顯示模式。為了便于觀察病毒活動(dòng)建議取用分支顯示模式,即讓所有進(jìn)程按照樹形結(jié)構(gòu)以父子關(guān)系進(jìn)行排列顯示,可以觀察到某個(gè)進(jìn)程都創(chuàng)建了什么進(jìn)程等。如果病毒進(jìn)程新建了進(jìn)程,可以徹底暴露出來(lái)。此外,ProcessExplorer還具有查看進(jìn)程詳細(xì)信息、搜索宿主進(jìn)程等功能。
病毒在活動(dòng)時(shí),很可能需要和外界建立網(wǎng)絡(luò)連接。對(duì)該類活動(dòng)進(jìn)行監(jiān)控,可以讓狡猾的病毒現(xiàn)出原形。同netstat.exe等工具相比,TCPView可謂是監(jiān)控網(wǎng)絡(luò)連接的高手。TCPView的使用比較簡(jiǎn)單,在監(jiān)控列表中可以顯示進(jìn)行網(wǎng)絡(luò)操作的進(jìn)程名、使用的網(wǎng)絡(luò)協(xié)議、本地端口地址和遠(yuǎn)程端口網(wǎng)絡(luò)地址等。在“狀態(tài)列”中顯示網(wǎng)絡(luò)連接狀態(tài),包括監(jiān)聽、已建立連接、等待客戶端響應(yīng)、正在發(fā)送同步信號(hào)等。例如,當(dāng)觸發(fā)某個(gè)腳本病毒后,如果其和外界建立連接,在TCPView監(jiān)控界面(如圖4)中就會(huì)發(fā)現(xiàn)名為“Wscript.exe”進(jìn)程建立了一個(gè)網(wǎng)絡(luò)連接,以內(nèi)腳本病毒需要“Wscript.exe”程序解釋執(zhí)行。這樣,就需要引起我們的警覺了。因?yàn)檫@種連接速度很快,使用一般的工具很難捕獲。
二、病毒行為特點(diǎn)的實(shí)例分析
這里列舉了一個(gè)簡(jiǎn)單的例子,使用PiwcessExploier、Regmon、Filemon、TCPView等工具,對(duì)某個(gè)病毒程序進(jìn)行分析,追蹤其行為特點(diǎn),確定其在系統(tǒng)中的一舉一動(dòng),并據(jù)此將其清除掉。啟動(dòng)Vmware Workstation虛擬機(jī),在其中執(zhí)行名為“winingr.exe”的可疑程序。當(dāng)其運(yùn)行后,從表面上看系統(tǒng)毫無(wú)反應(yīng),這其實(shí)是大多數(shù)病毒木馬的共同特點(diǎn),主要用來(lái)麻痹用戶,對(duì)其失去警惕性。但是,在分析工具面前,其馬腳就暴露出來(lái)了。在ProcessExplorer主界面左側(cè)進(jìn)程列表中可以看到,該病毒程序已經(jīng)運(yùn)行。在Filemon和Regmon程序窗口中,也出現(xiàn)了與之關(guān)聯(lián)的監(jiān)控信息,說(shuō)明該病毒已經(jīng)在執(zhí)行各種文件操作,在注冊(cè)表中也開始修改數(shù)據(jù)了。
稍后,在ProcessExplorer進(jìn)程列表中看到,病毒程序創(chuàng)建了名為“iexplorer.exe”的新進(jìn)程,“iexplorer.exe”進(jìn)程我們都很熟悉,這是IE瀏覽器。病毒之所以啟動(dòng)IE瀏覽器進(jìn)程,只能說(shuō)明病毒試圖將自身注入到IE進(jìn)程中,這樣就可以更好地隱蔽自己,即使用戶查看進(jìn)程列表,一般也不會(huì)對(duì)熟悉的IE進(jìn)程產(chǎn)生懷疑。否則的話,對(duì)于進(jìn)程列表的“winmgr.exe”病毒進(jìn)程來(lái)說(shuō),肯定會(huì)被用戶發(fā)現(xiàn)并進(jìn)行查殺。當(dāng)病毒插入到IE等合法進(jìn)程后,通常會(huì)關(guān)閉原來(lái)的病毒進(jìn)程,來(lái)避開用戶的追蹤。繼續(xù)觀察ProcessExplorer進(jìn)程列表。發(fā)現(xiàn)病毒有啟動(dòng)了“cmd.exe”進(jìn)程,這是命令行進(jìn)程。
很快,在進(jìn)程列表中的“cmd.exe”進(jìn)程下出現(xiàn)了“ping.exe”進(jìn)程的身影,不難看出,這是病毒利用ping命令對(duì)網(wǎng)絡(luò)連接情況進(jìn)行探測(cè)。隨后,在進(jìn)程列表發(fā)現(xiàn)“winmgr.exe”病毒進(jìn)程消失了,而且作為測(cè)試的病毒程序文件也不見了。這說(shuō)明,病毒已經(jīng)執(zhí)行了自刪除操作,來(lái)毀滅證據(jù),防止用戶對(duì)其進(jìn)行分析檢測(cè)。但是,在TCPView窗口中,發(fā)現(xiàn)“iexplorer.exe”進(jìn)程在執(zhí)行網(wǎng)絡(luò)連接操作,和可疑的遠(yuǎn)程主機(jī)建立了網(wǎng)絡(luò)連接。這說(shuō)明注入到“iexplorer.exe”進(jìn)程中的病毒代碼開始操縱IE進(jìn)程執(zhí)行非法的網(wǎng)絡(luò)連接動(dòng)作,執(zhí)行開啟后門、盜竊數(shù)據(jù)、下載其它程序等操作。在ProcessExplorer進(jìn)程列表中看到“cmd.exe”進(jìn)程結(jié)束了,但是在TCPView窗口中IE進(jìn)程依然處于網(wǎng)絡(luò)連接狀態(tài)。繼續(xù)對(duì)進(jìn)程列表進(jìn)行查看,發(fā)現(xiàn)已經(jīng)沒有什么變化了,說(shuō)明病毒進(jìn)程的活動(dòng)已經(jīng)告一段落。
既然病毒活動(dòng)已經(jīng)明朗化,接下來(lái)就可以分析病毒對(duì)文件和注冊(cè)表的操作情況了。在Filemon窗口中顯示了與該病毒相關(guān)的所有文件監(jiān)控信息,對(duì)其進(jìn)行一番分析后,可以發(fā)現(xiàn)病毒的所有“小動(dòng)作”。病毒在“C:\Windows\system”文件夾創(chuàng)建了名為“f0dwgsqyn.exe”“grunagdqr.dll”等文件,病毒還在“C:\Program Files\Internet Explorer”文件夾下創(chuàng)建了名為“rundll_32.exe”的文件,注意,其處于隱藏狀態(tài),無(wú)法直接觀察到。病毒在“C:\Windows\system32\drivers”目錄下創(chuàng)建名為“19b5406.sys”的驅(qū)動(dòng)文件。此外,其還在“C:\Windows\System32\Winfile”文件夾中生成了“_rundll_32.exe”“winks.exe”“gamesetup.exe”“htedto.exe”“qqhs.exe”“svcr.exe”“rasdf.exe”等眾多可疑文件。
病毒在“C:\Program Files\Common Files\MicrosoftShared\MSInfo”文件夾中生成了_一個(gè)記錄文件、一個(gè)病毒主文件。在“C:\Windows”中創(chuàng)建了名為“reserver.exe”的程序,之后在“C:\Window\System32”文件夾中生成了名為“brlmon.exe”的隱藏文件。在“C:\User\All Users”文件夾中創(chuàng)建名為“vbgzcom.ini”文件,在C盤根目錄下創(chuàng)建名為“accvparam.cmd”的文件。根據(jù)文件監(jiān)控繼續(xù),病毒之后刪除了自身文件和C盤中的“accvparam.cmd”文件。在RegMon界面中顯示與該病毒關(guān)聯(lián)的注冊(cè)表修改動(dòng)作,在注冊(cè)表分析項(xiàng)目中,發(fā)現(xiàn)該木馬創(chuàng)建了名為“Network Manger Agent”的系統(tǒng)服務(wù),在其描述信息中顯示“網(wǎng)絡(luò)管理實(shí)用工具”字樣,起到迷惑用戶的目的。與該服務(wù)關(guān)聯(lián)的程序?yàn)椤癴Odwgsqyn.exe”。這樣,病毒就可以跟隨系統(tǒng)自動(dòng)運(yùn)行。該“fodwgsqyn.exe”程序?qū)嶋H上就是更名后的病毒文件,利用CompareFile等工具,可以看出其與病毒原文件完全一致。
經(jīng)過(guò)對(duì)病毒行為的分析,可以看出病毒的活動(dòng)特點(diǎn)。當(dāng)病毒被激活后,將自身復(fù)制到系統(tǒng)文件夾中,并更名為“f0dwgsqyn.exe”。之后病毒創(chuàng)建名為“Network Manger Agent”的系統(tǒng)服務(wù),使其可以跟隨系統(tǒng)自動(dòng)運(yùn)行。病毒以很隱蔽的方式啟動(dòng)IE瀏覽器進(jìn)程,并將病毒代碼注入到該進(jìn)程中。病毒釋放的“grunagdqr.dll”是一個(gè)動(dòng)態(tài)鏈接庫(kù),其中包含相關(guān)的病毒代碼,病毒將其注入到IE進(jìn)程中。在ProcessExplorer主界面中點(diǎn)擊“Ctrl+E”鍵,在搜索窗口中輸入“grunagdqr.dll”,點(diǎn)擊搜索按鈕,果然發(fā)現(xiàn)其宿主進(jìn)程就是IE進(jìn)程。
利用建立的非法連接,病毒從網(wǎng)上下載了更多的惡意程序,并將其存放在不同的路徑中。為了從底層潛入系統(tǒng)中,病毒創(chuàng)建了“19b5406.sys”的驅(qū)動(dòng)文件,實(shí)現(xiàn)了從系統(tǒng)底層的加載。之后病毒釋放了“accvparam.cmd”文件,其作用是刪除病毒文件自身。在FilemonN控記錄中,清晰地顯示了病毒通過(guò)調(diào)用“cmd.exe”進(jìn)程執(zhí)行該批處理文件的動(dòng)作,將病毒原文件刪除。了解了該病毒的行為特點(diǎn)后,清理起來(lái)就很簡(jiǎn)單了。使用WinPE優(yōu)盤引導(dǎo)系統(tǒng),在WinPE環(huán)境將上述病毒文件徹底刪除,并清除注冊(cè)表中病毒修改和創(chuàng)建的所有項(xiàng)目,就可以將病毒徹底清理干凈。