歡迎來到 黑吧安全網 聚焦網絡安全前沿資訊,精華內容,交流技術心得!

殺毒大賽-另辟蹊徑,給病毒致命一擊

來源:轉載 作者:佚名 時間:2008-11-01 TAG: 我要投稿
殺毒大賽  另辟蹊徑,給病毒致命一擊                                                                                                                                                                                                                                                                                                                       
                                                        前幾天幫朋友殺毒,殺完毒也順便把這個病毒抓了回來。今天就對它進行一個逆向分析,看看它到底是如何運行的。

環境說明:一安裝有Windows XP的虛擬機。
對象:一U盤病毒
工具:
PEID(查殼工具)
Ollydbg(動態反匯編工具)

一、誘敵深入,初識病毒

     1.這是一個U盤病毒,首先在虛擬機上運行它讓自己中毒。中毒后通過任務欄上“安全刪除硬件”圖標刪除U盤,提示“現在無法停止‘通用卷’設備,請稍候再停止該設備”。這是必然的,因為病毒在運行,U盤設備被病毒調用。
                                                                                                                                                                                                                                                        圖1.jpg (9.63 KB)
                                                                        2008-9-19 20:32

       

    2.下面看看病毒到底在硬盤上創建了哪些文件,因為病毒文件大部分都是隱藏屬性,所有先要讓系統顯示隱藏文件。方法是:打開“我的電腦”,選擇“工具”菜單中的“文件夾選項”,在“查看”選項卡的“高級設置”下依次勾選“顯示系統文件夾的內容”、“顯示所有文件和文件夾”,取消對“隱藏已知文件類型的擴展名”的勾選,這樣設置后一般的隱藏文件都現形了。
                                                                                                                                                                                                                                                        圖2.jpg (46.41 KB)
                                                                        2008-9-19 20:32

       

    3.打開“我的電腦”,進入根目錄看看。經驗告訴我們這是不要直接雙擊打開,用鼠標右鍵點擊盤符看到第一項變成了“Auto”(一般正常情況下是“打開”),選擇“資源管理器”進入磁盤根目錄。
                                                                                                                                                                                                                                                        圖3.jpg (68.82 KB)
                                                                        2008-9-19 20:32

       

   非常明顯在根目錄下多了一個文件,一個目錄,文件是autorun.inf,目錄為RECYCLER,它的圖標就是回收站圖標,并且都是隱藏屬性。進入RECYCLER目錄可以看到兩個文件,一個為info.exe,另一個為desktop.ini,也是隱藏屬性。
                                                                                                                                                                                                                                                        圖4.jpg (201.57 KB)
                                                                        2008-9-19 20:32

       
雙擊打開autorun.inf文件,可以看到如下內容:
[autorun]
auto=
open=
shell\auto\Command=RECYCLER\INFO.exe
shell\open\Command=RECYCLER\INFO.exe
shell\open\Default=1
shell\explore\Command=RECYCLER\INFO.exe
    評析:這個U盤病毒很狡猾,首先它把自己隱藏在一個類似“回收站”的圖標下,另外,通過autorun.inf達到雙擊盤符自動運行。
雙擊打開desktop.ini文件,可以看到如下內容:
[.ShellClassInfo]
CLSID={645ff040-5081-101b-9f08-00aa002f954e}
   評析:把自己的圖標改變成“回收站”的圖標,更加隱蔽。

二、左右開弓,解剖病毒

    1.查殼

    通過以上的檢查,很明顯info.exe應該就是病毒文件了。要想知道病毒的工作機理及其找到清理病毒的方法,進行反匯編是個不錯的注意。先使用PEID檢查病毒是否加殼,結果發現病毒并沒有加殼。
                                                                                                                                                                                                                                                        圖5.jpg (23.08 KB)
                                                                        2008-9-19 20:32

       

    2.反匯編

    既然沒有加殼,那就直接用Ollydbg加載info.exe病毒文件進行反匯編,當然也可以使用其它靜態反匯編工具。完全加載后可以可以通過查看程序調用的api函數和查看字符串來了解病毒的功能特性,查看字符串的方法是最基礎的了,也是比較簡單和常用的。方法如圖所示,利用插件來查看字符串。在彈出的窗口中可以看到程序中出現的字符信息,一般來講會發現一些文件名和注冊表的信息。
                                                                                                                                                                                                                                                        圖6.jpg (207.69 KB)
                                                                        2008-9-19 20:32

       

   根據經驗可知software\microsoft\windows\currentversion\winlogon應該是注冊表中的地址,它下面的“Userinit”和“svchost.exe1”可能就是病毒偽裝的文件名或是要寫到上面注冊表地址里的項和鍵值。至于下面的“:\recycler\info.exe”、“\recycler\u.exe”應該是釋放到U盤里的文件。那剩下的“_sv_cmd_\_u_.exe”和“_sv_cmd_\u.exe”是釋放到什么地方呢?先不管這個,繼續往下看,看看還有什么字符串,可以告訴我們什么信息。
                                                                                                                                                                                                                                                        圖7.jpg (162.93 KB)
                                                                        2008-9-19 20:32

       

   “recycler\desktop.ini”文件大家都不陌生吧,它就是將文件夾偽裝成回收站圖標的方法。下面的“[.ShellClassInfo]\n\CLSID={645ff040-5081-101b-9f08-00aa002f954e}u.exe”就應該是desktop.ini里面的內容了。再下面的“[autorun]\n\n\auto=\n\n\open=\n\nshell\auto\Command=RECYCLER\INFO.exe\n\n
shell\open\Command=RECYCLER\INFO.exe\n\nshell\open\Default=1n\n\shell\explore\Command=RECYCLER\INFO.exe”就是U盤里的autorun.inf文件的內容。autorun.inf的作用就是打開U盤時自動運行recycler里的info.exe程序。而字符串里出現的svchost.exe,這是系統文件的名字,顯示是病毒用來迷惑人的。
                                                                                                                                                                                                                                                        圖8.jpg (209.13 KB)
                                                                        2008-9-19 20:32

       
在命令行下敲入如下命令查看系統中svchost.exe:
cd \
dir /a /s svchost.exe
注:上面的命令是搜索系統盤下所有文件名為svchost.exe文件。
                                                                                                                                                                                                                                                        圖9.jpg (43.2 KB)
                                                                        2008-9-19 20:32

       

   正常的svchost.exe文件的大小應該是14K,那么C:\Windows\system\文件夾下的svchost.exe就應該是病毒了,來到C:\windows\system目錄下還意外發現了_sv_cmd_文件夾,里面的_u_.exe和u.exe也都是病毒文件,前面字符串中出現的_sv_cmd_原來是備份病毒文件的。

   剩下的應該就是注冊表里的鍵值了,根據反匯編字符串里的信息來到注冊表地址“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon”下,發現Userinit項的值由“userinit.exe,”改成了“userinit.exe,C:\windows\system\svchost.exe”,那后面的C:\windows\system\svchost.exe不就是病毒地址嗎,原來它是這樣在開機后自己運行的。
                                                                                                                                                                                                                                                        圖10.jpg (183.49 KB)
                                                                        2008-9-19 20:32

       

三、心中有數,清除病毒

     1.結束進程

    在“任務管理器”中有6個svchost.exe進程,這其中必有一個是病毒的進程,哪一個是呢?如果結束了系統的svchost.exe進程的話,系統會關機。

方法一:在命令行下敲入如下命令:
tasklist /svc
                                                                                                                                                                                                                                                        圖11.jpg (305.36 KB)
                                                                        2008-9-19 20:32

       
從顯示結果中很明顯可以看出PID為2620的SVCHOST是與系統無關的,敲入如下命令結束病毒進程:
ntsd -c q -p 2620

方法二:用冰刃查看進程對應的文件,如果對應的是C:\windows\system\svchost.exe,那么直接結束進程。

     2.刪除文件

    通過分析我們知道了病毒文件的位置,并且病毒的進程已經結束就可以手工刪除了,不過要特別提醒,在進入分區更目錄的時候千萬不能雙擊進入,應該右鍵選擇“資源管理器”進入刪除,不然又會把病毒激活。
我建議大家用批處理來刪除文件,把一下代碼保存為del.bat文件,雙擊即可:
@echo off
cd \
attrib -a -s -h autorun.inf
attrib -a -s -h recycler
attrib -a -s -h recycler\info.exe
attrib -a -s -h recycler\desktop.ini
attrib -a -s -h windows\system\svchost.exe
attrib -a -s -h windows\system\_sv_cmd_
del autorun.inf
rd /S /Q recycler
del windows\system\svchost.exe
rd /S /Q windows\system\_sv_cmd_
d:
attrib -a -s -h autorun.inf
attrib -a -s -h recycler
attrib -a -s -h recycler\info.exe
attrib -a -s -h recycler\desktop.ini
del autorun.inf
rd /S /Q recycler
...................省略其它分區,和d:類似。
exit

    3.修復注冊表

    用手工或者REG腳本修復,把如下的代碼保存為u.reg文件,然后雙擊導入即可:
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]
"Userinit"="userinit.exe,"
提示:第二行是空行,一定要有。

     總結:本文演示的逆向分析及其手工殺毒方法,希望給大家提供一個思路,以后大家在遇到同樣問題的時候多一個選擇。同時,希望大家在清理病毒的時候,能夠利用逆向分析的方法,搞清病毒的運行機制,這樣不但對于我們清除病毒非常重要,我覺得更為重要的是可以提高我們的分析能力,殺毒能力,從而使得安全水平更上一個臺階。畢竟我們僅僅會殺一種病毒是遠遠不夠的,要學會舉一反三,知其然,還要知其所以然。
【聲明】:黑吧安全網(http://www.pcpbjo.tw)登載此文出于傳遞更多信息之目的,并不代表本站贊同其觀點和對其真實性負責,僅適于網絡安全技術愛好者學習研究使用,學習中請遵循國家相關法律法規。如有問題請聯系我們,聯系郵箱[email protected],我們會在最短的時間內進行處理。
  • 最新更新
    • 相關閱讀
      • 本類熱門
        • 最近下載
        云南快乐十分前三电视