时间:2022-11-22 作者:奇安信威胁情报中心
概述
2022年11月初,奇安信威胁情报中心威胁监控系统监测到一起未知家族恶意样本传播事件。经过我们分析,捕获的恶意样本借鉴了Mirai和Gafgyt家族的恶意代码,支持多种自己命名的DDoS攻击方式,可以通过Telnet服务弱口令暴破传播,同时还集成了与Omni家族相似的多个漏洞Exp,目前正在网上快速传播。
根据攻击者创建的特殊文件夹名称,我们把这个家族命名为RobinBot。
通过对RobinBot历史样本的关联分析,我们梳理了它的发展过程,并且发现了其还有一个功能相似的跨平台jar版本同家族样本。业界公开曝光的Java编写的跨平台DDoS木马并不多,这次我们对RobinBot一探究竟。
我们对RobinBot初步的监控结果显示,其作者尝试过下发指令攻击自己控制的IP资产。综合分析可以看出RobinBot作者具有一定的能力和想法,并在积极尝试中。
C版样本关键行为分析
RobinBot的C语言版本样本借鉴了Mirai和Gafgyt家族的恶意代码,并自己命名了多种DDoS攻击方式。目前RobinBot的样本还在频繁地更新迭代,本文以下面样本为例进行分析:
对抗分析
RobinBot具有常规的对抗分析措施,借鉴自Mirai家族。
GDB反调试:
进程随机重命名:
关闭Watchdog,防止设备重启:
借鉴自Mirai的table机制
RobinBot的代码中还借鉴了Mirai的Table机制,试图隐藏自身携带的关键信息:
解码用到的Key:
经过我们分析,这个Table在代码中还没启用,不排除将来作者更新样本,把这个机制真正用起来。
Kill指定端口的进程
RobinBot还会杀掉Telnet23端口、SSH22端口和HTTP80端口对应的进程:
传播方式
RobinBot支持沿袭自Mirai的弱口令暴破方式传播,同时还集成了类似Omni家族的12个漏洞Exp,大大提升传播能力。
RobinBot的Telnet弱口令暴破机制,复用了Mirai的口令表加密机制:
暴破结果的Reporter服务器地址与C&C相同,但端口改成了1337:
RobinBot集成了12个经典的IoT设备漏洞Exp来增强自身的传播能力:
漏洞说明如下:
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-UDPDDoS攻击方式,单次攻击的Payload都是8000Bytes的重复数据,形式如下:
C版样本演进
经过我们对RobinBot历史活动的回溯分析,大概理清了RobinBotC语言版样本的发展历程。
我们最早找到了RobinBot在2022年5月份的样本,把它定为最初版本,与本次发现的最新版本大致框架一致,此时的样本中还未添加有Mirai的代码,所含的Telnet暴破功能也与Mirai不同。支持的功能包括远程命令执行、DDoS攻击、Telnet弱口令暴破。
上线包如下:
DDoS方法也仅有TCP和UDP两种:
在2022年6月份,作者更新了第二版的样本,与初始版本相比加入了Mirai的Table机制以及其特有的弱口令暴破函数。但是不包含漏洞利用的部分,并且上线包略微不同:
作者在2022年7月份更新了第三版,加入了漏洞利用,此时仅集成两个漏洞的Exp,分别是针对DasanGPON设备的CVE-2018-10562,和针对ZyXEL设备的CVE-2017-18368:
并且,第三版的上线包也有所变化:
在2022年11月份我们捕获的最新版样本中,作者去除了ZyXELRCE的利用,添加了Omni家族曾经整合利用过的12个漏洞Exp进行传播,同时删除了前两个版本中包含的上报扫描结果IP更新的功能。
综合来看,RobinBotC语言版样本的更新流程如下图所示:
Java版DDoS木马
在我们对攻击者的资产进行梳理过程中,通过一系列关联分析,我们发现RobinBot的作者所属某一资产下发的一个独特的PE样本。该样本会调用curl命令下载并执行一个Jar文件:
RobinBot的名字,正是我们参考上图Jar文件落盘路径中的"Robin"而命名。经过对上述Jar文件的深入分析,确定该样本是上述C语言版本的Java版本,功能近似,但具备了跨平台运行的能力。
我们以下述样本为例进行分析(下文称RobinBot-Jar):
区分平台运行
该样本可以在Linux和Windows平台上运行,针对Windows平台会有额外的操作:
额外的Inject函数功能是把自身移动到Startup文件夹以Cmd命令的方式进行自启动,文件名为"0ff1995"+随机字符串,该操作同时也用来区分样本是否是首次运行:
下发远程命令时样本也会区分平台进行命令执行:
设置系统HTTPUser-Agent
RobinBot-Jar还会设置系统的HTTPUser-Agent为"Chrome":
C&C通信
创建与C&C通信的线程:
上线包如下,其中包含样本版本、受害机器系统OS及用户名:
指令解析
RobinBot-Jar的指令设计,与C语言版本的木马几乎一致,也是类似Gafgyt家族的明文协议,并且"console"开头的指令代表执行命令,"at"开头代表执行DDoS指令:
不同的地方在于作者自定义的DDoS方法名:
JAVA版样本支持的DDos方法除了与C版相同的以外,还包括:HTTPFlood、OVHFlood、针对Roblox视频游戏平台的DDoS攻击、基于Bootstrap的DDoS攻击。
代理设置
RobinBot-Jar发起DDoS攻击时,会选用Socks代理。对于代理的设置,可以是过指令下发指定的代理服务器:
也可以选择公开的第三方代理:
其他指令
此外还包含其他命令如下:
如果收到退出指令,RobinBot-Jar会调用System.exit()退出运行:
收到更新的指令后,RobinBot-Jar会通过硬编码的URL进行更新:
收到清理的指令后,针对Windows平台会进行专门的清理工作:
JAVA版样本演进
经过回溯分析我们发现,JAVA版本要比C版更早进行传播,最早于去年年底开始活动,期间多次伪装成Minecraft相关工具及插件,包括KauriVPN、PlaceholderAPI、Vulcan等等,中途还曾将C2地址修改为localhost进行测试。
指令监控
在对RobinBot分析期间,我们对它进行了初步监控,并观察到它下发的若干攻击指令,发现该僵尸网络处于快速扩张+测试阶段:
分析数据发现作者对其自身IP进行过DDos攻击,说明此僵尸网络还在测试阶段并未正式投入使用。
其余攻击目标中有多个游戏相关联的资产,其中一个攻击目标*.jonesdev.xyz,该资产为"SonarAntiBot"所有,用于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
95015服务热线
微信公众号