■河南 劉京義
不法程序要開(kāi)啟后門,必須打開(kāi)對(duì)應(yīng)的網(wǎng)絡(luò)端口。因此在CMD窗口執(zhí)行“netstart-ano”命令,不僅可以查看端口使用情況,還可以在“PID”列中顯示使用該端口的進(jìn)程標(biāo)識(shí)符。
在CMD窗口中執(zhí)行“wmic”命令,在隨后的“wmic:rootcli>”欄中輸入“Process”命令,就會(huì)顯示進(jìn)程和實(shí)際程序之間的關(guān)系列表。據(jù)此不難找到目標(biāo)程序具體位置。
不過(guò)“netstat”命令應(yīng)對(duì)基于UDP協(xié)議的后門程序就有些力不從心了,因此,還必須借助于專業(yè)的端口查看工具(例如TCPEye、Antiyports、Fport等)。
對(duì)于來(lái)歷不明的網(wǎng)絡(luò)連接,在其右鍵菜單上點(diǎn)擊“Close Connection”項(xiàng)(或者按下“Ctrl+K”鍵),即可關(guān)閉該網(wǎng)絡(luò)連接。點(diǎn)擊“End Process”項(xiàng),可以直接中止相關(guān)進(jìn)程的運(yùn)行。
一些不法程序會(huì)偽裝成系統(tǒng)服務(wù)來(lái)隱蔽的開(kāi)啟后門。運(yùn)行“msconfig.exe”,在“服務(wù)”面板中勾選“隱藏所有Microsoft服務(wù)”項(xiàng),找到和“狀態(tài)”列中顯示為“正在運(yùn)行”對(duì)應(yīng)的服務(wù),經(jīng)細(xì)致分析,可以很快找到后門服務(wù)。在服務(wù)列中取消選擇并重啟系統(tǒng),即令其失去活力。
在CMD窗口執(zhí)行“wmic”“service”命令,在服務(wù)統(tǒng)計(jì)信息中的“Caption”列中找到后門服務(wù)名稱,在“Pathname”列中可以定位其服務(wù)程序,然后刪除即可。此外,還可使用Comodo Cleaning Essentials(CCE)安全軟件來(lái)偵測(cè)其真?zhèn)巍?/p>
一些狡猾的惡意程序會(huì)替換正常服務(wù)來(lái)明目張膽開(kāi)啟后門??墒褂贸?jí)巡警工具箱、Unlocker等安全工具進(jìn)行檢測(cè)和清除。還有些不法程序會(huì)使用RootKit等高級(jí)技術(shù)創(chuàng)建隱身型服務(wù)。使用Knlsc軟件即可輕松清除。如發(fā)現(xiàn)有隱藏服務(wù)(假設(shè)服務(wù)名是“Newsrv”),運(yùn)行“knlsc13.exe-cd Newsrv”即可禁用。
將自身隱藏于注冊(cè)表眾多的啟動(dòng)項(xiàng)目并跟隨系統(tǒng)自動(dòng)運(yùn)行,也是后門程序常用的招數(shù)。使用AutoRuns安全軟件就可以將啟動(dòng)項(xiàng)一網(wǎng)打盡,包括系統(tǒng)登錄、網(wǎng)絡(luò)服務(wù)、打印監(jiān)控、安全認(rèn)證、網(wǎng)絡(luò)連接等十多個(gè)和啟動(dòng)項(xiàng)緊密相關(guān)的類型。在每個(gè)類型中包含了相應(yīng)的啟動(dòng)項(xiàng)目。
打開(kāi)“所有項(xiàng)目”面板,不管后門程序在注冊(cè)表啟動(dòng)項(xiàng)隱藏多深,都會(huì)在該軟件面前暴露,選擇和后門程序相關(guān)的啟動(dòng)項(xiàng),在其右鍵菜單中可以執(zhí)行刪除、定位注冊(cè)表具體路徑、打開(kāi)目標(biāo)文件夾等操作。
當(dāng)然,狡猾后門程序絕不會(huì)藏身在顯眼的啟動(dòng)項(xiàng)位置,在注冊(cè)表“HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionWindows”的“ AppInit_DLLs”鍵值是其常用藏身地,該位置是很容易被大家忽視。“HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorerRun”分支也應(yīng)引起我們的關(guān)注。
后門程序還常會(huì)在注冊(cè)表“HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionWinlogon”分支下的“userinit”和“shell”鍵值中添加惡意程序,悄無(wú)聲息的跟隨系統(tǒng)啟動(dòng)自動(dòng)激活。利用ActivcX技術(shù)自啟動(dòng)的后門程序會(huì)在注冊(cè)表中的“HKEY_LOCAL_MACHINESOFTWAREMicrosoftActive SetupInstalled Components”分支下對(duì)應(yīng)子健的“StubPath”鍵值中藏身。
不管后門程序采用哪一種啟動(dòng)方式,最終必然會(huì)成為活動(dòng)進(jìn)程。使用任務(wù)管理器、Process Explorer、TaskPatrol、AnVir Task Manager、PCHunter等工具,都可以幫助查看和定位可疑進(jìn)程。
例如,使用TaskPatrol進(jìn)程管理工具,可以徹底“看穿”進(jìn)程的來(lái)龍去脈,并準(zhǔn)確分析安全等級(jí),迅速清除有害進(jìn)程。
有些后門程序會(huì)采取雙進(jìn)程守護(hù)方式,當(dāng)您在任務(wù)管理器中關(guān)閉一個(gè)進(jìn)程后,另外一個(gè)會(huì)自動(dòng)將其激活。其實(shí),使用記事本就可以輕松對(duì)付雙進(jìn)程守護(hù)型后門程序。假設(shè)某種后門程序侵入本機(jī),在系統(tǒng)中創(chuàng)建了名稱為“a.exe”和“b.exe”的守護(hù)型進(jìn)程,在“開(kāi)始→運(yùn)行”中執(zhí)行“msinfo32.exe”程序,在系統(tǒng)信息窗口左側(cè)點(diǎn)擊“系統(tǒng)摘要→軟件環(huán)境→正在運(yùn)行任務(wù)”項(xiàng),在右側(cè)窗口中顯示詳細(xì)的進(jìn)程信息。
在其中得知“a.exe”進(jìn)程的主文件保存路徑為“c:windowssystem32”。接著打開(kāi)“c:windowssystem32”文件夾,將“notepad.exe”文件復(fù)制到D盤根目錄下,并改名為“a.exe”。接著打開(kāi)記事本程序,輸入“@echo off”“taskkill/f/im a.exe”“delete c:windowssystem32a.exe”“copy d:a.exe c:windowssystem32”行。之后保存為“qingchu.bat”文件。運(yùn)行該批處理程序,其作用是先使用Taskkill命令結(jié)束a.exe病毒進(jìn)程,之后將其刪除,接著將D盤中由記事本程序改名的“a.exe”來(lái)取代其位置。之后運(yùn)行qingchu.bat”程序,系統(tǒng)即可中止真實(shí)的a.exe進(jìn)程,同時(shí)將由記事本“冒充”的病毒程序復(fù)制到目標(biāo)路徑中,當(dāng)另一個(gè)病毒進(jìn)程b.exe發(fā)現(xiàn)對(duì)方被關(guān)停后,即可自動(dòng)將其激活,但是運(yùn)行的卻是記事本程序。
接下來(lái)的工作就簡(jiǎn)單了,直接使用命令“Taskkill/f/im a.exe”,將再生的a.exe中止,根據(jù)系統(tǒng)提示信息,可以看到激活a.exe進(jìn)程的另一個(gè)進(jìn)程的PID號(hào)碼,在任務(wù)管理器中根據(jù)得到的PID號(hào)碼,就可以查詢到另一個(gè)與之關(guān)聯(lián)的病毒進(jìn)程,也就是b.exe進(jìn)程。之后在上述系統(tǒng)信息窗口中可以查到其路徑信息,接下來(lái)在任務(wù)管理器中中止b.exe進(jìn)程,同時(shí)進(jìn)入對(duì)應(yīng)目錄將其刪除即可。這樣就很輕松的擊破了病毒的進(jìn)程守護(hù)機(jī)制。
要想從進(jìn)程列表中分辨出某個(gè)進(jìn)程,首先必須熟悉每一個(gè)常用進(jìn)程及其作用。例如,“system”進(jìn)程是可以強(qiáng)制結(jié)束的,之后系統(tǒng)會(huì)自動(dòng)加載,該進(jìn)程實(shí)際只加載“C:WindowsSystem32”下的“ntoskrnl.exe”文件。“system Idle Process”進(jìn)程用來(lái)分派CPU處理時(shí)間等。
上述進(jìn)程都位于“C:WindowsSystem32”路徑中,只要強(qiáng)制關(guān)閉,系統(tǒng)就會(huì)自動(dòng)關(guān)機(jī)?!皊mss.exe”進(jìn)程是一個(gè)會(huì)話管理子系統(tǒng),負(fù)責(zé)啟動(dòng)用戶會(huì)話。“alg.exe”進(jìn)程用來(lái)管理系統(tǒng)網(wǎng)絡(luò)連接共享和防火墻,應(yīng)用程序網(wǎng)關(guān)服務(wù),為Internet連接共享和Windows防火墻提供第三方協(xié)議插件支持。類似的進(jìn)程還有很多,大家都應(yīng)熟悉其具體功能。
在任務(wù)管理器中,有的進(jìn)程的數(shù)量可能不止一個(gè)。例如,對(duì)于“svchost.exe”進(jìn)程來(lái)說(shuō),后門程序就可以通過(guò)該進(jìn)程來(lái)加載非法服務(wù)實(shí)現(xiàn)自啟動(dòng)。對(duì)于系統(tǒng)服務(wù)來(lái)說(shuō),一種是共享進(jìn)程服務(wù),另一種是非共享進(jìn)程服務(wù)。共享進(jìn)程服務(wù)一般都是利用“svchost.exe”進(jìn)程啟動(dòng)的。
因此,如果有多個(gè)服務(wù)都通過(guò)該進(jìn)程啟動(dòng),在進(jìn)程列表中就會(huì)出現(xiàn)多個(gè)“svchost.exe”進(jìn)程。如果該進(jìn)程數(shù)量較多,就要警惕了??稍谧?cè)表中打開(kāi)“HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices”分支,點(diǎn)擊“F3”鍵,在搜索窗口中輸入“%SystemRoot%system32svchost.exe”,可以查找到和該進(jìn)程關(guān)聯(lián)的服務(wù)項(xiàng)目,在具體服務(wù)的子鍵下選擇“Parameters”項(xiàng),在右側(cè)的“ServiceDll”鍵值中可以發(fā)現(xiàn)具體的動(dòng)態(tài)庫(kù)路徑,定位到具體的DLL動(dòng)態(tài)庫(kù),就可以判斷其是否是后門程序,進(jìn)而對(duì)其查殺。
目前流行的后門程序由于采用了進(jìn)程插入技術(shù),普通的查找技術(shù)很難發(fā)現(xiàn)其蹤跡。使用PowerTool工具就可看穿進(jìn)程內(nèi)部秘密。在主界面的“進(jìn)程管理”中顯示所有的進(jìn)程信息,選擇后門程序常用進(jìn)程(如“explorer.exe”等),在窗口底部顯示其調(diào)用所有DLL模塊信息,包括模塊路徑、廠商名稱、校驗(yàn)標(biāo)志等。細(xì)致分析后就可讓后門程序露出原形。
對(duì)于確定的后門程序DLL模塊,可以右擊“普通卸載模塊”“強(qiáng)行卸載模塊”等項(xiàng)從系統(tǒng)中清除。因?yàn)楹箝T通常會(huì)很好的隱蔽自己(例如使用HOOK技術(shù)等),想找到其文件不是件容易的事。其實(shí),使用WinRAR這款常用的壓縮軟件就可讓隱藏的后門程序徹底現(xiàn)形。WinRAR雖然是一款壓縮軟件,不過(guò)其自帶了文件瀏覽功能,而且WinRAR調(diào)用的是非標(biāo)準(zhǔn)的API函數(shù)來(lái)顯示文件信息,這樣即使后門程序使用了HOOK技術(shù),可以騙過(guò)資源管理器,卻逃不過(guò)WinRAR。當(dāng)在WinRAR中發(fā)現(xiàn)后門程序文件后,如果直接點(diǎn)擊Delete鍵無(wú)法刪除,可以點(diǎn)擊工具欄上的添加按鈕,在創(chuàng)建壓縮包界面中勾選“壓縮后刪除原文件”項(xiàng),就可以刪除了。
其實(shí),利用系統(tǒng)自帶的安全工具同樣可以搞定后門程序。例如,在“C:Windowssystem32”文件夾中發(fā)現(xiàn)后門程序“Windll32.exe”,刪除后,為防止其繼續(xù)侵襲本機(jī),可在該路徑下創(chuàng)建名稱 為“windll32.exe”的文件夾,之后在CMD窗口中進(jìn)入該文件夾,執(zhí)行“mkdir baohuwin..”命令,創(chuàng)建名稱為“baohuwin”的防刪文件夾。這樣,該后門程序就無(wú)法在系統(tǒng)路徑下容身了。
利用映像劫持技術(shù),以毒攻毒,針對(duì)后門程序創(chuàng)建專用的映像劫持項(xiàng)目,來(lái)阻止其運(yùn)行。如果您不想費(fèi)力的修改注冊(cè)表來(lái)實(shí)現(xiàn)上述操作,可以利用映像劫持編輯器工具來(lái)快速創(chuàng)建特定的映像劫持項(xiàng)目。在其主窗口中點(diǎn)擊“新建”按鈕,在彈出窗口的“進(jìn)程名稱”欄中輸入后門程序程序名稱,在“映像路徑”欄中輸入其他程序(例如記事本)或根本不存在的程序名稱,點(diǎn)擊“確定”,就成功的將后門程序“劫持”了。當(dāng)該后門程序試圖啟動(dòng)時(shí),要么啟動(dòng)無(wú)關(guān)程序要么根本無(wú)法啟動(dòng)。
利用權(quán)限設(shè)置,可以巧妙的讓后門程序失去活力。例如,在系統(tǒng)路徑中發(fā)現(xiàn)無(wú)法刪除的可疑文件“svch0st.dll”后,可在“屬性→安全→組或用戶名”中選擇當(dāng)前使用的賬戶名,在該賬戶權(quán)限列表中的“拒絕”列選擇所有項(xiàng)目,徹底禁止該后門程序的活力。利用系統(tǒng)內(nèi)置的Taskkill工具,可以快速清理后門進(jìn)程。在CMD中執(zhí)行“tasklist/svc”,可以查看當(dāng)前所有進(jìn)程的信息。
這樣,可清楚地看到后門進(jìn)程的PID號(hào)。之后執(zhí)行“taskkill/PID xxxx”命令,就可以關(guān)閉PID為“xxxx”的進(jìn)程。如果執(zhí)行“taskkill/PID 進(jìn)程ID/f/t”命令,可以強(qiáng)制關(guān)閉指定的進(jìn)程,同時(shí)終止其啟用的所有子進(jìn)程。Taskkill命令有一項(xiàng)絕活就是可以同時(shí)關(guān)閉多個(gè)進(jìn)程,例如,當(dāng)需要清除ID號(hào)分別為3690、6900、7890等多個(gè)進(jìn)程時(shí),可以執(zhí)行“Taskkill/f/PID 3690/PID 6900/PID 7890”命令,將其一并清除。
當(dāng)然,也可以按照進(jìn)程名稱來(lái)執(zhí)行關(guān)閉操作。執(zhí)行“tasklist/im winserver32.exe/f”命令,就可以關(guān)閉名為“winserver32.exe”的進(jìn)程。利用Taskkill命令,可以順藤摸瓜發(fā)現(xiàn)多進(jìn)程守護(hù)型后門程序。例如執(zhí)行“taskkill/im daemon.exe/t”命令,根據(jù)返回信息顯示該進(jìn)程是屬于PID為736的子進(jìn)程,該進(jìn)程的名稱為“syswd.exe”,執(zhí)行“taskkill/im syswd.exe/t”命令,發(fā)現(xiàn)是PID為1560進(jìn)程的子進(jìn)程,經(jīng)查PID為1560的進(jìn)程名為“sersec.exe”。這些進(jìn)程相互守護(hù),無(wú)法逐個(gè)關(guān)閉。
執(zhí)行“taskkill/im daemon.exe/im syswd.exe/im sersec.exe/f”命令,就可以將其一網(wǎng)打盡。使用Taskkill命令,還可以快速清除所有失去相應(yīng)的進(jìn)程,執(zhí)行“taskkill/fi " status eq not responding"”即可。有時(shí),當(dāng)發(fā)現(xiàn)了某個(gè)后門程序后,卻無(wú)法將其對(duì)應(yīng)的DLL文件刪除,究其原因,在于該DLL文件插入到了某個(gè)合法進(jìn)程中。對(duì)此,可以執(zhí)行“taskkill/fi "modules eq xxx.dll"”命令,來(lái)關(guān)閉所有調(diào)用“xxx.dll”的進(jìn)程即可。
對(duì)于頑固的后門進(jìn)程,可以利用系統(tǒng)內(nèi)置的SYSTEM帳戶將其清除。例如在命令提示符窗口中執(zhí)行“sc Create SuperCMD binPath="cmd/K start" type=own type=interact”命令,建立一個(gè)名為“SuperCMD”的交互服務(wù)。執(zhí)行“sc start SuperCMD”命令,來(lái)啟動(dòng)該交互進(jìn)程。之后系統(tǒng)會(huì)彈出交互式服務(wù)檢測(cè)窗口。點(diǎn)擊其中的“查看消息”按鈕,可以以SYTEM賬戶身份打開(kāi)命令提示符窗口。在其中執(zhí)行“taskmgr.exe”程序,就會(huì)以SYSTEM賬戶身份啟動(dòng)任務(wù)管理器,這樣,就可以有效關(guān)停頑固進(jìn)程了。操作完畢后,在交互式服務(wù)檢測(cè)窗口中點(diǎn)擊“立即返回”按鈕,回到正常操作界面。
對(duì)于一些很狡猾的后門進(jìn)程,使用上述方法未必有效。使用ntsd命令可以將其輕松清除。首先確定需要清除的后門進(jìn)程ID號(hào),假設(shè)為“xxxx”,在命令行窗口中執(zhí)行“ntsd-c q-p xxx”,就可以將其終結(jié)掉。其中的“-c”參數(shù)表示執(zhí)行Debug級(jí)別的命令,“q”參數(shù)表示執(zhí)行結(jié)束后退出,“-p”參數(shù)后面跟隨具體的進(jìn)程ID。當(dāng)然,也可以針對(duì)進(jìn)程名稱進(jìn)行操作,例如想關(guān)閉名為“windll.exe”的進(jìn)程,可以執(zhí)行“ntsd-c q-pn windll.exe”,就可以將其關(guān)停。