一、前言
通過郵件投遞病毒文件是網(wǎng)絡(luò)攻擊常用的一種方式,因此防御郵件攻擊是每個安全團隊都需要重點考慮的內(nèi)容。中興通訊每天都會收到數(shù)萬封外部郵件,為了及時檢測每封郵件是否含有惡意文件,中興ZInsight團隊部署了自研的高級郵件防御系統(tǒng),針對每個郵件附件,通過動態(tài)行為分析的方式檢測是否存在威脅。本文介紹近期捕獲的一起攻擊事件,分析其攻擊過程。
二、攻擊郵件的捕獲與分析
近日,中興高級郵件防御系統(tǒng)捕獲了一批使用高危word附件進行定向攻擊的釣魚郵件,攻擊對象均為同一項目團隊成員,引起了安全人員的重視。下面是郵件附件的分析報告:

從分析報告中可以清晰的看到,此word文件有創(chuàng)建進程的異常行為,另外也發(fā)現(xiàn)了異常的網(wǎng)絡(luò)行為,可以猜測這是一個下載器。經(jīng)安全人員進一步分析發(fā)現(xiàn),在word附件中使用了宏病毒,宏病毒由vb寫成,采用了加密混淆等方式逃避殺軟的檢測,見下圖:

vb腳本經(jīng)過混淆,但依然可以看出有聯(lián)網(wǎng)的痕跡,如下段代碼可見http://和.com的痕跡:

啟用宏后打開此文檔會自動運行腳本,ProcessExplorer上可見其調(diào)用cmd.exe執(zhí)行腳本命令:

該腳本首先通過dns查詢?nèi)舾蓚惡意網(wǎng)址,連接成功后通過http下載exe文件并運行。通過跟蹤,發(fā)現(xiàn)其連上solvolab.com/sdB這個惡意網(wǎng)址,下載PE文件并運行。data chunk中可見可執(zhí)行文件的PE頭中的標識和字段:


下載的可執(zhí)行文件會自動運行并添加到服務(wù),名稱為buildbuild:

三、下載的惡意樣本分析
對下載的buildbuild.exe樣本進行分析,主要功能如下:
1.搜集smartcard信息
該樣本通過注冊表查詢smartCards信息:

逆向分析可見其存在查找4G卡的服務(wù)提供商,獲取虛擬按鍵等較明顯的搜集敏感信息的行為:


2.自寫殼
該樣本在PEiD中顯示“查無此殼”,也沒有任何語言信息,推測為不常見的殼,很有可能是自寫的。

此類殼沒法用工具自動脫殼,只能手脫。調(diào)試過程中發(fā)現(xiàn)這個殼的寫法還是比較常規(guī)的思路:
1) 調(diào)用VirtualAlloc為各個區(qū)段分配內(nèi)存,將加密的區(qū)段數(shù)據(jù)解密到各自對應(yīng)的內(nèi)存空間,并調(diào)用VirtualProtect根據(jù)區(qū)段的屬性修改內(nèi)存操作權(quán)限:

2) 調(diào)用LoadLibrary加載dll,調(diào)用GetProcAddress分別獲取dll中目標函數(shù)地址。
3) 跳到解密后的代碼執(zhí)行,如下圖001A1000存放的為解碼后的.text區(qū)段代碼:

4) 中間穿插了GetTickCount等反調(diào)試手法:

若發(fā)現(xiàn)處在調(diào)試狀態(tài),會通過遍歷進程的方式找到并結(jié)束自身進程。進程遍歷也是常規(guī)手法:
調(diào)用CreateToolhelp32Snapshot建立進程快照,通過Process32FirstW和Process32NextW進行遍歷來找到當前進程,然后通過CloseHandle直接結(jié)束進程。

判斷是否為當前進程的方法是在上圖Call ebx函數(shù)中實現(xiàn),通過調(diào)用GetCurrentProcessId獲取當前進程ID,和保存的遍歷到的進程ID對比,相同就說明當前遍歷的進程信息為目標進程。

3.創(chuàng)建子進程
為干擾逆向分析,該樣本在運行過程中會調(diào)用CreateProcessW創(chuàng)建子進程。

在內(nèi)存中修改CreationFlags入?yún)?×00000004(CREATE_SUSPENDED),使子進程創(chuàng)建后自動掛起,然后直接在od中找到其進程號attach即可調(diào)試子進程。

子進程創(chuàng)建成功后,病毒主要功能都在子進程中進行,而父進程將退出。

以下皆為子進程中運行的功能。
4.信息收集和系統(tǒng)監(jiān)控
樣本沒有自己實現(xiàn)該功能,而是調(diào)用了第三方動態(tài)庫winimhc3.dll、winbrohc.dll、winhafnt.dll等。這些dll是 OCular Agent產(chǎn)品的重要組件。OCular Agent為一電腦監(jiān)控軟件,由SurveilStar Inc開發(fā),數(shù)字簽名為T.E.C Solutions (G.Z.)Limited,可以記錄電子郵件,聊天和即時信息,網(wǎng)站訪問,搜索歷史,計劃活動,文件操作等等。其動態(tài)庫常被殺軟識別為惡意軟件。


winimhc3逆向顯示很多監(jiān)控的痕跡,如IMHook、枚舉窗口等:


Winbrohc中實現(xiàn)了很多監(jiān)控功能諸如文件遍歷、監(jiān)控應(yīng)用程序數(shù)據(jù)、檢索殺軟、搜索數(shù)據(jù)庫、修改history文件和注冊表等。
調(diào)用FindFirstFileW和FindNextFileW進行文件遍歷:

監(jiān)控包括explorer、cmd、winword在內(nèi)的多個程序:


獲取磁盤信息:

獲取各種瀏覽器和云盤中的用戶信息及歷史數(shù)據(jù):


檢測殺軟:

監(jiān)控explorer、cmd等常用程序:

獲取ProcessToken,提權(quán):

查找賬戶信息:
監(jiān)控郵件:
5.自刪除
6.自我復(fù)制
自我復(fù)制到在c:\windows\system32目錄下,目的是為了后續(xù)創(chuàng)建服務(wù)用:
4F4句柄在OD中查知為c:\windows\system32\buildbuld.exe:
這個過程并沒有直接調(diào)用kernel32的WriteFile實現(xiàn),而是通過外殼函數(shù)SHFileOperationW實現(xiàn),該函數(shù)最終會去調(diào)用WriteFile函數(shù):
SHFileOperation是一種外殼函數(shù),用它可以實現(xiàn)各種文件操作,如文件的拷貝、刪除、移動等,該函數(shù)使用起來非常簡單,它只有一個指向SHFILEOPSTRUCT結(jié)構(gòu)的參數(shù)。使用SHFileOperation( )函數(shù)時只要填寫該專用結(jié)構(gòu)–SHFILEOPSTRUCT,告訴Windows執(zhí)行什么樣的操作,以及其它重要信息就行了。
7.創(chuàng)建服務(wù)
使用之前自我復(fù)制的c:\windows\system32\buildbuild.exe文件創(chuàng)建服務(wù):
四、樣本分析總結(jié)
該樣本采用了很多方法干擾逆向,例如自寫殼、子進程、反調(diào)試、以及調(diào)用第三方監(jiān)控軟件的dll等等。并且調(diào)試過程中發(fā)現(xiàn)該樣本總是用VirtualAlloc分配內(nèi)存,然后將要執(zhí)行的部分代碼拷入內(nèi)存中執(zhí)行,同時喜歡用類似call eax的函數(shù)調(diào)用手法,使得無法使用IDA等工具查看其代碼邏輯,只能依靠手調(diào)。
功能比較常規(guī),但是并沒有自己實現(xiàn),而是調(diào)用了第三方的監(jiān)控軟件中的dll,一方面功能大而全,另一方面其龐大的代碼量也可以起到干擾逆向的效果。
五、防御建議
郵件攻擊是非常普遍的一類網(wǎng)絡(luò)攻擊,當企業(yè)收到的攻擊郵件集中于某一團隊時,需要格外注意,很可能是有目的的定向攻擊,需要及時預(yù)警,提醒團隊加強防范,不要輕易打開郵件的附件和鏈接,對可疑文件進行殺毒,必要時通過沙箱進行動態(tài)行為檢測。
buildbuild.exe樣本MD5:
95240732d90027df7cb2c6c74804253b
|