連續導致美國和德國斷網事件的Mirai惡意軟件,不僅感染并控制了越來越多的攝像頭等聯網設備,組成潛在威脅更大的僵尸網絡,其自身還不斷出現新的變種,近日360網絡安全研究院全球首次確認了早先Mirai 7547端口傳播樣本中的DGA機制。
概要
兩個星期前,360網絡安全研究院發現2個新的感染載體(也即TCP端口7547和5555變種)被用來傳播Mirai惡意軟件。
研究院的Ye Genshen快速設置了一些蜜罐,并且很快取得收獲:11月28日一天就捕獲了11個樣本。 迄今為止,我們的蜜罐已從6個托管服務器捕獲了53個獨立樣本。
在分析其中一個新樣本時,研究院的同事Qu Wenji發現一些類似DGA的代碼,并猜測變種中包含有DGA功能,這個猜測很快就從我們的沙箱數據中得到驗證。詳細的逆向工作顯示,在通過TCP端口7547和5555分發的Mirai樣本中確實存在DGA特征。本文中將介紹這些最新的發現,將我們找到的DGA的屬性總結如下:
使用3個頂級域名:online/tech/support;L2域名固定長度12字符,每個字符從“a”到“z”中隨機選擇;域名僅由月、日和硬編碼的種子字符串確定;每天只生成一個域名,因此最多存在365個 DGA域名;DGA域名僅在硬編碼的C2域名無法解析時使用。通過逆向獲取的DGA知識,我們在程序中重新實現了DGA,并用它來預測所有365個可能的域名。當進一步確認這些域名的注冊信息時,我們發現其中部分域名已經被MIRAI作者注冊,列表如下:
圖0 已經被注冊的DGA域名
值得一提的是,作者 [email protected]在更早時間已經注冊了其他Mirai C2域名:
zugzwang.me email [email protected]樣本和分析
本文中用作說明的樣本如下:
* MD5: bf136fb3b350a96fd1003b8557bb758a
* SHA256: 971156ec3dca4fa5c53723863966ed165d546a184f3c8ded008b029fd59d6a5a
* File type: ELF 32-bit LSB executable, MIPS, MIPS-I version 1 (SYSV), statically linked, stripped
樣品做了去符號處理但未加殼。根據以分析Mirai樣本經驗,我們很快就確定了其主要模塊。比較代碼發現,resolvcncaddr函數的CFG(流程控制圖)與先前發現的樣本非常不同。 新版本的CFG如圖1所示。
圖1 新版本的resolv_cnc_addr 流程控制圖
在函數開始處,由于在樣本中硬編碼了多達3個C2域名,所以生成隨機數以從第一和第二個C2域名中隨機選擇一個,如圖2所示。
圖2 resolv_cnc_addr 函數第一部分
如果被選中的C2域名無法解析,則bot并不解析未選擇的域名或第三域名,而是將根據當前日期判斷是決定是否去執行DGA代碼分支還是去解析第三個C2域名,如圖3。
圖3 決定是否進入DGA 代碼分支
從上述代碼片段我們可以看出,如果當前日期在11月1日和12月3日之間,將去解析第3個C2域名。否則將執行DGA代碼分支。這可以理解為作者不希望DGA域名在12月4日之前被啟用,這也恰好被前文提及首個被注冊的Mirai DGA域名對應于12月4日所映證。 DGA主函數名為dgagendomain。域名完全是基于種子數字和當前日期生成的。種子通過調用strtol()從硬編碼的十六進制格式字符串進行轉換。看起來字符串“????????”是一個錯誤的配置,這會導致strtol()總是返回0。
代碼中通過調用time()和localtime()的C庫函數得到本地日期。但只有月和日被使用,如圖4所示。
圖4 dga_gen_domain 函數片段
L2域名是通過反復執行圖5所示的代碼塊來生成的。其長度由$ t5和$ t2確定,它們的值在圖4中設置,從中我們可以確定L2域名長度是12。
圖5 生成L2域名的循環代碼片段
TLD(Top Level Domain)由寄存器$S0中的殘余值確定,如圖6所示。 我們可以看到在這里使用了3個TLD。
圖6 確定TLD 的代碼分支
IOC
目前,DGA相關的特性存在于如下樣本,所有這些DGA樣本中的種子字符串和算法都完全相同:
005241cf76d31673a752a76bb0ba711805891dbabc42a36f33c30535f09315550eb51d584712485300ad8e812677394115b35cfff4129b26c0f07bd4be462ba02da64ae2f8b1e8b75063760abfc94ecf41ba9f3d13ce33526da52407e2f0589d4a8145ae760385c1c000113a9ea00a3a551380681560849cee3de36329ba4ed372bbfc1ff6621a278e16cfc91906109f73f4312cc6f5067e505bc54c3b02b5697d490eedc5b46aff00ffaaec7004e2a8863dcf82883c885b0686dce747dcf502bf136fb3b350a96fd1003b8557bb758abf650d39eb603d92973052ca80a4fddad89b1be09de36e326611a2abbedb8751dbd92b08cbff8455ff76c453ff704dc6eba670256b816e2d11f107f629d08494樣本中的硬編碼C2域名如下:
meonlinetechsupport我們將密切關注DGA變種的后續變化,敬請關注后續更新。