Mbedbot:TLS加密的后門化僵尸網絡

發布時間 2023-09-27

啟明星辰與廣州大學網安學院發現了一個后門化的物聯網DDoS僵尸網絡,并將其命名為Mbedbot。本文將從其執行流程、通信協議、控制命令及后門等技術分析角度入手,對該僵尸網絡進行全面介紹,以作為各行業及相關企業制定網絡安全策略的參考。


2023年7月初,啟明星辰在參與國家重點研發計劃項目“大規模異構物聯網威脅可控捕獲與分析技術(2022YFB3104100)”的研究過程中,發現了一個后門化的物聯網DDoS僵尸網絡家族。


代碼結構上,該僵尸網絡復用了Mirai的DDoS攻擊相關代碼,并在其基礎上增加https ddos以及tcp syn攻擊能力。與其它基于Mirai源碼的主流僵尸網絡不同的是,除DDoS功能之外,該僵尸網絡還實現了遠程文件管理、進程操作等諸多后門功能。


并且,其使用tls協議與C2進行加密通信。因其所用tls類庫為mbedtls,所以我們把此僵尸網絡家族命名為Mbedbot。



技術分析



目前為止,我們暫時只捕獲到arm4架構的樣本,未發現其它架構的樣本。Mbedbot整體代碼很簡潔,沒有太多花哨的地方,完成常見操作流程后,即進入和C2的交互通信。


1、執行流程


運行后,打印字符串"listening tun0",并通過監聽31212端口,實現單一實例運行。之后通過異或解密出字符串資源,與Mirai的字符串高度重合:



隨后,初始化DDoS攻擊向量,共支持11個DDoS攻擊方式。初始化代碼以及各個DDoS代碼完全復用自Mirai:




但Mbedbot比Mirai多一個針對https協議的DDoS攻擊類型attack_app_https,同樣使用mbedtls庫,這也是首次發現支持https協議的DDoS攻擊。




完成上述操作后,進入和C2交互通信的循環函數。在交互函數里,首先通過異或解密出C2地址,并使用tls協議和C2建立通信。tls類庫為mbedtls,其前身是PolarSLL,現已被ARM公司收購,由ARM技術團隊維護更新。



使用tls加密之前收集的系統信息,發送給C2,隨后等待執行C2下發的各類命令。



2、通信協議



Mbedbot的通信協議相對簡單。在和C2建立tls通信之后,先向C2發送4字節的上線數據長度,2字節的數據類型"\xFF\xFF",再發送受害系統信息(上線數據)。




可見,Mbedbot收集的系統信息很全面。其中:


huuid是硬編碼的字符串,指示C2服務器(host)身份id;


buuid則隨機生成,表示受害主機(bot)身份id;


version用于指示版本信息。


發送上線數據之后,執行select函數,嘗試接收C2下發的各類命令。其中,Mbedbot每15分鐘會向C2發送一次硬編碼的“心跳“包,用以更新主機存活狀態。發送心跳包如下:



同時C2返回的17字節心跳包數據,如下:





其中前16字節"\xD9\x01....\x3B\x3F"是隨機生成的SessionID,第16字節是命令碼,\xFF表示是心跳包數據。



3、控制命令&后門


Mbedbot實現了很多后門功能,包括文件類(創建讀取上傳下載執行),執行shell進程,DDoS攻擊,結束指定進程,重置C2服務器,退出自身進程等。





Mbedbot的命令格式比較簡單,前16字節是C2隨機生成SessionID,同一通信會話是唯一的。第16字節是命令碼,其后是命令參數。




以如下命令為例:



FC12…57D2,16字節SessionID;


0x0F,1字節命令碼,此命令用來設置并重新連接新的C2服務器。


fakembedbotc2.com,命令參數,將C2服務器重設為此。


隨后,受害主機嘗試解析并連接fakembedbotc2.com:





以下是各命令碼及其對應后門功能:




結 語



Mbedbot完整復用了Mirai的DDoS代碼,并在其基礎上新增兩個“自研“的tcp syn攻擊以及https ddos攻擊能力。并且,針對自身的后門功能進行了豐富,以嘗試加強對bot主機的控制能力。


此外,相較于其它僵尸網絡,Mbedbot直接使用tls加密和C2的通信,盡管通信協議本身并不復雜,但在tls加持下,能夠有效的規避常規特征指紋檢測。



IOC



66.42.52.39:443

92.38.135.146:77

dftiscasdwe.w8510.com:443