“求職信”病毒/蠕蟲(chóng)行為深入分析
描述:
程序名稱(chēng):Worm.wantjob.57345 “求職信”
程序類(lèi)型:病毒/蠕蟲(chóng)
利用漏洞:MIME漏洞
(http://www.microsoft.com/technet/security/bulletin/ms01-020.asp)
病毒行為:自我復(fù)制,通過(guò)email傳播,通過(guò)網(wǎng)絡(luò)共享傳播,感染可執(zhí)行文件(包括屏保),
破壞本地文件
受影響的系統(tǒng):所有32位Windows版本。
詳細(xì)描述(基于Win2K平臺(tái)):
該程序具有罕見(jiàn)的雙程序結(jié)構(gòu),分為蠕蟲(chóng)部分(網(wǎng)絡(luò)傳播)和病毒部分(感染文件,破壞文件)。
兩者在代碼上是獨(dú)立的兩部分,可能也是分開(kāi)編寫(xiě)的。兩者的結(jié)合方式非常有趣,作者先是寫(xiě)好蠕蟲(chóng)
部分,然后將病毒部分的二進(jìn)制碼在特定位置加進(jìn)蠕蟲(chóng)部分,得到最終的病毒/蠕蟲(chóng)程序。
完整的wantjob第一次運(yùn)行時(shí)只執(zhí)行蠕蟲(chóng)部分代碼,具體如下:
1、把自身拷貝至“\WINNT\System32\krn132.exe”,并設(shè)置系統(tǒng)、隱藏、只讀屬性。
(在Windows 2000下同時(shí)設(shè)置了系統(tǒng)和隱藏屬性的文件在資源管理器中是不可見(jiàn)的,即使選擇了
“顯示所有文件和文件夾”。取消選擇“隱藏受保護(hù)的操作系統(tǒng)文件(推薦)”后則是可見(jiàn)的。)
2、把“\WINNT\System32\krn132.exe”注冊(cè)為“Krn132”服務(wù),并設(shè)置為開(kāi)機(jī)時(shí)自動(dòng)運(yùn)行。
3、在internet臨時(shí)文件夾中讀取所有"htm","html"文件并從中提取email地址,此蠕蟲(chóng)利用和Nimda
一樣利用了MIME漏洞把自身加到郵件中,發(fā)送到所有獲得的地址。
郵件主題隨即設(shè)為下列之一:
“Hi”“Hello”“How are you?”“Can you help me?”“We want peace”
“Where will you go?”“Congratulations!!!”“Don't Cry”“Look at the pretty”
“Some advice on your shortcoming”“Free XXX Pictures”“A free hot porn site”
“Why don't you reply to me?”“How about have dinner with me together?”
“Never kiss a stranger”
內(nèi)容為空,但編碼中有一段注釋?zhuān)?
4、搜索網(wǎng)上鄰居,發(fā)現(xiàn)可寫(xiě)的共享目錄會(huì)隨機(jī)生成一個(gè)文件名,并將病毒自身進(jìn)行加密,用該文件名
將病毒復(fù)制過(guò)去。文件名的生成規(guī)則:
第一部分隨機(jī)生成的名字為字母或數(shù)字,最后補(bǔ)一個(gè)“.”,
第二部分在Htm、Doc、Jpg、Bmp、Xls、Cpp、Html、Mpg、Mpeg中選擇一個(gè)。
第三部分補(bǔ)上exe作為擴(kuò)展名。
5、krn132.exe每啟動(dòng)一次就會(huì)在目錄:“%Temp%”和“\WINNT\Temp\”中創(chuàng)建一個(gè)自身的副本,
文件名是以K打頭的,形如“k871.exe”、“k2.exe”或“ka.exe”。
完整的wantjob第一次運(yùn)行時(shí)還會(huì)設(shè)置病毒在下次開(kāi)機(jī)時(shí)執(zhí)行病毒部分,具體如下:
6、、改變部分編碼后拷貝至“\WINNT\System32\Wqk.dll”,并設(shè)置系統(tǒng)、隱藏、只讀屬性。
7、、在注冊(cè)表中寫(xiě)入以下鍵值
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows]
"AppInit_DLLs"="Wqk.dll"
把Wqk.dll注冊(cè)為系統(tǒng)啟動(dòng)時(shí)必須加載的模塊。下次開(kāi)機(jī)時(shí),病毒部分以動(dòng)態(tài)鏈接庫(kù)形式被加載,
存在于所有系統(tǒng)進(jìn)程中。因?yàn)闆](méi)有自己的PID,所以在任務(wù)管理器中也看不見(jiàn),也不能被終止。
這是黑客常用的一種隱藏backdoor的方法,微軟知識(shí)庫(kù)Q134655和Q125680詳細(xì)論述了這一問(wèn)題。
下次開(kāi)機(jī)時(shí),Wqk.dll被加載,wantjob以病毒方式運(yùn)行:
1、遍歷硬盤(pán),尋找PE文件,并感染之。
2、檢查本地的時(shí)間,如果時(shí)間為1月13日,則馬上啟動(dòng)26個(gè)破壞線(xiàn)程,用內(nèi)存中的數(shù)據(jù)覆蓋硬盤(pán)上的
所有文件。
3、Wqk.dll每啟動(dòng)一次就會(huì)在目錄:“\WINNT\System32\”中創(chuàng)建一個(gè)自身的副本,
文件名為“Wqk.dll”再加一個(gè)數(shù)字,形如“Wqk.dll6”、“Wqk.dll23”。
無(wú)論以什么方式運(yùn)行,wantjob都會(huì)進(jìn)行一些自我保護(hù)的措施:
1、檢查進(jìn)程,如果發(fā)現(xiàn)一些殺毒軟件在(AVP、NAV、NOD、Macfee等)在運(yùn)行,則將該軟件的進(jìn)程
終止。
2、不斷向注冊(cè)表中寫(xiě)入
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows]
"AppInit_DLLs"="Wqk.dll"
既使手工去掉了這個(gè)鍵值,馬上就會(huì)重新被寫(xiě)入。
以上提到的都是wantjob在Win2K下的情況,在WinNT下的情況也大體類(lèi)似。而在Win9X下就略有不
同,主要是:
1、由于Win9X不存在“服務(wù)”所以wantjob不注冊(cè)“Krn132”服務(wù)。而是在注冊(cè)表
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run]
寫(xiě)入"krn132"="C:\WINDOWS\SYSTEM\krn132.exe"
2、系統(tǒng)文件夾下沒(méi)有“Wqk.dll”,而代以Wqk.exe,并在注冊(cè)表
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run]
寫(xiě)入"Wqk.exe"="C:\WINDOWS\SYSTEM\Wqk.exe"
解決方案:
在Win9X下最好開(kāi)機(jī)進(jìn)入DOS模式,在DOS下殺毒。然后再清除相關(guān)注冊(cè)表鍵值。
由于wantjob的特殊性,目前的所有反病毒軟件都不可能在Win2K下完全清除之,因?yàn)閃qk.dll總在
任何程序運(yùn)行之前加載在內(nèi)存中,又無(wú)法刪除注冊(cè)表相關(guān)鍵值,所以需要按照以下步驟進(jìn)行:
1、結(jié)束所有krn132.exe進(jìn)程。
2、刪除“\WINNT\System32\krn132.exe”及上文提到的臨時(shí)文件夾中的所有副本。
3、刪除或禁用“Krn132”服務(wù)。
4、在注冊(cè)表[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]中
添加以下鍵值:
@="cmd /c "attrib -s -h -r \WINNT\System32\Wqk.dll"&"del \WINNT\System32\Wqk.dll""
(系統(tǒng)啟動(dòng)時(shí),這個(gè)鍵值是優(yōu)先于上面提到的“AppInit_DLLs”載入的)然后重啟系統(tǒng),運(yùn)行反病
毒軟件查殺整個(gè)硬盤(pán)。
或者:
用支持NTFS的干凈軟盤(pán)啟動(dòng)系統(tǒng),或以Windows 2000安裝光盤(pán)啟動(dòng)系統(tǒng),選擇修復(fù)Windows 2000
安裝的選項(xiàng),最后啟動(dòng)“故障恢復(fù)控制臺(tái)”。刪除Wqk.dll。用可以從控制臺(tái)啟動(dòng)的反病毒軟件查殺
整個(gè)硬盤(pán)。(在此之前請(qǐng)聯(lián)系反病毒軟件廠(chǎng)商,升級(jí)最新的病毒特征庫(kù))
5、正常啟動(dòng)系統(tǒng),刪除相關(guān)注冊(cè)表鍵值。
只要可能,強(qiáng)烈建議格式化硬盤(pán)后重裝系統(tǒng),或用備份系統(tǒng)恢復(fù)。
預(yù)防措施:
1、針對(duì)MIME漏洞:打開(kāi)IE的“工具-->internet選項(xiàng)-->安全-->自定義級(jí)別-->文件下載”選“禁用”。
還可以安裝IE的Service Pack 2,或者升級(jí)到IE6。
2、恰當(dāng)?shù)卦O(shè)置共享目錄權(quán)限及口令。
3、不要打開(kāi)可疑郵件,尤其是不要以HTML方式打開(kāi)。
常見(jiàn)問(wèn)題:
1、wantjob用什么語(yǔ)言編寫(xiě)?
因?yàn)槌绦驎?huì)對(duì)自身進(jìn)行重新編碼,所以原始程序并無(wú)明顯特征,但其病毒部分代碼是完整的,分離后
可以看出是用MS Visual C++ v6.0編譯的,結(jié)合程序大小判斷,可能采用了C++/ASM混合編程的方式。
2、如何知道自己是否已感染wantjob?
主要是檢查有無(wú)可疑文件,具體詳見(jiàn)上文。
3、加載在內(nèi)存中的Wqk.dll真的無(wú)法察覺(jué)嗎?
Wqk.dll加載到內(nèi)存中后,系統(tǒng)反應(yīng)會(huì)明顯遲緩,硬盤(pán)無(wú)故轉(zhuǎn)動(dòng)。
使用sysinternals.com的一個(gè)工具listdlls.exe可以察看系統(tǒng)加載的模塊,使用如下格式命令:
“l(fā)istdlls -d ”
可知系統(tǒng)當(dāng)前是否加載了Wqk.dll
4、我用一些反編譯工具分析wantjob,為什么失敗了?
wantjob不是直接由編譯鏈接工具產(chǎn)生,而是經(jīng)過(guò)了手工編碼,所以一些工具會(huì)出錯(cuò)??梢栽囈幌?
W32dasm。
5、我用W32dasm成功的反編譯了wantjob,但為什么很多字符串看上去很怪?
wantjob對(duì)一些字符串進(jìn)行了簡(jiǎn)單的單表代換編碼,如F->C,L->T,K->S等。像“rwky64”其實(shí)就
是“base64”
6、wantjob和Nimda、Sircam相比,那個(gè)危害更大?
顯然,wantjob的傳播速度沒(méi)有Nimda快,但肯定會(huì)比Sircam快。它能感染文件,且能破壞文件,
危害應(yīng)該不會(huì)比Nimda小多少,造成經(jīng)濟(jì)損失可能會(huì)比Nimda更大
相關(guān)文章
常見(jiàn)的網(wǎng)上鄰居訪(fǎng)問(wèn)問(wèn)題精解
常見(jiàn)的網(wǎng)上鄰居訪(fǎng)問(wèn)問(wèn)題精解...2006-11-11新手學(xué)習(xí)之局域網(wǎng)中代理設(shè)置
新手學(xué)習(xí)之局域網(wǎng)中代理設(shè)置...2006-11-11高手進(jìn)階 巧改設(shè)置強(qiáng)化3389入侵
高手進(jìn)階 巧改設(shè)置強(qiáng)化3389入侵...2006-11-11