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

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

高階病毒分析(下)


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


Lab 11-3

本節實驗使用樣本Lab11-03.exe和Lab11-03.dll。

使用基礎的靜態分析過程,你可以發現什麼有趣的線索?

在Lab11-03.exe包含跟“cisvc”相關的字串,說明該程式應該會進行跟cisvc服務相關的操作,同時,該程式還跟Lab11-03.dll有關聯。
1

Lab11-03.dll則包含有鍵盤監聽相關的函式:GetForegroundWindow和GetAsyncKeyState。
2

當執行這個惡意程式碼時,發生了什麼?

使用IDA反彙編Lab11-03.exe,在程式碼開始處,發現它會將“Lab11-03.dll”複製到“C:\WINDOWS\System32\inet_epar32.dll”,然會,拼湊字串“C:\WINDOWS\System32\cisvc.exe”,呼叫函式0x401070對cisvc.exe進行操作,最後呼叫system函式執行命令“net start cisvc”。
3

憑直覺,主要的惡意操作在函式0x401070中。進入到該函式,它會呼叫CreateFile、CreateFileMappingA和MapViewOfFile將cisvc.exe對映到記憶體中,然後對cisvc.exe的資料進行篡改。
4

對映完cisvc.exe後,rep指令將0x4E*4個位元組的資料複製到對映檔案中,複製的內容為在0x409030處的程式碼,如下所示,依稀可以看到可疑字串“C:\WINDOWS\System32\inet_epar32.dll”和“zzz69806582”。
5

在資料視窗右鍵,選擇反彙編,可以看到寫入的shellcode程式碼,不過僅僅是看看而已,這樣也看不出該shellcode做了什麼操作。
6

不過,可以猜到它大概的功能,應該就是載入Lab11-03.dll並呼叫它的zzz69806582函式。
7

Lab11-03.exe如何安裝Lab11-03.dll使其長期駐留?

如上,將一段載入shllcode寫入cisvc.exe中,使該程式每次啟動時都呼叫Lab11-03.dll。

這個惡意程式碼感染Windows系統的哪個檔案?

C:\WINDOWS\System32\cisvc.exe

Lab11-03.dll做了什麼?

檢視Lab11-03的匯出函式zzz69806582,首先會建立一個執行緒。
8

該執行緒首先建立一個檔案kernel64x.dll,然後呼叫函式0x10001380向該檔案中寫入資料。
9

該函式的功能也跟我們預想的一樣,做些鍵盤記錄的操作。
10

這個惡意程式碼將收集的資料存放在何處?

儲存在C:\WINDOWS\System32\kernel64x.dll。
11