概述
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 月份我们捕获的最新版样本中,作者去除了 ZyXEL RCE 的利用,添加了 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:
[AppleScript] 纯文本查看 复制代码 AA4BCF5BC044BAB50D347961BB2A630C
F883F7F9FB16E9E547ABF7FA10D18256
9138DF8AF500832C9814D052DCD70585
500009D8F68330A8F82B59884A9AFE47
8D815662DC16F11AEE1776AAA0157800
27F7000F552B88FCF71E423EC59524B5
2675386F03B1835AF146493CB328C3EC
941CEE0D62BF9E4BFCE7DA0DAFD75CED
BAA15F059F950C400FE32539E56128C4
D65BD6175517E0BCB6A6FC077CDCB655
C2:
[AppleScript] 纯文本查看 复制代码 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 |