僵尸永远不死:RapperBot僵尸网络近况分析
概述
RapperBot 是一个活跃的僵尸网络家族,最早由 CNCERT 于 2022 年 7 月公开并命名。FortiGuard Labs 在 2022 年 11 月的报告中将其活动时间追溯至 2021 年。2025 年 2 月,RapperBot 参与了针对 Deepseek 的攻击;自 3 月起其攻击行为显著活跃,日均攻击目标超过百个,观测到的 bot 数量超过 5 万。
该家族不仅持续迭代,还在样本中留下了带有挑衅意味的信息。例如,样本中曾留下未使用的字符串https://www.youtube.com/watch?v=4fm_ZZn5qaw
,该Youtube视频的内容是一首Rap歌曲《I Am Da Bag》。一些样本中还留下字符串要求关注rapper2tallforfood。也曾向逆向工程师询问是否在分析其样本时听了其音乐,并公然挑衅我们的前团队 NETLAB360
。
它甚至承诺将在下次更新中“留下新消息”,但遗憾的是我们未再收到,样本中的留言信息如下:
图中 pastebin URL https://pastebin.com/dfHYSqVz
使用Base64解码后的内容如下:
This is rapperbot, rapperbot is in its testing and development stages. Take nothing here seriously.
Brian Krebs approves of this project; he is our number one supporter.
FUCK DOTA3.TAR.GZ (outlaw) AND FUCK xorddos for using those dumb ass low IQ root kits. (they have no idea what's to come)
I love Olivia Rodrigo, soon I will be rich enough to meet her.
Question, Did you guys listen to my music whilst reverse engineering my binary? (https://www.youtube.com/watch?v=4fm_ZZn5qaw)
I can only imagine the Chinese (NETLAB360) researchers not understanding it at all and trying to decode the meaning behind it.
Anyway, 2tall out!
See you guys in the next update, I'll most likely leave another note.
在近期样本中,我们注意到 RapperBot 似乎开始对受害者进行敲诈,要求缴纳“保护费”以避免 DDoS 攻击。
Donate $5,000 in XMR to (48SFiWgbAaFf75KsRSEEr4iDcxrevFzVmhgfb6Qudss52JK8cCR8bwmUxNBPN2VmqDTucJL3eabiZc5XRYVGkbh6BH58Ytk) to be blacklisted from this and future botnets from us. Contact: horse@riseup.net with TxID and IP Range/ASN.
XLAB 对该家族保持长期追踪,以下将与社区分享我们的一些最新发现。
BOT规模
在我们分析Rapperbot样本时发现它生成的32个C2域名有部分域名尚未被注册。我们于2024年4月3日主动注册了其中若干个尚未被使用的C2域名,通过对访问我们注册域名的僵尸主机(BOT)进行统计和分析,我们能够间接获取该Rapperbot僵尸网络的BOT规模、分布范围等信息。
在最近一个月的观测中,BOT IP数量峰值达到5w+,BOT活跃趋势如下:
BOT分组信息:
BOT感染地区分布:
感染设备
根据XLAB全球鹰测绘系统提供的数据分析,Rapperbot恶意软件目前主要感染的设备类型集中在具有公网访问能力的物联网终端,尤其是网络摄像头、家用及企业级路由器等。这些设备通常存在默认弱口令或固件漏洞,容易成为攻击者的入侵目标。根据统计,其感染的设备中排名靠前的WEB界面标题(Web Title)如下:
WEB Title | application |
---|---|
DVR Components Download | DVR/NVR/Camera |
Network Surveillance | DVR/NVR/Camera |
NETSurveillance WEB | DVR/NVR/Camera |
WEB SERVICE | DVR/NVR/Camera |
ASUS Login | Router |
AXIS | DVR/NVR/Camera |
RouterOS router configuration page | Router |
DDoS攻击目标
RapperBot的攻击目标遍布各个行业领域,包括公共管理、社会保障和社会组织、互联网平台、制造业、金融服务业等。从地域分布上看,中国地区的目标数量最多。也曾在热点时间攻击过其他重要平台。比如:春节期间攻击知名人工智能平台DeepSeek,3月中旬攻击社交媒体平台Twitter
样本传播
根据我们的数据观察,RapperBot 主要通过 Telnet 弱口令以及利用已知漏洞进行传播。目前其主要利用的漏洞包括但不限于以下几种:
VULNERABILITY | AFFECTED |
---|---|
TELNET_Weak_Password | |
KGUARD DVR TCP_MSGHEAD_CMD | KGUARD DVR |
CNVD-2021-79445 | Ruijie NBR700 |
CVE-2021-46229 | D-Link Di-7200G |
CVE-2023-4473 | Zyxel NAS326 |
Reolink BaiChuan RCE | Neolink |
CVE-2020-9054 | ZyXEL NAS |
Shenzhen TVT | Shenzhen TVT DVR |
CCTV-DV | Multiple Vendors CCTV-DVR |
CVE-2020-24581 | D-link DSL-2888A |
LILIN DVR | LILIN DVR |
样本分析
经过对该家族样本追踪,我们发现开发者每隔几个月会对样本进行更新并进入活跃状态,在长达1年多的时间里我们捕获了该家族的7个变种:
time | sha1 | ps | decrypt method | login length |
---|---|---|---|---|
2023-07-21 | 8a9a098dabcc09c8a770777f12c71017bb26940b | listening tun0 | mirai字符串解密,key固定(0xDEADBEEF) | 36 |
2023-10-15 | d4bca8193b808dcdbdb79367ac688f6f424da36f | listening tun0 | rapperbot自定义字符串解密 | 171 |
2023-12-27 | a742f069f604aa302dbfe6ccf0bc481726e76fb6 | listening tun0 | rapperbot自定义字符串解密 | 114 |
2024-03-10 | 09dc5f47374410bb05cfd72bc1fa6523a35ec6dc | listening tun0 | mirai字符串解码,多个解密key | 60 |
2024-06-14 | bc21342317fca22076406873013959ed111cf8dc | Firmware update in progress | mirai字符串解码,多个解密key | 90 |
2024-10-10 | cc687e707919c4176ab03bdc76ab01bbaa7c0e22 | Firmware update in progress | mirai字符串解码,多个解密key | 120 |
2025-03-30 | 4a0aa2b7f357164dbd49c0c6ab71a3c73e148aaa | Firmware update in progress | rapperbot自定义字符串解密 | 120 |
该家族不同变种的样本大同小异,修改内容集中在消息的数据结构、DNS-TXT记录的解析方法、字符串解码上;功能上以DDoS为主,从2024年10月开始添加了代理功能。
C2获取
与大多数botnet不同,rapperbot通过DNS-TXT记录中解析C2域名,目前我们发现了4种TXT记录格式:
time period | TXT record format |
---|---|
2023.07 - 2024.04 | IP,IP,IP |
2024.06 - 2024.10 | <IP><IP><IP> |
2024.10 - 2025.03 | IP|IP|IP| |
2025.03 - now | EncryptedString |
在端口方面,早期的几个版本使用固定端口,如1111
、1024
、9999
等;在最新样本中则从随机的35个端口中选择一个:
443,4443,993,995,25565,1935,3478,27015,7777,3724,5222,7000,5223,4444,3074,27014,27050,3544,6666,2222,22022,2022,19153,3389,37777,6036,34567,5000,10554,554,18004,9000,35000,10001,9001
加解密算法
字符串解密算法
RapperBot使用过三种加密算法,早期使用和Mirai相同的算法,后续开发出独特自定义解密算法和Mirai解密算法的加强版,并在多个版本中轮换使用:
-
改进Mirai源代码的字符串解密方法,为每个字符串添加不同的4字节解密密钥,并且继续延用Mirai的解密函数
-
自定义的解密方法,key的长度不固定且进行了二次加密,再对data进行多字节异或
C2/DNS-TXT解密算法
从2025年3月开始,rapperbot使用自定义的加密算法加密TXT记录和C2域名:
通过解密字符串表,我们可以得到3个的字符串:
str | desc |
---|---|
ipWPeY43MhfFBt8ZCSN2KTdD6nEkmGjwx7vJR5rogzbcqHsXUQuyVA9L | 解密算法用到的table |
WF6i6VEcfjnyqtGKxism65YwRE9VYzzzbtLgLD4tWEsnZLgbJfuE94qtvTqGgVG3ScFtsfcxqTNtYKRWQTqNBqp6VLMv2p | 被加密的二级域名列表 |
WMKFVCnSHDrC89fvKgCShwmRjEx8 | 被加密的三级域名列表 |
顶级域名字符串没有写入字符串表,而是通过栈写入全局变量:
经过独特的算法解密后可以得到C2域名的各个部分,解密算法及解密结果如下:
def decodeTXT(data:str):
key = "ipWPeY43MhfFBt8ZCSN2KTdD6nEkmGjwx7vJR5rogzbcqHsXUQuyVA9L"
a = key.find(data[0])
b = key.find(data[1])
seed = 56*a+b
magic = 1000000000 + 0x62B846D
S = bytearray(range(56))
T = bytearray(56)
tseed = seed
for i in range(55, 0, -1):
tseed = (magic * tseed + 0x3039)&0xffffffff
index = tseed%(i+1)
S[i], S[index] = S[index], S[i]
for i in range(56):
T[S[i]] = i
res = bytearray()
for i in data[2:]:
index = (T[key.find(i)] - (len(data)-2) - seed)%56
res.append(index)
length = ceil(len(res) * log2(56) / 8)
res3 = bytearray(length)
for t1 in res:
carry = t1
for i in reversed(range(len(res3))):
temp = res3[i] * 56 + carry
res3[i] = temp & 0xFF
carry = temp >> 8
while len(res3) > 0 and res3[0] == 0:
del res3[0]
return res3 if len(res3) > 0 else bytearray(b'\x00')
三级域名:KDXA|EICp|kHbW|YFrV
二级域名:ByxWGIMPbwiSkniw|gwYhHCOrybwjWuzh|GaihWstPZUoMtfnU|zkUAFIMFDwVETXJQ
一级域名:info|live
使用"|"分割域名的各个部分,最终会生成32个C2域名,随机选择一个进行DNS-TXT解析,TXT记录字符串使用相同的解密算法解密:
TXT记录:i7do6u4FtLeeMjmnwWczxKJmtoRRvgCCqiinWW9EUtVpLx38db5xrCfr8mHmsxmutZ4C8fXL2jhGVzfdUQmvvnzZW7pCJmUpi
解密后:5.230.39.10|5.230.68.153|82.24.200.59|82.24.200.68|62.146.235.220|5.230.227.190|5.230.227.191|5.230.227.237|5.230.227.238
网络协议
Rapperbot的网络协议相对简单,不涉及密钥交换和复杂加密,payload只进行了单字节异或(key不固定)。
在多个变种只对上线信息和消息编码进行修改。
上线信息
RapperBot在不同版本的上线包格式不同,有时会增加字段,有时会减少字段,但都包含hostname
、source
、stunIP
、localIP
,并用非0随机数填充未使用空间,在最新版本中添加了网络信息字段,总大小为120,以下是相关结构描述:
消息编码
在网络通信方面,不同版本的消息格式存在微小差异,但通常都由3部分组成:Header、Payload、RandData。以最新样本为例,Header添加了校验码字段,RandData则由字符串表q1x4fyntb3i0umw2gzcr9a5jkv7o8pl6eohds
随机生成:
消息结构体:
struct rapperbot_packet{
int32 total_size;
int32 payload_size;
int16 checkcode;
int8 xorkey;
int8 packet_type;
int8 payload[payload_size];
int8 randdata[total_size-payload_size];
};
已知的消息类型及作用:
PacketType | Desc |
---|---|
1 | Login |
2 | Confirm |
3 | Pong |
4 | HeartBeat |
5 | Start Attack |
6 | Stop Attack |
9 | Proxy Enable |
10 | Proxy Disable |
11 | Proxy Create |
12 | Proxy Start |
13 | Proxy Close |
Contact Us
Readers are always welcomed to reach us on twitter.
IOC
XMR wallet address:
48SFiWgbAaFf75KsRSEEr4iDcxrevFzVmhgfb6Qudss52JK8cCR8bwmUxNBPN2VmqDTucJL3eabiZc5XRYVGkbh6BH58Ytk
C2 Domain:
iranistrash.libre
churchofhollywood.libre
iguessimhere.libre
KDXA.ByxWGIMPbwiSkniw.info
KDXA.ByxWGIMPbwiSkniw.live
KDXA.gwYhHCOrybwjWuzh.info
KDXA.gwYhHCOrybwjWuzh.live
KDXA.GaihWstPZUoMtfnU.info
KDXA.GaihWstPZUoMtfnU.live
KDXA.zkUAFIMFDwVETXJQ.info
KDXA.zkUAFIMFDwVETXJQ.live
EICp.ByxWGIMPbwiSkniw.info
EICp.ByxWGIMPbwiSkniw.live
EICp.gwYhHCOrybwjWuzh.info
EICp.gwYhHCOrybwjWuzh.live
EICp.GaihWstPZUoMtfnU.info
EICp.GaihWstPZUoMtfnU.live
EICp.zkUAFIMFDwVETXJQ.info
EICp.zkUAFIMFDwVETXJQ.live
kHbW.ByxWGIMPbwiSkniw.info
kHbW.ByxWGIMPbwiSkniw.live
kHbW.gwYhHCOrybwjWuzh.info
kHbW.gwYhHCOrybwjWuzh.live
kHbW.GaihWstPZUoMtfnU.info
kHbW.GaihWstPZUoMtfnU.live
kHbW.zkUAFIMFDwVETXJQ.info
kHbW.zkUAFIMFDwVETXJQ.live
YFrV.ByxWGIMPbwiSkniw.info
YFrV.ByxWGIMPbwiSkniw.live
YFrV.gwYhHCOrybwjWuzh.info
YFrV.gwYhHCOrybwjWuzh.live
YFrV.GaihWstPZUoMtfnU.info
YFrV.GaihWstPZUoMtfnU.live
YFrV.zkUAFIMFDwVETXJQ.info
YFrV.zkUAFIMFDwVETXJQ.live
Download Domain:
pool.rentcheapcars.sbs
o0s.cc
4v.wtf
zyb.ac
Hardcode backup C2:
86.104.72.130 Canada|Ontario|Toronto AS208913|Mouk, LLC
194.156.98.15 China|Hongkong|Hongkong AS44477|STARK INDUSTRIES SOLUTIONS LTD
94.131.118.154 France|Ile-de-France|Paris AS44477|STARK INDUSTRIES SOLUTIONS LTD
5.231.3.32 Germany|Hessen|Frankfurt am Main AS12586|GHOSTnet GmbH
5.231.4.35 Germany|Hessen|Frankfurt am Main AS12586|GHOSTnet GmbH
185.248.144.209 Italy|Lazio|Rome AS44477|STARK INDUSTRIES SOLUTIONS LTD
45.150.65.202 United States|New Jersey|Secaucus AS44477|STARK INDUSTRIES SOLUTIONS LTD