1. 程式人生 > >惡意程式碼分析實戰 Lab 3-2 習題筆記

惡意程式碼分析實戰 Lab 3-2 習題筆記

Lab 3-2

問題

1.你怎樣才能讓這個惡意程式碼自行安裝?

解答: 這個看書上解答是

利用rundll32.exe工具,使用命令rundll32.exe Lab03-02.exe, installA,來執行惡意程式碼匯出installA函式,便可將惡意程式碼安裝為一個服務

這是怎麼發現的呢

先使用靜態分析技術

PEview找到這麼五個匯出函式

匯出

然後再用Dependency Walker檢視依賴,會發現一些有趣的函式

一些

說明程式碼會建立程序,執行緒

一些

說明程式碼會操作服務,還有操作登錄檔

一些

然後這個惡意程式碼還使用網路連線等等

然後我們看看字串列表

字串


字串中我們可以發現譬如域名

practicalmalwareanalysis.com

還有函式

ServiceMain
UninstallService
installA
uninstallA

還有一個網頁

serve.html

還有譬如下載檔案的

getfile

執行檔案的

cmd.exe /c

還有一些登錄檔操作的語句

其實一般的DLL是沒有這個.rdata

因為

比如我們隨便找個系統dll開啟

advapi32.dll

regapi.dll

我們也可以嘗試用install這個匯出函式來安裝惡意程式碼,試試

這裡有個小技巧,就是windows下用cmd切換目錄感覺很飯的樣子,其實cmd.exe

本身就是放在c:\windows\system32\cmd.exe,可以把它拷貝出來,放桌面,然後你要切換到哪個目錄,就直接把這個exe又複製到那個目錄,然後點選開啟就切換到了,當然,這是歪門邪道

做好一切的必要準備,登錄檔快照儲存,process explorer開啟,輸入

rundll32.exe Lab03-02.dll,install

然後檢視登錄檔對比,發現

新建

這個DLL建立了一個叫IPRIP的服務

然後我們發現這麼幾個新建的登錄檔值很有意思

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\IPRIP\Parameters] 
"ServiceDll"
=hex(2):43,00,3a,00,5c,00,44,00,6f,00,63,00,75,00,6d,00,65,00,6e,\ 00,74,00,73,00,20,00,61,00,6e,00,64,00,20,00,53,00,65,00,74,00,74,00,69,00,\ 6e,00,67,00,73,00,5c,00,36,00,34,00,5c,00,4c,68,62,97,5c,00,42,00,69,00,6e,\ 00,61,00,72,00,79,00,43,00,6f,00,6c,00,6c,00,65,00,63,00,74,00,69,00,6f,00,\ 6e,00,5c,00,43,00,68,00,61,00,70,00,74,00,65,00,72,00,5f,00,33,00,4c,00,5c,\ 00,4c,00,61,00,62,00,30,00,33,...

翻譯

install這個函式基本就是幹這些事的,沒見任何可疑的,然後我們還原在試試installA

然後和剛才那個一樣,所以我們可以得出這個結論installinstallA是一樣

然後我們開始分析

這裡有個可以注意的地方ImagePath

分析

值分析過來就是下面這個

%SystemRoot%\System32\svchost.exe -k netsvcs

然後可以分析得出就是這個DLL會將自己安裝成為一個服務IPRIP,然後由於這個惡意程式碼是個DLL檔案,它就依賴一個可執行檔案來執行它,然後它依賴的就是svhost.exe這個可執行檔案來啟動

2.在安裝之後,你如何讓這個惡意程式碼執行起來?

解答: 用windows啟動服務的方式來啟動

net start IPRIP

3.你怎麼能找到這個惡意程式碼是在哪個程序下執行的?

解答: 用Process Explorer

Find選單-> Find Handle or DLL...

Find

然後

尋找我們那個DLL檔案

發現

然後點search就行了

結果

結果我們會發現這個pid為1100(在不同電腦上這個值會不同)

然後我們去查詢這個pid為1100,名字叫svchost.exe的程序

找到

然後就找到了

4.你可以在procmon工具中設定什麼樣的過濾器,才能收集這個惡意程式碼的資訊?

解答: 書中的答案是

用發現的PID就行過濾

我們試試

我這個虛擬機器同時開procexp和procmon會崩潰-_-)

然後我是看svchost.exe啟動那個exe來找這個svchost.exe

然後我發現一個有趣的東西

ReadFile

去看看這是啥

INDEX.BTR是這樣的

看不到

唯一一個能看懂明文的是這個

記事本

然後裡面記錄了本機的一些基本資訊

CIM是啥

CIM

這個惡意程式碼在主機上的感染跡象是什麼?

解答: 感染跡象就是會有建立一個服務叫IPRIP

這個惡意程式碼是否存在一些有用的網路特徵碼?

解答: 我們先去看看DNSChefINetSim伺服器上的 記錄

先檢查一下dns的解析記錄,用DNSChef虛擬機器看

DNS

和我們前面發現的惡意域名是對應的

然後我們在看看INetSIm虛擬機器上的記錄,記錄在log/service.log裡面

記錄

我們可以注意到這個解析

放大

這個DLL從我們的fake伺服器下載一個serve.html,而我們偉大的INetSim返回了sample.html作為serve.html

其實這裡就不需要用netcat來監聽本地80埠了

所以這個網路特徵就是那個漫長的惡意域名的解析,和對惡意域名請求一個serve.html

本文完