幾周前,Trustwave發現Necurs botnet正在傳播一種新型的垃圾郵件,其中包含Trickbot和Nitol的惡意payload。Trickbot是一種銀行木馬,去年年底首次出現在歐洲,英國,澳大利亞等國家。該木馬將惡意代碼注入Web瀏覽器進程,并在受害者訪問目標銀行網站時偷取敏感數據。 Nitol家族則以其分布式拒絕服務(DDOS)和后門功能臭名昭著。

圖1. 2017年7月19日至20日,Necurs每小時傳播的惡意垃圾郵件數量
感染載體
7月19日,trustwave發現了一個偽裝成Apple Store UK收據的惡意郵件,其附件是一個包含DOCM對象的PDF。

圖2. 通過惡意PDF附件冒充Apple Store UK的郵件

圖3. 包含的DOCM對象
PDF文件會釋放.DOCM文件(一種包含宏的文檔)至%temp%文件夾中,而且當用戶打開文檔后,其會提示用戶啟用宏。仔細分析宏代碼可知,該腳本會從硬編碼的域名自動下載一個加密的可執行二進制文件:
hxxp://cabbonentertainments.com\83b7bf3
hxxp://dabar.name\83b7bf3
hxxp://nasusystems.com\83b7bf3
隨后,該二進制文件被宏代碼解密并執行。

圖4. VBA宏解密程序
另一個被發現的惡意郵件則偽裝成“采購訂單”,其附件是被壓縮過兩次的二進制可執行文件。

圖5. 帶有ZIP附件的虛假采購訂單

圖6. 被兩次壓縮的二進制可執行文件
這兩種垃圾郵件中都包含同樣的payload:

Payloads – Nitol and Trickbot Packages

圖7. 攻擊流程圖
主要的可執行文件表現為一個加載器,會分別執行其資源節中的Nitol 和 Trickbot木馬。而且加載器中還含有anti-VM機制,用于檢查VirtualBox和VMware,以防止在沙箱設備中被執行分析。
Payload 1: Trickbot
Trickbot會在暫停模式(suspended mode)下創建一個自身的新進程,然后使用VirtualAllocEx和WriteProcessMemory API將其代碼分配并寫入新進程。

圖8. Trickbot在執行時產生了一個新的進程
所有內容都被加載到新進程的地址空間后,惡意軟件就可以使用ResumeThread恢復掛起的進程。
其會在%AppData%\winapp文件夾下釋放出自身的副本,其中也包括其他的配置文件和插件:

圖9. 釋放文件的樹視圖

其還創建了計劃任務以增強持久性,每當用戶登錄或者是每過3分鐘都會觸發惡意軟件的執行。

圖10. 持續性計劃任務
該惡意軟件通過使用一個查找算法來編碼其字符串,想以此躲過靜態分析,以下代碼可對其進行解碼:
def trickbot_decode(text):
ts = "aZbwIiWO39SuApBFcPC/RGYomVxUNL01nr56le47Hv8DJsjQgEkKy+fT2dXtzhMq"
alphabet = [n for n in ts]
bit_str = ""
text_str = ""
for char in text:
if char in alphabet:
bin_char = bin(alphabet.index(char)).lstrip("0b")
bin_char = bin_char.zfill(6)
bit_str += bin_char
brackets = [bit_str[x:x+8] for x in range(0,len(bit_str),8)]
for bracket in brackets:
text_str += chr(int(bracket,2))
return text_str.encode("UTF-8")

圖11. 惡意軟件中被混淆后的字符串
該惡意軟件還會釋放出一個名為"config.conf"的加密配置文件,其中包含了C2服務器的信息和其他模塊的設置。

圖12. 解密后的C2信息
TrickBot Modules
TrickBot會產生多個Svchost.exe進程,其中注入了多個模塊:
瀏覽器表單抓取模塊
Outlook憑證抓住模塊
系統信息抓取模塊
InjectDLL32模塊則會hook瀏覽器進程,并監控受害者的瀏覽器活動。

圖13. 投毒svchost.exe hooking chrome.exe進程
Trickbot監控包括Chrome,IExplore,Firefox和Microsoft Edge在內的瀏覽器。它還hook了作為MS Edge父進程的Runtimebroker.exe進程。

圖14. 目標瀏覽器進程
存儲在%AppData%\winapp\injectDll32_configs\dinj和%AppData%\winapp\injectDll32_configs\sinj中的加密配置文件,包含了一個目標網上銀行URL的列表。

圖15. 存儲在dinj文件中的目標網上銀行

圖16. 存儲在sinj文件中的目標網上銀行

圖17. 被竊取數據的IP地址
另一個模塊被注入到一個單獨的SVCHOST.EXE實例中,是用來負責抓取Outlook憑據。
下面顯示的是惡意軟件嘗試查詢的Outlook注冊表項:

圖18. 查詢的注冊表項
從這些注冊表項中,其會嘗試收集Outlook帳戶和憑據信息,如電子郵件,用戶,服務器,端口和密碼

圖19. 竊取Outlook的profile 和 credential
將竊取的Outlook信息傳輸的IP地址被加密存儲在mailsearcher32_configs文件中

圖20. 解密后的外泄IP地址
最后,另一個名為“systeminfo”的模塊負責收集受害者的系統信息,包括用戶名,CPU類型,RAM,操作系統架構,安裝的程序和服務。

圖21. 系統信息抓取的字符串
Payload 2: Nitol DDOS bot
Nitol二進制文件存儲在加載器的資源節部分。其使用UPX進行壓縮,并在執行時創建一個名為“qazwsxedc”的互斥體,以避免運行多個自身實例。

圖22. Nitol的主體函數
一旦Nitol解密了C2服務器,其就會連接到服務器并等待進一步的指令。該后門主要有兩個功能,一個是執行DDOS另一個是“下載并執行”任意文件。


圖23. Nitol 后門的DDOS功能

圖24. Nitol 后門的下載并執行”任意文件功能
Nitol會對目標系統進行DOS攻擊的類型如下:
SYN Flood
TCP Flood
UDP Flood
HTTP Flood
ICMP Flood
總結
Necurs botnet一直在主動使用資源傳播Trickbot和Nitol惡意軟件。該僵尸網絡使用了兩個模板。第一個垃圾郵件模板是附加主要可執行文件的經典電子郵件,而第二個模板使用了在PDF文件中嵌入DOCM的新生技術。無論用戶收到哪個模板,都會導致執行相同的惡意軟件加載程序。該加載器會在您的系統中執行Trickbot和Nito木馬。Bot loader同時提供兩個或多個惡意軟件的現象似乎越來越普遍。通過避免為每個不同的惡意軟件傳播創建單獨的模板,這基本上節省了botmaster的時間。 而且一些安全產品可能需要時間來反應并阻止兩個不同的惡意軟件,而不是原來的一個,這就允許botmasters“趁熱打鐵”“趁火打劫”了。
|