郭建偉
當(dāng)病毒侵入系統(tǒng)后,絕不會(huì)老老實(shí)實(shí)地藏在某個(gè)角落睡大覺(jué),而是“琢磨”著如何渾水摸魚(yú)獲得運(yùn)行權(quán),達(dá)到其為非作歹的目的。幾乎所有的病毒都會(huì)將自身藏匿到各種啟動(dòng)項(xiàng)中,這樣當(dāng)系統(tǒng)啟動(dòng)后,病毒就可以堂而皇之的運(yùn)行了。不過(guò),病毒的這些常規(guī)的啟動(dòng)模式,已經(jīng)為大家所了解,為了擺脫追捕,越來(lái)越多新型病毒逐漸“摒棄”常規(guī)的啟動(dòng)方式,而是采取了非常規(guī)的更加隱蔽的啟動(dòng)方式,對(duì)系統(tǒng)進(jìn)行更加陰險(xiǎn)的侵襲。如何才能識(shí)破病毒的伎倆,讓其成為過(guò)街老鼠無(wú)處藏身呢?本文就從多個(gè)方面對(duì)其進(jìn)行了分析講解,希望在與病毒的實(shí)際斗爭(zhēng)中助您一臂之力,及時(shí)截?cái)嗖《締?dòng)的通道,使其無(wú)法繼續(xù)危害您的系統(tǒng)。
1.在系統(tǒng)內(nèi)核啟動(dòng)前加載病毒程序
有些病毒會(huì)在系統(tǒng)內(nèi)核啟動(dòng)前就能加載運(yùn)行,例如當(dāng)Windows出現(xiàn)嚴(yán)重錯(cuò)誤導(dǎo)致藍(lán)屏?xí)r,按Reset鍵重新啟動(dòng)電腦,在系統(tǒng)還未進(jìn)入正常運(yùn)行前,就激活了病毒程序,對(duì)系統(tǒng)進(jìn)行破壞。其自動(dòng)加載原理是在注冊(cè)表的“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager”下的“BootExellte”鍵值名中寫(xiě)入病毒程序路徑程序。當(dāng)然,可以在其后跟隨更多的程序項(xiàng)。當(dāng)然,這些病毒程序都經(jīng)過(guò)特殊編程,在Windows的CMD窗口中是無(wú)法運(yùn)行的。對(duì)付這類(lèi)病毒,只要進(jìn)入上述注冊(cè)表路徑,將“BootExecute”鍵值名中的病毒程序清空,并據(jù)此刪除病毒程序即可。
2.謹(jǐn)防病毒綁架任務(wù)管理器
對(duì)進(jìn)程進(jìn)行管理,離不開(kāi)任務(wù)管理器。和任務(wù)管理器對(duì)應(yīng)的程序?yàn)椤皌askmgr.exe”,位于“c:\Windows\system32”,“C:\Windows\SvsWOW64”等系統(tǒng)文件夾中。當(dāng)病毒采取偷梁換柱的方法,對(duì)其進(jìn)行了替換后,只要用戶(hù)按下“Ctrl+Ah+Delete”鍵,就會(huì)自動(dòng)激活病毒。例如,當(dāng)病毒潛入系統(tǒng)后,將自身復(fù)制到了“C:\Windows”路徑下,先將原系統(tǒng)文件夾中的“taskmgr.exe”進(jìn)行更名處理(例如將其改名為“taskmgr0.exe”),之后釋放出真正的病毒程序并命名為“taskmgr.exe”,然后執(zhí)行自刪除操作,刪除原病毒程序。當(dāng)用戶(hù)習(xí)慣性的按下“Ctrl+Alt+Delete”鍵,病毒程序就自動(dòng)激活了,開(kāi)始執(zhí)行預(yù)設(shè)的破壞操作,同時(shí)還會(huì)從網(wǎng)上下載運(yùn)行更多的病毒木馬。其狡猾之處在于還會(huì)調(diào)用運(yùn)行“taskmgr0.exe”,給人以任務(wù)管理器正常打開(kāi)的假象。對(duì)于這類(lèi)病毒,只需將虛假的“taskmgr.exe”刪除,并恢復(fù)正常的“taskmgr.exe”,就可以讓其失去活力。
3.利用組策略實(shí)現(xiàn)自啟動(dòng)
有些病毒會(huì)躲進(jìn)組策略中,實(shí)現(xiàn)自動(dòng)運(yùn)行。對(duì)于這類(lèi)病毒,只需在“開(kāi)始”→“運(yùn)行”中運(yùn)行“Gpedit.msc”,在組策略窗口中依次展開(kāi)“本地計(jì)算機(jī)策略”→“計(jì)算機(jī)配置”→“管理模塊”→“系統(tǒng)”→“登錄”,在右側(cè)窗體雙擊“在用戶(hù)登錄時(shí)運(yùn)行這些程序”,在屬性窗口中如果發(fā)現(xiàn)已經(jīng)激活了“已啟用”項(xiàng),就表示有程序隱藏在其中非法運(yùn)行了。點(diǎn)擊“顯示”按鈕,可以瀏覽所有自動(dòng)運(yùn)行的程序項(xiàng),從中找到病毒啟動(dòng)項(xiàng),將其刪除即可。
4.利用系統(tǒng)服務(wù)實(shí)現(xiàn)自運(yùn)行
很多病毒都喜歡將自身注冊(cè)為系統(tǒng)服務(wù),來(lái)獲得更高的運(yùn)行權(quán)限。只要系統(tǒng)啟動(dòng)后,這些病毒服務(wù)就會(huì)搶先啟動(dòng)。運(yùn)行“services.msc”程序,在服務(wù)列表管理器中查看相關(guān)的服務(wù)項(xiàng)目,如果發(fā)現(xiàn)有的服務(wù)的描述信息是空白或者全英文的,內(nèi)容看起來(lái)很奇怪,則多半是病毒程序所為。雙擊相應(yīng)的服務(wù)名稱(chēng),在其屬性窗口中將其啟動(dòng)方式改為手動(dòng),即可阻止其非法加載運(yùn)行。
如果不太容易發(fā)現(xiàn)病毒服務(wù)名,可以在任務(wù)管理器中查找病毒程序名稱(chēng),之后運(yùn)行注冊(cè)表編輯器,選中“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services”分支,點(diǎn)擊“Ctrl+F”鍵打開(kāi)搜索窗口,根據(jù)程序名在搜尋與之關(guān)聯(lián)的主鍵后,找到之后在該主鍵右側(cè)的“ImagePath”鍵值名中顯示病毒程序的具體位置,在“Start”鍵值名中顯示啟動(dòng)方式,將其設(shè)置為“3”或“4”,即可禁止其自動(dòng)運(yùn)行。根據(jù)得到的病毒程序路徑,就可以手工或者使用專(zhuān)用安全工具,將其徹底刪除。
對(duì)于有些狡猾的病毒來(lái)說(shuō),為了達(dá)到隱蔽運(yùn)行的目的,會(huì)采用系Rootkit等技術(shù),將自身創(chuàng)建為隱藏的服務(wù),通過(guò)掛鉤系統(tǒng)本地調(diào)用實(shí)現(xiàn)自身的隱藏,通過(guò)系統(tǒng)的服務(wù)管理器是看不到這些隱藏服務(wù)的。從而實(shí)現(xiàn)在Windows啟動(dòng)前悄然加載,逃避用戶(hù)查殺的目的。使用Knlsc這款小巧精悍的軟件,可以讓隱藏的服務(wù)“徹底現(xiàn)身”。Knlsc的使用方法很簡(jiǎn)單,將壓縮包解開(kāi)后,找到其中的Knlsc13.exe3C件。在CMD窗口中運(yùn)行命令“knlsc13.exe-f”,就能顯示出隱藏的服務(wù),顯示格式為“服務(wù)名服務(wù)顯示名「類(lèi)型」「啟動(dòng)方式」[時(shí)間戳]服務(wù)程序全路徑服務(wù)Dll全路徑(共享進(jìn)程的服務(wù)才有此項(xiàng))”。如果發(fā)現(xiàn)有隱藏服務(wù)(假設(shè)服務(wù)名是“Windll”),只需運(yùn)行命令“knlscl3.exe
cdWindll”,即可禁用該隱藏服務(wù)。
5.利用注冊(cè)表li蔽位置自啟動(dòng)
實(shí)際上,在注冊(cè)表中除了常見(jiàn)的啟動(dòng)項(xiàng)位置外,還有一些地方可以實(shí)現(xiàn)隱蔽啟動(dòng)預(yù)設(shè)程序的功能。如果被病毒加以利用,其危害就不言而喻了。例如病毒可以在注冊(cè)表編輯器中選擇“HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows”,在其下的“Load”鍵值名中存儲(chǔ)病毒程序路徑,這樣在系統(tǒng)啟動(dòng)時(shí),病毒就會(huì)自動(dòng)運(yùn)行。值得注意的是,這里的文件路徑遵循的是Dos路徑命名規(guī)則。例如從“C:\Program files”應(yīng)寫(xiě)成“C:\Progra-1”等。
有些病毒,木馬喜歡利用ActiveX方式啟動(dòng),來(lái)避開(kāi)殺軟的追捕。例如對(duì)于某款木馬來(lái)說(shuō),會(huì)同時(shí)使用ActiveX啟動(dòng)和注冊(cè)表啟動(dòng)項(xiàng)兩種啟動(dòng)方式,不僅可以深度隱藏自身,插入其他合法進(jìn)程,而且可以突破常用虛擬機(jī)和沙箱安全軟件。當(dāng)該木馬激活后,打開(kāi)注冊(cè)表編輯器,在“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Active Setup\InstalledComponents”路徑,在其下有很多以GUID字符串命名的鍵值,病毒木馬就會(huì)利用ActiceX組件的身份隱藏其中,例如打開(kāi)“{00000042-CC51—11cF-AAFA一00AA0086015B}”分支,在右側(cè)雙擊“StubPath”鍵值名,可以看到該病毒木馬真實(shí)的啟動(dòng)路徑,本例為“C:\WINDOWS\svstem32\server.exe Restart”,可以看到病毒偽裝成了“server.exe”程序。
打開(kāi)注冊(cè)表編輯器,展開(kāi)“HKEY—LOCAL—MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon”分支,在窗口右側(cè)雙擊“Shell”鍵值名,查看其內(nèi)容是否為“Explorer.exe”。如果不是的話,說(shuō)明病毒程序已經(jīng)替換了正常的“Explorer.exe”程序,在下次啟動(dòng)時(shí),病毒不僅會(huì)自動(dòng)啟動(dòng)而且會(huì)破壞了桌面和任務(wù)欄。如果在“Explorer.exe”中跟隨有其它程序,則很有可能是病毒所為,病毒通過(guò)這種加載方式,可以實(shí)現(xiàn)隱蔽啟動(dòng)。在上述分支下還存在名稱(chēng)為“userinit”的鍵值名,其原始內(nèi)容為“C:\WINDOWS\system32\userinit.exe,”如果病毒程序添加在該命令行之后,同樣可以實(shí)現(xiàn)自動(dòng)運(yùn)行的目的。上述分支下的名為“l(fā)ogonui,exe”的鍵值名也應(yīng)引起注意,其原始內(nèi)容為“l(fā)ogonui.exe”,該程序主要用于控制開(kāi)關(guān)機(jī)畫(huà)面,如果病毒程序?qū)ζ溥M(jìn)行了替換,就可以實(shí)現(xiàn)自動(dòng)激活操作,但是電腦也無(wú)法重新啟動(dòng)和關(guān)閉待機(jī),注銷(xiāo)賬戶(hù)也會(huì)出現(xiàn)問(wèn)題。
6.警惕虛假的文件擴(kuò)展名
對(duì)于常見(jiàn)的病毒木馬來(lái)說(shuō),其主程序都是EXE,DLL,VBS,BAT等可執(zhí)行文件。為了逃避用戶(hù)追查,有些狡猾的病毒將自身的擴(kuò)展名改成別的類(lèi)型,來(lái)欺騙用戶(hù)。例如,病毒會(huì)將自身更改為RAR3C件,直接雙擊該文件,自然無(wú)法啟動(dòng)病毒,因?yàn)槠涫怯蒃XE文件修改而來(lái)的。病毒為了欺騙用戶(hù),會(huì)編寫(xiě)一個(gè)批處理文件,將其取一個(gè)頗為迷惑人的名字(例如“補(bǔ)丁修復(fù).bat”文件等),在其中利用“start”命令,來(lái)啟動(dòng)上述虛假的RAR文件,例如其內(nèi)容包括“@echo系統(tǒng)漏洞保護(hù)系統(tǒng)安全”“@pause”“@echo off”“start XXX.Far”“exit”等,其中的“xxx.rar”假設(shè)為病毒修改名稱(chēng)后的虛假RAR文件,之后將上述兩個(gè)文件打包壓縮。
當(dāng)用戶(hù)下載該壓縮包后,直接雙擊其中的“xxx.Far”文件,自然無(wú)法打開(kāi)。只要運(yùn)行了其中的“補(bǔ)丁修復(fù)bat”文件,當(dāng)被其顯示信息所迷惑,點(diǎn)擊任意一下鍵盤(pán),該腳本就會(huì)使用“start”命令運(yùn)行病毒文件,之后退出批處理文件。因?yàn)橐呀?jīng)關(guān)閉了回顯功能,所以是能看到運(yùn)行程序的信息的。病毒激活后會(huì)自動(dòng)從網(wǎng)上下載更多的惡意程序,對(duì)系統(tǒng)進(jìn)行進(jìn)一步破壞。因?yàn)椴《拘薷牧藬U(kuò)展名,偽裝成了合法的文件,并且啟動(dòng)的方法很特別,才容易得手的。
其實(shí),這種運(yùn)行方法原理很簡(jiǎn)單,例如將“x.exe”改名為“x.rar”,雙擊后自然無(wú)法運(yùn)行。但是在CMD窗口中運(yùn)行“x.rar”文件,卻可以順利運(yùn)行該程序。另外一個(gè)角度思考,因?yàn)樵赪indows中存在很多文件類(lèi)型,如果病毒采用這種伎倆,偽裝成其他文件類(lèi)型來(lái)隱蔽啟動(dòng)的話,的確對(duì)系統(tǒng)威脅很大。對(duì)付這類(lèi)病毒,防御起來(lái)也不難,只要遇到看似正常的文件無(wú)法正常打開(kāi)或者運(yùn)行,并且有其他腳本程序與之配合的話,只要使用記事本查看其內(nèi)容,就不難發(fā)現(xiàn)其中的問(wèn)題。
不過(guò),有些病毒會(huì)采用特殊的方式,來(lái)偽造擴(kuò)展名。例如某個(gè)名為“ziliaoexe.txt”的文件看起來(lái)似乎是個(gè)文本文件,其實(shí)不然,這是黑客精心設(shè)計(jì)的自解壓包,里面包含病毒程序。黑客利用了Unicode控制字符倒序排列的方法,將EXE文件后綴變成了TXT格式。其名稱(chēng)實(shí)際上為“ziliaotxt.exe”,黑客執(zhí)行文件更名操作,將光標(biāo)移到“jiqiao”和“txt”之間,然后在其右鍵菜單中點(diǎn)擊“插入U(xiǎn)nicode控制字符”→“RLOStart of right-to-left override”項(xiàng),這個(gè)EXE文件就變成了TXT格式了。而且黑客在制作該病毒自解壓包時(shí),使用了文本圖標(biāo)替換正常的自解壓文件圖標(biāo),使其看起來(lái)更像文本文件,并利用某款專(zhuān)用RAR文件修復(fù)補(bǔ)丁程序,屏蔽了其RAR右鍵菜單顯示功能。如果用戶(hù)被蒙蔽運(yùn)行了該病毒自解壓包,隱藏在其中的病毒就會(huì)被激活??磥?lái),一旦接收到看起來(lái)似乎很正常的文件,一定要提高警惕,最好不要輕易運(yùn)行。應(yīng)該在虛擬機(jī)、Shadow Defender等安全環(huán)境中運(yùn)行,來(lái)查看其是否具有破壞作用。