概述
2022 年 11 月初,奇安信威脅情報中心威脅監控系統監測到一起未知家族惡意樣本傳播事件。經過我們分析,捕獲的惡意樣本借鑑了 Mirai 和 Gafgyt 家族的惡意程式碼,支持多種自己命名的 DDoS 攻擊方式,可以通過 Telnet 服務弱口令暴破傳播,同時還集成了與 Omni 家族相似的多個漏洞 Exp ,目前正在網上快速傳播。
根據攻擊者創建的特殊檔案夾名稱,我們把這個家族命名為RobinBot。
通過對 RobinBot 歷史樣本的關聯分析,我們梳理了它的發展過程,並且發現了其還有一個功能相似的跨平臺jar版本同家族樣本。業界公開曝光的 Java 編寫的跨平臺 DDoS 木馬並不多,這次我們對 RobinBot 一探究竟。
我們對 RobinBot 初步的監控結果顯示,其作者嘗試過下發指令攻擊自己控制的 IP 資產。綜合分析可以看出 RobinBot 作者具有一定的能力和想法,並在積極嘗試中。
C 版樣本關鍵行為分析
RobinBot 的 C 語言版本樣本借鑑了 Mirai 和 Gafgyt 家族的惡意程式碼,並自己命名了多種 DDoS 攻擊方式。目前 RobinBot 的樣本還在頻繁地更新迭代,本文以下面樣本為例進行分析:
檔案名 | 檔案類型 | 檔案大小 | 檔案MD5 |
x86 | ELF 64-bit LSB executable, x86-64 | 75128552 bytes | 500009D8F68330A8F82B59884A9AFE47 |
對抗分析
RobinBot 具有常規的對抗分析措施,借鑑自 Mirai 家族。
GDB 反調試:
進程隨機重新命名:
關閉 Watchdog,防止設備重啟:
借鑑自 Mirai 的 table 機制
RobinBot 的程式碼中還借鑑了 Mirai 的 Table 機制,試圖隱藏自身攜帶的關鍵資訊:
解碼用到的 Key:
經過我們分析,這個 Table 在程式碼中還沒啟用,不排除將來作者更新樣本,把這個機制真正用起來。
Kill 指定埠的進程
RobinBot 還會殺掉 Telnet 23 埠、SSH 22 埠和 HTTP 80 埠對應的進程:
傳播方式
RobinBot 支持沿襲自 Mirai 的弱口令暴破方式傳播,同時還集成了類似 Omni 家族的 12 個漏洞 Exp,大大提升傳播能力。
RobinBot 的 Telnet 弱口令暴破機制,複用了 Mirai 的口令表加密機制:
暴破結果的 Reporter 伺服器地址與 C&C 相同,但埠改成了1337:
RobinBot 集成了 12 個經典的 IoT 設備漏洞 Exp 來增強自身的傳播能力:
漏洞說明如下:
漏洞標籤 | 漏洞 ID | QVD ID | 漏洞說明 | 影響設備 |
GPON8080 | CVE-2018-10561 | QVD-2018-4807 | Dasan GPON 路由器認證繞過漏洞 | Dasan GPON 路由器 |
GPON80 | CVE-2018-10562 | QVD-2018-5435 | Dasan GPON 路由器認命令注入漏洞 | Dasan GPON 路由器 |
REALTEK | CVE-2014-8361 | QVD-2014-0175 | Realtek Miniigd UPnP SOAP 遠端命令執行漏洞 | 多種使用 Realtek SDK 並且啟用 miniigd 守護進程的網路設備 |
NETGEAR | EDB-ID-43055 | QVD-2013-7961 | Netgear DGN1000 1.1.00.48 – ‘Setup.cgi’ 遠端命令執行漏洞 | Netgear DGN1000 路由器 |
HUAWEI | CVE-2017-17215 | QVD-2017-0070 | Huawei HG532 路由器任意程式碼執行漏洞 | Huawei HG532 路由器 |
TR064 | CVE-2016-10372 | QVD-2020-74040 | Eir D1000 無線路由器 WAN 側遠端命令注入漏洞 | Eir D1000 無線路由器 |
HNAP | CVE-2015-2051 | QVD-2015-0260 | D-Link 設備 HNAP SOAPAction-Header 遠端命令執行漏洞 | D-Link 設備 |
CROSSWEB | EDB-ID-39596 | — | 多種 CCTV/DVR 設備的命令執行漏洞 | 超過 70 家供應商的 CCTV, DVR 設備 |
JAWS | CVE-2016-20016 | QVD-2022-27838 | MVPower DVR TV-7104HE 1.8.4 115215B9 Shell 命令執行漏洞 | MVPower DVR 設備 |
DLINK | EDB-ID-28333 | QVD-2013-8037 | D-Link 設備 UPnP SOAP TelnetD 模組遠端命令執行漏洞 | D-Link 設備 |
R7000 | CVE-2016-6277 | QVD-2016-0403 | Netgear R7000/R6400 ‘cgi-bin’ 模組遠端命令執行漏洞 | Netgear R7000/R6400 路由器 |
VARCON | CNVD-2017-29245 | QVD-2022-34316 | Vacron NVR 設備遠端命令執行漏洞 | Vacron NVR 設備 |
C&C 通訊
RobinBot 當前樣本的 C&C 伺服器地址89.203.251.188:7267,上線包為 “12354544\n\n”:
指令解析
RobinBot 的指令機制與 Gafgyt 家族類似,屬於明文形式的指令。指令共有三大類:執行惡意命令、發起 DDoS 攻擊、輔助功能指令(更新、清理)。
當指令字串以 “console” 開頭時,代表執行惡意命令,”at” 開頭代表發起 DDoS 攻擊:
對於目前支持的 6 種 DDoS 攻擊指令,RobinBot 作者有自己的命名方式:
支持的 DDoS 方法包括:固定及隨機 Payload 的 TCP 協議攻擊、固定 Payload 的 UDP 協議攻擊以及專門針對 Minecraft 伺服器的 DDoS 攻擊。上述大部分攻擊方式,疑似專為 MineCraft 平臺定製,即攻擊者運營該 DDoS 殭屍網路,可能專門為了攻擊遊戲伺服器。
值得一提的是,RobinBot 支持的 T-TCP 和 U-UDP DDoS 攻擊方式,單次攻擊的 Payload 都是 8000 Bytes 的重複資料,形式如下:
C 版樣本演進
經過我們對 RobinBot 歷史活動的回溯分析,大概理清了 RobinBot C 語言版樣本的發展歷程。
我們最早找到了 RobinBot 在2022年5月份的樣本,把它定為最初版本,與本次發現的最新版本大致框架一致,此時的樣本中還未添加有 Mirai 的程式碼,所含的 Telnet 暴破功能也與 Mirai 不同。支持的功能包括遠端命令執行、DDoS 攻擊、Telnet 弱口令暴破。
上線包如下:
DDoS 方法也僅有 TCP 和 UDP 兩種:
在2022年6月份,作者更新了第二版的樣本,與初始版本相比加入了 Mirai 的 Table 機制以及其特有的弱口令暴破函數。但是不包含漏洞利用的部分,並且上線包略微不同:
作者在2022年7 月份更新了第三版,加入了漏洞利用,此時僅集成兩個漏洞的 Exp,分別是針對Dasan GPON設備的CVE-2018-10562,和針對ZyXEL設備的CVE-2017-18368:
並且,第三版的上線包也有所變化:
在2022年11 月份我們捕獲的最新版樣本中,作者去除了ZyXELRCE 的利用,添加了 Omni 家族曾經整合利用過的 12 個漏洞 Exp 進行傳播,同時刪除了前兩個版本中包含的上報掃描結果 IP 更新的功能。
綜合來看,RobinBot C 語言版樣本的更新流程如下圖所示:
Java 版 DDoS 木馬
在我們對攻擊者的資產進行梳理過程中,通過一系列關聯分析,我們發現 RobinBot 的作者所屬某一資產下發的一個獨特的 PE 樣本。該樣本會調用 curl 命令下載並執行一個 Jar 檔案:
RobinBot 的名字,正是我們參考上圖 Jar 檔案落盤路徑中的 “Robin” 而命名。經過對上述 Jar 檔案的深入分析,確定該樣本是上述 C 語言版本的 Java 版本,功能近似,但具備了跨平臺運行的能力。
我們以下述樣本為例進行分析(下文稱RobinBot-Jar):
檔案名 | 檔案大小 | 檔案MD5 |
asdasasjdhaisuolhdasiuhdai.jar | 4435413 bytes | 27F7000F552B88FCF71E423EC59524B5 |
區分平臺運行
該樣本可以在 Linux 和 Windows 平臺上運行,針對 Windows 平臺會有額外的操作:
額外的 Inject 函數功能是把自身移動到 Startup 檔案夾以 Cmd 命令的方式進行自啟動,檔案名為“0ff1995” + 隨機字串,該操作同時也用來區分樣本是否是首次運行:
下發遠端命令時樣本也會區分平臺進行命令執行:
設置系統 HTTP User-Agent
RobinBot-Jar 還會設置系統的 HTTP User-Agent 為 “Chrome“:
C&C 通訊
創建與 C&C 通訊的執行緒:
上線包如下,其中包含樣本版本、受害機器系統 OS 及使用者名:
指令解析
RobinBot-Jar 的指令設計,與 C 語言版本的木馬幾乎一致,也是類似 Gafgyt 家族的明文協議,並且 “console” 開頭的指令代表執行命令,”at” 開頭代表執行DDoS指令:
不同的地方在於作者自定義的 DDoS 方法名:
JAVA版樣本支持的DDos方法除了與C版相同的以外,還包括:HTTP Flood、OVH Flood、針對 Roblox 視訊遊戲平臺的 DDoS 攻擊、基於 Bootstrap 的 DDoS 攻擊。
代理設置
RobinBot-Jar 發起 DDoS 攻擊時,會選用 Socks 代理。對於代理的設置,可以是過指令下發指定的代理伺服器:
也可以選擇公開的第三方代理:
其他指令
此外還包含其他命令如下:
指令 | 功能 |
kill | 退出運行 |
update | 樣本版本更新 |
clearyoubro | 清理病毒檔案 |
如果收到退出指令,RobinBot-Jar 會調用 System.exit() 退出運行:
收到更新的指令後,RobinBot-Jar 會通過硬編碼的 URL 進行更新:
收到清理的指令後,針對 Windows 平臺會進行專門的清理工作:
JAVA 版樣本演進
經過回溯分析我們發現,JAVA 版本要比 C 版更早進行傳播,最早於去年年底開始活動,期間多次偽裝成 Minecraft 相關工具及外掛,包括 KauriVPN、PlaceholderAPI、Vulcan 等等,中途還曾將 C2 地址修改為localhost進行測試。
指令監控
在對 RobinBot 分析期間,我們對它進行了初步監控,並觀察到它下發的若干攻擊指令,發現該殭屍網路處於快速擴張 + 測試階段:
分析資料發現作者對其自身IP進行過DDos攻擊,說明此殭屍網路還在測試階段並未正式投入使用。
其餘攻擊目標中有多個遊戲相關聯的資產,其中一個攻擊目標*.jonesdev.xyz,該資產為”Sonar Anti Bot”所有,用於 Minecraft 伺服器的實驗性反機器人外掛:
IoCs
MD5:
AA4BCF5BC044BAB50D347961BB2A630C
F883F7F9FB16E9E547ABF7FA10D18256
9138DF8AF500832C9814D052DCD70585
500009D8F68330A8F82B59884A9AFE47
8D815662DC16F11AEE1776AAA0157800
27F7000F552B88FCF71E423EC59524B5
2675386F03B1835AF146493CB328C3EC
941CEE0D62BF9E4BFCE7DA0DAFD75CED
BAA15F059F950C400FE32539E56128C4
D65BD6175517E0BCB6A6FC077CDCB655
C2:
89.203.251.188:7267
89.203.251.188:1337
193.23.161.194:3214
89.203.251.217:7267
176.97.210.195:7267
點選閱讀原文至ALPHA 5.0
即刻助力威脅研判