1. 程式人生 > >病毒分析教程第六話--高階病毒分析(中)

病毒分析教程第六話--高階病毒分析(中)

高階病毒分析(中)


教程參考自《惡意程式碼分析實戰》
程式來自:http://www.nostarch.com/malware.htm


Lab 11-2

本節實驗使用樣本Lab11-02.dll和Lab11-02.ini。

這個惡意DLL匯出了什麼?

檢視匯出函式視窗,發現除了DllEntryPoint函式外還有要給installer函式。
1

使用rundll32.exe安裝這個惡意程式碼後,發生了什麼?

直接檢視install匯出函式的程式碼,功能很清晰,先是將登錄檔鍵AppInit_DLL的值篡改為spoolvxx32.dll,然後將自身複製到%SystemRoot%\System32\spoolvxx32.dll。
2

為了使這個惡意程式碼正確安裝,Lab11-02.ini必須放置在何處?

檢視DllEntryPoint,在程式碼的入口處,會嘗試去讀取系統路徑下的Lab11-02.ini檔案,若讀取失敗則直接退出,所以,為了惡意程式碼能正確安裝,Lab11-02.ini必須放置在%SystemRoot%\System32路徑下。
3

這個安裝的惡意程式碼如何駐留?

惡意程式碼將自身安裝到AppInit_DLLs的登錄檔鍵值中,這樣惡意DLL就能載入到所有裝載User32.dll的程序中。

這個惡意程式碼採用的使用者態Rootkit技術是什麼?

採用的就是Inline Hook,程式碼如下,首先修改send函式所處的記憶體屬性為RWX,備份send函式的前5位元組,然後將前5位元組修改為jmp [hook func],最後還原記憶體屬性。
4

如下,是send函式被修改前的前5位元組。
在這裡插入圖片描述

這是修改後的,已經變成了jmp 0x1000113D,這個地址就是掛鉤函式。
在這裡插入圖片描述

掛鉤程式碼做了什麼?

程式碼很簡單,若資料包中有“RCPT TO:”欄位(郵件格式),就新增多一個收件人郵箱[email protected],目的就是竊取受害人的郵件。
在這裡插入圖片描述

哪個或者哪些程序執行這個惡意攻擊,為什麼?

惡意程式碼在執行上述惡意操作前,會先檢查自己是否被加載於如下3個郵件程序中:THEBAT.EXE、OUTLOOK.EXE、MSIMN.EXE,若不是,則不進行惡意操作。
在這裡插入圖片描述

.ini檔案的意義是什麼?

惡意程式碼一開始讀取出.ini檔案的資料是一堆亂碼,很明顯加過密了。
在這裡插入圖片描述

經過0x100010B3函式的解密,我們可以看到剛剛那個字串變成了[email protected],這個應該是黑客的郵箱。到這裡,我們就可以得出結論.ini檔案的作用是儲存被加密後的黑客郵箱。
在這裡插入圖片描述

你怎麼用Wireshark動態抓獲這個惡意程式碼的行為?

篩選Follow TCP Stream