概述
C 版样本关键行为分析
RobinBot 的 C 语言版本样本借鉴了 Mirai 和 Gafgyt 家族的恶意代码,并自己命名了多种 DDoS 攻击方式。目前 RobinBot 的样本还在频繁地更新迭代,本文以下面样本为例进行分析:
文件名 | 文件类型 | 文件大小 | 文件MD5 |
x86 | ELF 64-bit LSB executable, x86-64 | 75128552 bytes | 500009D8F68330A8F82B59884A9AFE47 |
对抗分析
进程随机重命名:
关闭 Watchdog,防止设备重启:
借鉴自 Mirai 的 table 机制
RobinBot 的代码中还借鉴了 Mirai 的 Table 机制,试图隐藏自身携带的关键信息:
解码用到的 Key:
经过我们分析,这个 Table 在代码中还没启用,不排除将来作者更新样本,把这个机制真正用起来。
Kill 指定端口的进程
RobinBot 还会杀掉 Telnet 23 端口、SSH 22 端口和 HTTP 80 端口对应的进程:
传播方式
RobinBot 支持沿袭自 Mirai 的弱口令暴破方式传播,同时还集成了类似 Omni 家族的 12 个漏洞 Exp,大大提升传播能力。
RobinBot 的 Telnet 弱口令暴破机制,复用了 Mirai 的口令表加密机制:
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":
指令解析
对于目前支持的 6 种 DDoS 攻击指令,RobinBot 作者有自己的命名方式:
C 版样本演进
DDoS 方法也仅有 TCP 和 UDP 两种:
在 2022年6 月份,作者更新了第二版的样本,与初始版本相比加入了 Mirai 的 Table 机制以及其特有的弱口令暴破函数。但是不包含漏洞利用的部分,并且上线包略微不同:
作者在 2022年7 月份更新了第三版,加入了漏洞利用,此时仅集成两个漏洞的 Exp,分别是针对 Dasan GPON 设备的 CVE-2018-10562,和针对 ZyXEL 设备的 CVE-2017-18368:
并且,第三版的上线包也有所变化:
Java 版 DDoS 木马
在我们对攻击者的资产进行梳理过程中,通过一系列关联分析,我们发现 RobinBot 的作者所属某一资产下发的一个独特的 PE 样本。该样本会调用 curl 命令下载并执行一个 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 版样本演进
指令监控
在对 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
即刻助力威胁研判