手工殺掉雙線程、感染所有EXE文件病毒

前些日子,與一起培訓的學生照過合影後回到機房,我在我的電腦中開了一個完全共享,希望他們通過網絡將照片傳過來。過了一會,查看共享目錄時,我發現有一個名稱爲“我的照片”的.EXE文件,當時還納悶,怎麼快就把電子相冊做好了?加上我的電腦裏安裝有及時更新的“卡巴斯基”,所以沒多想便雙擊了那個“我的照片.exe”,隨後電腦中出現一幅天王劉德華的照片,單擊後退出了。看到並不是想要的合影時,我心想這下可能壞了。

電腦正常運行,並沒有特別的異常情況,但我心想,一定不會這麼簡單,先上網查查吧。不查不知道,一查嚇一跳,原來這是一個叫做“詭祕變種S”的病毒,大家也把它稱爲“劉德華病毒”,這種病毒主要通過局域網進行傳播,它試圖把自己複製到局域網其他用戶的共享文件夾裏。感染病毒之後,會將自己拷貝到系統目錄下,文件名爲“svchost.exe”。病毒會修改exe文件的關聯方式,這樣用戶每次運行exe文件的時候都會先運行病毒。通過病毒的接應,黑客可以遠程對用戶電腦進行控制,任意刪除用戶電腦上的文件,獲取用戶存儲在電腦上的信息。

   看到發作結果這麼可怕,於是趕緊着手殺毒。卡巴斯基沒有報警,看來只好用其他殺毒軟件了,於是我試了試瑞星、金山等殺毒廠商提供的免費查毒功能,結果發現,沒有一個可以查到。看來我所感染的這個是老式“詭祕變種S”的變種,目前還未被各殺毒廠商發現,看到其可能會獲取用戶資料,心裏又萬分焦急。無耐之下,嘗試手動殺毒。經過一番努力,病毒基本處理乾淨,作爲對大家解決病毒、木馬問題的參考,寫下我的處理過程。

    首先作爲驗證,我到C盤WINDOWS目錄查找是否有svchost.exe文件,沒有,可能是隱藏文件,於是想顯示所有文件再查。點擊資源管理器中的文件夾選項後,出現如下情況:

手工殺掉雙線程、感染所有EXE文件病毒 - shujuhuifu808 - 數據恢復知識彙總分析

    竟然不可以修改顯示“隱藏文件和系統文件”屬性,看來病毒已經在註冊表作了手腳。試着運行REGEDIT.EXE,可以進入,進入後查看HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Explorer/Advanced/Folder/Hidden,發現其下沒有SHOWALL項,看來是病毒刪除了。先按照下面註冊表文件還原:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Explorer/Advanced/Folder/Hidden/SHOWALL]

"RegPath"="Software//Microsoft//Windows//CurrentVersion//Explorer//Advanced"

"Text"="顯示所有文件和文件夾"

"Type"="radio"

"CheckedValue"=dword:00000001

"ValueName"="Hidden"

"DefaultValue"=dword:00000002

"HKeyRoot"=dword:80000001

"HelpID"="shell.hlp#51105"

    更改註冊表後退出,再進入文件夾選項時已經出現了“顯示所有文件和文件夾”的選項,選中後,立刻進入windows目錄下,果然發現了病毒體svchost.exe(操作系統的svchost.exe並沒有放在windows目錄下),但過了一會再查看,發現又無法顯示隱藏和系統文件了,刪除svchost.exe文件時提示文件保護,無法刪除。綜合推斷,病毒駐留程序會隔一段時間監視註冊表的改動(其實是不管三七二十一重寫特定鍵值)。按下“ctrl+alt+del”鍵進入任務管理器後查看,有多個svchost(有幾個是系統核心進程),試着逐個結束,未果,看來病毒有自我保護技術(雙線程或其他吧,沒有具體分析)

    再次進入註冊表編輯器,發現啓動項中已加入了鍵名爲”microsoft”,鍵值爲”c:/windows/svchost.exe”的運行鍵。同時發現果然所有的.exe文件的關聯方式都被改爲了“C:/WINDOWS/svchost.exe "%1" %*”

    運行註冊表監視程序Regmon,發現病毒會隔一段時間強行改動以下幾個重要鍵值:自動運行、.EXE關聯、是否顯示隱藏文件、是否顯示文件擴展名,以及添加“HKLM/SOFTWARE/mysoft”項。

    駐留程序無法結束,註冊表不能改動,文件又無法刪除,這可該怎麼辦?好辦,請出WINHEX->著名磁盤編輯軟件,主要的解決思路是利用WINHEX對磁盤進行編輯,從而對病毒體進行破壞,導致病毒體無法正常工作。首先打開REGEDIT.EXE,導出.exe的關聯項,並修改爲正常(自己後期編輯也可以),以防破壞病毒體後所有EXE文件打不開。下邊是必改鍵值的REG文件的內容:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT/exefile/shell/open/command]

@="/"%1/" %*"

    帶毒狀態下打開WINHEX,單擊”TOOLS”下的”open disk”菜單,選擇”logical drives”下的”Fixed drive (c)” 打開目錄瀏覽器(access菜單旁邊,如下圖)

手工殺掉雙線程、感染所有EXE文件病毒 - shujuhuifu808 - 數據恢復知識彙總分析

 

    在winhex的目錄瀏覽器中進入WINDOWS目錄,找到” svchost.exe” ,在其目錄條目上雙擊定位到SVCHOST.EXE文件在磁盤上的開始位置。接着在開始位置單擊鼠標右鍵,選擇”beginning of block” ,再向後翻3-8個左右的扇區,找個位置單擊鼠標右鍵,選擇” end of block”。緊跟着在BLOCK區的任意一處位置單擊鼠標右鍵,選擇”fill block”,填充全0值。這時候”svchost.exe”已經被破壞。

    接着重啓計算機,發現彈出很多錯誤對話框,這是正常的,因爲.exe的關聯已經損壞,所以正常開機執行的啓動程序都不能正常工作了。無所謂,操作系統還可以正常工作。隨後直接雙擊我們備份好的關聯.EXE的REG文件,即可運行所有.EXE文件。

    運行REGEDIT,刪除自動運行裏病毒的啓動項。

    刪除”C:/WINDOWS/SVCHOST.EXE”

    在系統中打開隱藏文件,查找大小爲759,296個字節的.EXE文件,確定其同樣爲病毒體時,刪除。

    至此病毒應該已經手動殺掉了,我在後來的幾次虛擬機的試驗中也確實發現已經乾淨了,但我真實的感染案例中卻遠沒這麼簡單。

    正常運行了幾天吧。我要安裝一個軟件,其安裝程序在我的E盤,轉到E盤執行SETUP後,發現怎麼也裝不上,老提示參數錯誤。反覆重試後,猛然發現,在雙擊SETUP的同時,目錄下自動生成了一個半透明的隱藏文件”setup .exe”(之前殺毒後已打開顯示隱藏文件開關,此”SETUP .EXE”文件名中有一空格), 對比真正的文件,發現我E盤絕大部分EXE文件都被病毒修改,我又查了一下其他分區,發現除了C盤(系統分區)以外,別的分區均有被病毒修改的.EXE文件。仔細研究後發現,病毒對.EXE的修改方法是:病毒文件+好的.EXE文件+可能的12個字節,時間等屬性不變,但大小會增加。

    當運行任一感染的.EXE文件後,其中的病毒體會首先執行,而後釋放出正常的.EXE,執行正常的.EXE文件,執行後再將其刪除,所以事實上病毒已再次發作。不得已,重複前面過程,將病毒從內存中清除出去,再着手修正感染的每個.EXE文件。要想修改每個被感染的.EXE文件,可不是件容易的事,又試了一下國內幾個著名的殺毒軟件,還是殺不掉,沒辦法,一邊將病毒提交給各大殺毒廠商,一邊自己動手處理。(截止此文寫作,瑞星迴復,他們已將筆者提交的特徵碼加入其新病毒庫,經驗證,的確已經可以查到)

    由於沒有很好的現成工具能處理這麼一大片文件,所以再次請出WINHEX(好強大的功能),我用WINHEX提供的腳本功能做了個專殺工具,雖然WINHEX提供的語法不是太嚴謹,但總算是可以實現要求了。

    首先我確保WINHEX沒有被感染(不行可以重新安裝一下),然後在C盤建立一個殺毒用的臨時目錄,如TEMP,然後進入命令提示符狀態,執行:

dir /b /s d:*.exe >c:/temp/d.ls

dir /b /s e:*.exe >c:/temp/e.ls

……

    然後,在TEMP目錄下用記事本編寫兩個擴展名爲.WHX的文件

//main.whx的內容:

Closeall

//接受列表文件,如C:/TEMP/D.LS,也可採用相對路徑

GetUserInput lspath "請輸入殺毒的列表文件路徑:"

//打開列表文件

Open lspath

Assign pathcharnum 0

SetVarSize pathcharnum 2

{

//從列表文件中讀內容,如果遇到回車(0x0d0a)就把前面的字符加入變量中

//同時清除此段內容,由於WINHEX語法所限,先將選中的.EXE文件的字符數寫在路

//徑的後面(更改0x0d0a),以此限定變量的字符數

Read tempA 2

Move -1

IfEqual tempA 0x0D0A

Move -1

Write pathcharnum

Assign pathcharnum 0

SetVarSize pathcharnum 2

//WINHEX目前無法實現相同語法結構的嵌套,所以用調用另一腳本的方法實現

ExecuteScript "kill.whs"

Else

Inc pathcharnum

EndIf

}[unlimited]

//kill.whx的內容:

move -2

Read pathcharnumt 2

goto 0

Read path pathcharnumt

Block 0 (pathcharnumt+1)

Remove

goto 0

open path

Assign estimate 0

Assign TempB 0

Assign FileSize GetSize

//若打開文件大小小於病毒體,直接跳過,處理下一個文件

IfGreater (0xB95ff-FileSize) 0

JumpTo ContinueHere

EndIf

//特徵判斷

block 0x100 0x10f

Find 0x504500004C010800195E422A00000000 BlockOnly

IfFound

Inc estimate

EndIf

//特徵判斷

block 0x5e0 0x5ef

Find 0x60664000203940005C3940001154496E BlockOnly

IfFound

Inc estimate

EndIf

//特徵判斷

block 0x1900 0x190f

Find 0x010514164A00833D14164A000C0F8D4C BlockOnly

IfFound

Inc estimate

EndIf

//特徵判斷

block 0x9000 0x900f

Find 0xC0045BC383E8048B0083E804C38D4000 BlockOnly

IfFound

Inc estimate

EndIf

//特徵判斷

block 0x10000 0x1000f

Find 0x55F88D45D4E8A2E3FFFF668B45D46625 BlockOnly

IfFound

Inc estimate

EndIf

//特徵判斷

block 0x200b0 0x200bf

Find 0x8BC6E86930FEFF5E5BC38BC083C00850 BlockOnly

IfFound

Inc estimate

EndIf

//特徵判斷

block 0x30000 0x3000f

Find 0x8B08FF91CC000000EB228B45FC8B4010 BlockOnly

IfFound

Inc estimate

EndIf

//特徵判斷

block 0x40000 0x4000f

Find 0x8BD38B83D4010000FF93D00100005F5E BlockOnly

IfFound

Inc estimate

EndIf

//特徵判斷

block 0x50000 0x5000f

Find 0x6C7911706F44656661756C7453697A65 BlockOnly

IfFound

Inc estimate

EndIf

//特徵判斷

block 0x60000 0x6000f

Find 0x8B10FF12837D08007407C74324010000 BlockOnly

IfFound

Inc estimate

EndIf

//特徵判斷,判斷結尾是否是病毒填充的12個字節

block (FileSize-12) (FileSize-1)

Find 0xE903000000960B0044444444 BlockOnly

IfFound

Assign TempB 1

EndIf

//處理最後12個字節,如果符合病毒特徵,移除!

IfGreater estimate*TempB 10

block (FileSize-12) (FileSize-1)

Remove

EndIf

//處理病毒附加的病毒頭,如果符合病毒特徵,移除!

IfEqual estimate 10

block 0x0 0xB95FF

Remove

EndIf

//保存更改

save

Label ContinueHere

//關閉文件

Close

    編輯完這兩個文件後,雙擊MAIN.WHX,執行WINHEX的腳本,很快腳本執行完畢,再進入磁盤查看.EXE文件時,發現病毒已被完全清除,直到現在,未發現異常情況。

回想殺滅此病毒的過程,的確是花費了很大心思,寫下來,希望整個流程對讀者對付病毒或其他方面有幫助。

本文DOC原文、病毒樣本、WINHEX腳本打包下載請瀏覽:http://blog.chinaunix.net/u3/93145/showart_1879075.html

發佈了57 篇原創文章 · 獲贊 0 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章