作為一名沉迷于安全技術的小白,近期在對公司一臺Win7客戶主機進行安全應急響應時,捕獲到一個64位dll形式的惡意程序,于是對其展開分析,收獲很多。下面想結合取證分析的過程,從取證經過、動靜態分析、破解加密等角度入手,與大家分享一些綜合性的惡意程序分析方法,相互啟發,相互學習。也許有些方法比較基礎,望各位大佬勿噴~
提供dll樣本以便大家茶余飯后分析著玩玩~
鏈接:https://pan.baidu.com/s/1y7ylCgRU2khpVaYhlIngsw 密碼:xut0
取證經過
某用戶向SRC反映最近自己的郵箱賬號被盜,作為應急中心的一員,我與團隊成員一起對該用戶的電腦進行了初步的取證和排查。
個人對個人主機排查的常用思路是:
可疑進程
網絡流量
啟動項
文件比對
但為了達到攻擊持久化的目的,惡意程序往往會對系統進行駐留,因此對啟動項進行檢測排查是一個非常重要的環節。下面先推薦一款比較好用的常規自啟動檢測工具。
autoruns.exe
是一款出色的啟動項目管理工具,作用就是檢查開機自動加載的所有程序,例如硬件驅動程序,windows核心啟動程序和應用程序。它比windows自帶的msconfig.exe還要強大,通過它我們還可以看到一些在msconfig里面無法查看到的病毒和木馬以及惡意插件程序,還能夠詳細的把啟動項目加載的所有程序列出來。比如logon、explorer還有IE上加載的dll跟其它組件。

但autotuns也不是萬能的,比如dll劫持等部分特殊的啟動方式也無法檢測到。作為取證人員,平時應該多多搜集和積累攻擊者使用的奇淫巧技。
由于個人在對dll劫持方式有較多的了解和實踐,同時結合文件比對,終于發現主機` C:\windows\` 目錄下多了一個叫midimap.dll的動態庫,基本可以斷定為可疑程序,便對其展開分析。

動靜態分析
首先我們對加載該dll的進程做了監控和分析。
dll劫持技術分析:
根據以往經驗,可以利用工具和相關命令迅速確定是哪些進程加載了這個midimap.dll,推薦2種簡便方法。
tasklist /m XXX.dll
以管理員權限運行` tasklist /m` 命令,可以獲得所有進程中加載的動態鏈接庫,也可以具體到某一個dll對應的進程,見下圖。

Process Explorer
非常好用的一款增強型任務管理器軟件,讓使用者能了解看不到的在后臺執行的處理程序,能顯示目前已經載入哪些模塊,分別是正在被哪些程序使用著,還可顯示這些程序所調用的 DLL進程,以及他們所打開的句柄。

綜上,可確定是explorer.exe進程加載了midimap.dll。
同時,我們利用一臺干凈的win7虛擬機對explorer.exe加載midimap.dll的過程進行了分析。使用Process Monitor軟件對explorer.exe進程的行為進行了監控并設置了過濾條件,如下圖。

可發現正常情況下,explorer.exe應加載位于` C:\windows\system32\` 目錄下的midimap.dll,但由于exe加載dll有一定的搜索順序,會首先在同目錄下查找對應的dll文件。因此將惡意的midimap.dll文件放置在` C:\windows\ ` 目錄下即可實現dll劫持。
行為分析
除了對惡意程序進行直接的靜態分析和動態跟蹤調試,我們還常使用其他工具和手段對惡意程序的行為進行監控和分析,尤其在對一些較難逆向的復雜程序進行分析時,結合行為監控將大大提高分析效率。這里也簡單介紹2款工具。
Procmon
Process Monitor是一款能夠實時顯示文件系統、注冊表與進程活動的高級工具,是微軟推薦的一個系統監視工具。增加了進程ID、用戶、進程可靠度、等等監視項,可以記錄到文件中。它的強大功能足以讓其成為你系統中的核心組件以及病毒探測工具。

文件監控軟件
利用文件監控軟件往往能對惡意程序的讀寫的文件的路徑進行快速定位。

在對該惡意動態庫進行分析時,我們使用Procmon工具對explorer.exe(加載惡意dll)進程的行為進行了監控,在敲擊鍵盤和移動鼠標時,會伴有文件讀寫的行為,定位到` C:\Users\Windows\Appdata\Local\Microsoft\Windows\Caches\caches_version.db` 疑似為惡意程序產生的記錄文件。
使用010editor打開caches_version,疑似加密的記錄文件。

靜態分析
用IDA對正常路徑` C:\windows\system32\` 下的midimap.dll與在` C:\windows\` 下的惡意midimap.dll進行對比。可見惡意dll導出函數與正常dll的完全相同。
|