电竞比分网-中国电竞赛事及体育赛事平台

分享

cnBeta.COM - nslog:深入剖析MY123前生今世以及手工清除方法

 karoc 2006-11-16
nslog:深入剖析MY123前生今世以及手工清除方法

警告! 新聞主題感謝nslog的投遞,一篇很不錯(cuò)的文章,推薦閱讀:
引言:寫(xiě)在最前面
MY123創(chuàng)造了很多流氓軟件的第一,有望爭(zhēng)奪流氓軟件的“最流氓軟件寶座”:
1、驅(qū)動(dòng)保護(hù)(System Bus Extend驅(qū)動(dòng),安全模式下也加載)
2、隨機(jī)文件名,DLL和SYS
3、多線程保護(hù),網(wǎng)絡(luò)自動(dòng)升級(jí)
4、極強(qiáng)的自動(dòng)恢復(fù)(即使在所有文件被刪除的情況下,仍然可以通過(guò)內(nèi)存恢復(fù)?。?br>5、驅(qū)動(dòng)文件獨(dú)占方式,其它任何程序也無(wú)法讀寫(xiě)及刪除
6、有預(yù)謀定時(shí)爆發(fā)(2006/11/11)

一、MY123的前世今生

風(fēng)雨送飄(飄雪piaoxue)歸,飛雪(fiexue)迎春到。才別傲訊(allxun)網(wǎng),又見(jiàn)一二三(MY123)。

短短一個(gè)多月時(shí)間,這些鎖主頁(yè)的流氓軟件已經(jīng)讓上千萬(wàn)的網(wǎng)民明白了什么叫做強(qiáng)盜,什么叫做無(wú)恥,什么叫做瘋狂。9號(hào)的時(shí)候就已經(jīng)聽(tīng)人放言10號(hào)以后會(huì)有一個(gè)流氓會(huì)大規(guī)模爆發(fā)。果然,在2006/11/11號(hào)這個(gè)光棍節(jié)的時(shí)候,MY123如期而至?,F(xiàn)在看來(lái),原因在于這個(gè)流氓軟件已經(jīng)早就潛伏于用戶的電腦中,通過(guò)和多個(gè)其它流氓軟件的捆綁以及其它的渠道,已經(jīng)潛入成百上千萬(wàn)的網(wǎng)民電腦中,平常也是啟動(dòng)的,但判斷日期小于11/11號(hào),就潛伏不動(dòng),一旦系統(tǒng)時(shí)間大于11號(hào),就開(kāi)始修改用戶主頁(yè)。而選擇這個(gè)特殊時(shí)間,選擇在周未的時(shí)候,顯然也是別有用心,可以利用反病毒廠商假期的時(shí)候反應(yīng)不及時(shí)而大規(guī)模爆發(fā)。

從規(guī)模及爆發(fā)面積來(lái)看,全國(guó)各地可能有數(shù)百萬(wàn)甚至上千萬(wàn)用戶被該流氓惡意修改了主頁(yè),這和之前爆發(fā)的大面積piaoxue.com, feixue.net,73ss.com,9505.com,81915.com,4199.com等惡意修改用戶主頁(yè),十分相似。同以往的一些“老流氓”相比,這些新流氓的特征是爆發(fā)面積特別大,效果明顯,目的明確單一(修改主頁(yè)),手段新奇狠毒,嘆為觀止。

顯然這是一場(chǎng)預(yù)謀已久的活動(dòng),并且短短幾天內(nèi),這個(gè)驅(qū)動(dòng)病毒至少已經(jīng)有三個(gè)不同的版本,造成一些專殺工具失效。這個(gè)MY123已經(jīng)具備所有病毒的特征,希望總有一天法律能將這種無(wú)良的作者繩之以法。

二、剖析流氓手段
這個(gè)驅(qū)動(dòng)經(jīng)過(guò)層層改進(jìn),家庭發(fā)揚(yáng)得很光大,看看:
1、飄雪(piaoxue)
2、飛雪(feixue)
3、QQHelper
4、allxun.com傲訊
5、My123(7255)

最早的MY123只有一個(gè)驅(qū)動(dòng),已經(jīng)有多個(gè)專殺工具可以殺。后來(lái)又出現(xiàn)版本2,即多一個(gè)同名的.dll位于system32目錄下,現(xiàn)在的版本3,是一個(gè)非同名的.dll位于system32目錄下。今天主要分析一下我手頭拿到的這個(gè)版本3。

1、程序安裝

首先是釋放一個(gè).dll到system32目錄下,文件名的特征是隨機(jī)的8位字母(也有版本是6位字母加2位數(shù)字),然后調(diào)用rundll32.exe wceiukte,DllUnregisterServer來(lái)注冊(cè)COM組件,接下來(lái)調(diào)用Rundll32.exe wceiukte.dll,DllCanUnloadNow來(lái)運(yùn)行程序,并且注冊(cè)WH_CALLWNDPROC這個(gè)系統(tǒng)掛鉤。
DLL分別注入SYSTEM和EXPLORER進(jìn)程空間,進(jìn)行保護(hù),如果檢測(cè)沒(méi)有驅(qū)動(dòng),則會(huì)自動(dòng)釋放出驅(qū)動(dòng),然后加載。同時(shí)這個(gè)DLL具有網(wǎng)絡(luò)下載升級(jí)功能。
這個(gè)dll運(yùn)行后,會(huì)生成一個(gè).sys文件,放到drivers系統(tǒng)目錄下。DLL通過(guò)一個(gè)算法得到SYS文件名,算法是:

DLL的文件名
ascii碼+32143289052890852-32143289052890848-34320958+34320955就就是SYS文件名
也就是ascii + 1
即.dll的文件名為:wceiukte.dll那么.sys文件名就為:xdfjvluf.sys

2、注冊(cè)和加載驅(qū)動(dòng)
會(huì)在注冊(cè)表的HKLMSYSTEMCurrentControlSetServices下寫(xiě)下同驅(qū)動(dòng)名的一個(gè)值,把自己注冊(cè)為System Bus Extend的驅(qū)動(dòng),使得它的優(yōu)先級(jí)很高,即使在安全模式下加載,也使得很多想清除它的軟件無(wú)效。然后通過(guò)services來(lái)加載驅(qū)動(dòng),驅(qū)動(dòng)加載后,生成三個(gè)線程附加到system這個(gè)系統(tǒng)核心進(jìn)程上,(以前的驅(qū)動(dòng)是兩個(gè)線程)獲取最高權(quán)限。通過(guò)Process Explorer可以查看到這三個(gè)線程:


三個(gè)線程的作用分別為:

0x1dd4:自身文件獨(dú)占及句柄檢測(cè)保護(hù)模塊等,會(huì)將自身文件以獨(dú)占方式打開(kāi),這樣若不解除獨(dú)占,任何windows下使用常規(guī)訪問(wèn)文件方法的程序包括殺毒軟件都無(wú)法讀寫(xiě)或者刪除它的驅(qū)動(dòng)程序文件。
文件句柄檢測(cè)保護(hù)模塊則是為了防止手工或者專殺的解除句柄的操作。以前的手工清除或者專殺都是需要先解除這個(gè)獨(dú)占,才能刪除文件。
但該驅(qū)動(dòng)增加了這個(gè)保護(hù),會(huì)不停檢測(cè)自身文件的獨(dú)占是否被強(qiáng)制解除,如果檢測(cè)到,立即再次獨(dú)占.

0x1816:
服務(wù)保護(hù)模塊:該模塊會(huì)檢測(cè)驅(qū)動(dòng)自身的注冊(cè)表服務(wù)項(xiàng),不停地暴力重寫(xiě)自身服務(wù)項(xiàng),使得無(wú)法刪除其服務(wù)項(xiàng).

0x103e:
篡改首頁(yè)模塊:該模塊會(huì)不停暴力重寫(xiě)注冊(cè)表中首頁(yè)設(shè)置為www.,導(dǎo)致無(wú)法對(duì)該項(xiàng)進(jìn)行修復(fù).

三、手工清除辦法(適合目前有一定操作技能的用戶)
清除了這個(gè)流氓的手段,就可以針對(duì)來(lái)找一些清除辦法了。當(dāng)然,比起上一次的飄雪來(lái),困難了許多。

1、找出驅(qū)動(dòng)
要?dú)⒘髅ボ浖牡谝徊?,就是要找出流氓軟件,可以有多種辦法找出這個(gè)流氓軟件。
用到我以前寫(xiě)的一篇文章《釜底抽薪:用autoruns揪出流氓軟件的驅(qū)動(dòng)保護(hù)》,我們今天就來(lái)實(shí)戰(zhàn)一下。運(yùn)行autoruns之后,在它的 “Options(選項(xiàng))”菜單中有兩項(xiàng)“Verifiy Code Signatures(驗(yàn)證代碼簽名)“Hide Signed Microsoft Entries(隱藏已簽名的微軟項(xiàng))“,把這兩項(xiàng)都選中了。掃描之后,我們只看驅(qū)動(dòng)(driver)這一項(xiàng):


可以看出來(lái),它是假冒微軟的驅(qū)動(dòng)。這個(gè)驅(qū)動(dòng)雖然寫(xiě)明是微軟的,但是沒(méi)有經(jīng)過(guò)微軟的數(shù)字簽名,所以肯定是假的。(可能你的機(jī)器上顯示特別多,但所有非微軟的,都是有問(wèn)題的),因?yàn)槭请S機(jī)生成的文件名,所以你那里找出來(lái)的,可能跟我的不一樣。請(qǐng)自己記下文件名。特征是8位隨機(jī)的字母,并且公司是微軟公司,但是顯示(Not verified),如果你這里不能確認(rèn),可以用下面的辦法。

2、用procexp找出驅(qū)動(dòng)名來(lái)
運(yùn)行procexp,(下載地址見(jiàn)最后),找到system這個(gè)進(jìn)程,然后點(diǎn)右鍵——屬性(Properties)——線程(Threads),然后把下面的框子拉到最后,看有連續(xù)三個(gè),比較無(wú)規(guī)則的八個(gè)字母的驅(qū)動(dòng),再跟autoruns對(duì)一下就可以確定是哪個(gè)驅(qū)動(dòng)了。(見(jiàn)第一張圖)

3、刪除驅(qū)動(dòng).sys

打開(kāi)c:windowssytem32drivers目錄,由于這個(gè).sys驅(qū)動(dòng)文件把自己設(shè)為系統(tǒng)、隱藏,所以需要打開(kāi)文件夾的顯示系統(tǒng)文件的選項(xiàng)才能看到。(你也可以用這個(gè)辦法來(lái)找到驅(qū)動(dòng),一般的正常驅(qū)動(dòng)都不會(huì)想著隱藏自己的)。

在那個(gè)驅(qū)動(dòng)文件上點(diǎn)右鍵,然后——Unlocker——會(huì)出來(lái)一個(gè)對(duì)話框,顯示當(dāng)前已經(jīng)使用這個(gè).sys的進(jìn)程,點(diǎn)“Unlock“,然后再Unlocker一下......顯示文件已經(jīng)被刪除了。。。。。以為大功告成了。

但是緊接著怪事就出事了,刷新一下,發(fā)覺(jué)這個(gè)文件又出現(xiàn)了!百思不得其解,已經(jīng)確認(rèn)所有的后臺(tái)服務(wù)都是正常的,那個(gè).dll也已經(jīng)被刪除了....這個(gè)問(wèn)題困擾了許久,又拿出驅(qū)動(dòng)好好研究了一下,終于發(fā)覺(jué)這個(gè)極其變態(tài)的辦法——一個(gè)正常的人是不可能把寫(xiě)出這樣的驅(qū)動(dòng)的!

它注冊(cè)了一個(gè)NotifyRoutine的一個(gè)回調(diào)函數(shù),這個(gè)是一個(gè)自我修復(fù)的功能,只要系統(tǒng)任何進(jìn)程或線程打開(kāi),它馬上會(huì)調(diào)用,檢查文件如果被刪了就立即從內(nèi)存中自動(dòng)恢復(fù)!顯然是針對(duì)上一次飄雪的那個(gè)手工專殺或者清除辦法做的一次改進(jìn),正常辦法根本不可能刪掉。

用unlocker的確是把文件刪除了,但是沒(méi)有辦法不啟動(dòng)其它進(jìn)程或者線程啊,即使馬上選擇關(guān)機(jī),它也會(huì)新建線程,這個(gè)時(shí)候它也馬上可能恢復(fù)了。。。。難道只能用最后一招:DOS大法???真很不甘心啊....&%$#@!&*()_+

也不知怎么了,突然靈光一線,想到一個(gè)絕招:斷電法!就是:刪除之后,馬上不做任何操作,直接按機(jī)器電源鍵重啟!經(jīng)實(shí)驗(yàn)是成功的,OK...followed me...

清除之前,我們先要停止那三個(gè)system中的線程,那個(gè)會(huì)不停地自動(dòng)檢測(cè),打開(kāi)procexp,然后在system上點(diǎn)右鍵---屬性---線程,點(diǎn)一下Start Address,這樣可以按字母排序,找到剛才我們看到的驅(qū)動(dòng),三個(gè)連續(xù)在一起。點(diǎn)一下線程,然后點(diǎn)那個(gè)“Suspend“按鈕,將這個(gè)線程暫停。(它做了自我保護(hù),殺不掉的,只能暫停)。

確保停止線程之后,這個(gè)按鈕都變成“Resume(暫停)”,三個(gè)線程全部暫停之后,打開(kāi)c:windowssystem32drivers目錄,右鍵點(diǎn)那個(gè).sys驅(qū)動(dòng)---unlocker。


第一次先unlock那個(gè)System的句柄占用。第二次再unlocker,這個(gè)時(shí)候就會(huì)出來(lái)一個(gè)對(duì)話框:

這時(shí)注意了:

一手將鼠標(biāo)移動(dòng)OK對(duì)話框中,一手找到機(jī)器的RESET鍵(請(qǐng)確保這個(gè)鍵有效,直接斷電對(duì)機(jī)器有損傷),在按下鼠標(biāo)之后,一看到那個(gè)刪除OK的提示之后,馬上按下RESET鍵,直接重啟機(jī)器(如果是筆記本,就先把電池拿了,直接斷電)。這個(gè)辦法講究眼急手快,如果無(wú)效再試一次。

按我的經(jīng)驗(yàn),兩秒之后按下RESET鍵都是有效的(殺這個(gè)東西真不容易,再次詛咒一個(gè)寫(xiě)出這么變態(tài)驅(qū)動(dòng)的人來(lái))。

3、刪除.dll
當(dāng)失去驅(qū)動(dòng)保護(hù)之后,這個(gè)DLL也就肉雞了,要?dú)⒁獎(jiǎng)幦珣{你喜歡了。你放在那里不管也無(wú)所謂。它隱藏得也很深,沒(méi)有在注冊(cè)表的啟動(dòng)組里面表現(xiàn)出來(lái)。360 出的專殺,只能殺MY123的前兩代,對(duì)于這個(gè)第三代,目前為止還不能清除,只能清除.dll。所以有時(shí)開(kāi)機(jī)之后會(huì)顯示加載DLL失?。?br>

這個(gè)是由那個(gè)該死的驅(qū)動(dòng)去加載的,所以找注冊(cè)表是沒(méi)有用的。

重啟之后,再重新設(shè)一下IE的主頁(yè),應(yīng)該就可以了。至于那個(gè)Seriver的值,刪不刪都無(wú)所謂了。

四、DOS大法(適合現(xiàn)在以及將來(lái)所有此類型的流氓軟件,要求較高)
DOS大法一直是我們殺這類驅(qū)動(dòng)流氓的最后一招,無(wú)論多么強(qiáng)的驅(qū)動(dòng)保護(hù),只要用了它,手到擒來(lái),但是由于要安裝另外一個(gè)系統(tǒng)或者操作DOS,對(duì)于新手來(lái)說(shuō),有一定難度,所以一般來(lái)說(shuō),都不是我推薦的。這里建議去下載一個(gè)叫vfloopy的虛擬軟驅(qū)軟件,安裝之后,系統(tǒng)重啟的時(shí)候就多了一項(xiàng),啟動(dòng)到虛擬軟驅(qū),這樣可以直去直接刪除這個(gè)驅(qū)動(dòng)文件。

上面這個(gè)累了一身汗的辦法,不知多久就地失效,但思路是一樣的,只要找到驅(qū)動(dòng)文件,下面就是如何刪除的問(wèn)題。寫(xiě)飄雪的時(shí)候就想著寫(xiě)這個(gè)辦法了,但是覺(jué)得麻煩,不愿意再啟一個(gè)操作系統(tǒng)。

你也可以用深山紅葉這類系統(tǒng)急救光盤(pán)或者另外一個(gè)Windows去刪除那個(gè)驅(qū)動(dòng)文件,具體的操作流程我就不多費(fèi)口舌了。



    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多