FICORA是一种Mirai僵尸网络变种,因其解密后的配置表中包含“FICORA”字样而得名,溯源360安全大数据后发现该僵尸网络可追溯到2024年10月。近期,360安全大脑监测发现一种僵尸网络正隐秘发起大规模DDoS攻击,分析后确认其为FICORA僵尸网络新变种。目前被该新变种攻击的设备已超1.3万台(大多位于中国),为便于安全研究人员快速掌握该新变种特性,制定有针对性的检测防御措施,我们对其上线包、攻击指令、DDoS攻击类型、更新点及历史版本特点进行了详细剖析。
新变种会采取如下手段以增强隐蔽性及破坏性:1)C2 domain及ip使用不同加密方式,溯源难度提升;2)通信数据包使用多种加密方式:密钥协商包、上线包、心跳包、攻击指令包采用不同加密方式,流量解密难度进一步提高; 3)攻击手段多样:包含10种DDoS攻击类型。
一、攻击趋势
近9天FICORA新变种DDoS攻击次数与受害者数量的趋势图如下,2025-04-16日的单日受害者数量最多,达483个,发起DDoS攻击1201次;单日攻击次数最多的是2025-04-11日,为1266次。
下图是FICORA僵尸网络全球被攻击数据图,其中位于中国的设备遭受攻击最多,为12024台。
具体到国内,广东(1187,占比9.87%)、山东(658,占比5.47%)、浙江(655,占比5.45%)、湖北(533,占比4.43%)四省遭受FICORA新变种攻击的用户最多,占国内被攻击用户的25.2%。
二、版本迭代
如下是FICORA僵尸网络历史版本迭代图,主要有以下特点:
1)早期变种可追溯到2024.10月; 2)大致包含3大版本:2024.10~12月版本、2025.01~02版本、2025.03~04新版本; 3)更新频繁:每2~3个月便会有一次重要更新; 4)功能不断强化:收集信息字段逐渐丰富、隐蔽性逐渐增强(加密方式多样化) |
三、攻击活动分析
FICORA主要通过暴力破解、漏洞利用(如:CVE-2024-33112、CVE-2024-7029、CVE-2023-1389)[1][2]等方式进行传播,在被披露后至今6个月内,FICORA陆续更新了多个版本、新增多个不同功能,下文将逐一分析。
3.1 下发恶意脚本
FICORA入侵成功后,会运行恶意脚本以植入FICORA僵尸程序(覆盖arm、x86_64、mips等主流架构)。本文先对其x64新变种8b655c20401e0cd8d6a5f8a16822f894进行分析。
3.2初始化配置表
FICORA新变种运行后会在table_init()中对其配置表进行初始化,每个表项均使用rc4加密,byte_6102B0[16]、byte_6102A0[16]两个字节数组对应字节相异或可得到rc4_key。
解密后的部分配置表项如下:
3.3随机化文件名
FICORA新变种运行后会在终端输出字符串“For God so loved the world”,并将原bot文件名重命名为以下6个名称中的一个。
3.4网络通信
3.4.1 获取C2 ip和端口信息
1)获取C2 ip
新变种包含两种C2 ip获取方式:硬编码、联网下发。方式1:硬编码,首先从以下6个ip中随机选用一个。
此外,该变种还硬编码了10个C2 DNS ip:
116.203.104.203, 130.61.64.122, 161.97.219.84, 130.61.69.123, 185.84.81.194, 54.36.111.116, 192.3.165.37, 162.243.19.47, 63.231.92.27, 80.152.203.134 |
MD5 |
文件类型 |
发现时间 |
334228a837e78a7edb50d9b3275017d3 |
ELF,arm6小端 |
2025.04.14 |
3a36f8dc3dfb173736dd7d96318852b7 |
ELF,arm6小端 |
2025.04.06 |
154.205.155.243, 154.205.155.97, 156.244.14.93, 156.244.44.239, 156.244.45.113, 104.245.241.61, 104.245.241.64, 216.146.26.30, 216.73.156.19 |
此外,新变种解密后的配置表中还包含12个C2 DNS ip:
116.203.104.203, 130.61.64.122, 161.97.219.84, 130.61.69.123, 185.84.81.194, 54.36.111.116, 192.3.165.37, 162.243.19.47, 63.231.92.27, 80.152.203.134, 208.67.222.222, 208.67.220.220(红色为新增) |
FICORA新变种则会从以下24个端口中随机选择一个进行使用。
3.4.2 获取肉鸡公网ip及端口
FICORA新变种仍用STUN协议获取肉鸡公网地址和端口信息。
成功建立TCP连接后,bot与C2需要经过以下五个阶段的交互,才能建立完整通信。
3.4.3 密钥协商
首先,C2会发送xxtea加密的0x30字节数据,解密后得到ChaCha20_key、ChaCha20_nonce。此处只取"7365637265742070617373776F7264206D656D6F72"中前16字符,即xxtea_key= "7365637265742070"。对于如下0x30字节:
00000000dd 33 d4 6f df 09 60 df71 2a 09 c2 b1 42 b8 1b.3.o..`. q*...B.. 00000010db c5 d0 0f 46 81 0b 4451 52 01 93 3f 36 89 84....F..D QR..?6.. 000000209f b9 69 35 e1 64 a7 505f 57 29 b8 99 7b da c7..i5.d.P _W)..{.. |
ChaCha20_key:B8 A7 EC 3F A3 2F 1A 85 EF 0D A6 EA 55 67 23 7B 0E E1 AE 54 75 D3 7D 7A 34 28 D8 0B 46 8F 25 FF ChaCha20_nonce:36 11 3E D9 40 58 5E 30 65 04 1A BB |
3.4.4 密钥验证
接着,C2发送另一个使用上述key、nonce加密的验证包,解密的结果若为:”636F6E677261747320796F7520636F64696E6720686163”(刚好是配置表的一项),则验证通过。后续的通信中,bot和C2将使用上述协商好的key、nonce进行加密通信。
3.4.5 bot发送上线包
1)FICORA僵尸网络上线包格式(ChaCha20加密的counter为2):
字段 |
说明 |
0x0~0x3 |
4字节前缀,01 00 00 06 |
0x04 |
运行参数长度 |
0x04+param_len |
若未带参数,则为unknown(ChaCha20加密) |
checksum |
2个字节(有特定的算法) |
三字节码串 |
3个字节,如:01 00 00(ChaCha20加密) |
肉鸡MAC地址 |
17个字节,如:00:0c:29:9e:8f:28(ChaCha20加密) |
肉鸡公网ip |
ChaCha20加密 |
最终的上线包具有如下格式:
3.4.6 接收C2指令
接着,bot会等待C2指令进行下一步操作。首先C2会以4个字节(如:33 0f 71 60)响应bot上线包,该响应包使用ChaCha20加密(counter=1),解密后为:00 00 00 01。
3.4.7 bot发送心跳包
然后,bot会发送随机长度的心跳包,该心跳包含有2个数据包。第一个包为数据长度(2字节,小端);第2个包为指定长度的ChaCha20加密(counter=1)的随机字节码(大小范围[0, 0xFF])。
需要注意的是,bot发送心跳包后,如果C2没有发送响应包,那么bot会继续发送心跳包直到C2响应带payload的数据包。
3.4.8 C2发送攻击指令包
C2发送的攻击指令包使用ChaCha20加密(counter=0),解密后的指令包具有如下格式:
|
bot端则会解密攻击指令包,并根据其中的参数对特定目标发起DDoS攻击。如下是一个解密后的tcp_flood攻击指令包。
FICORA新变种指令码(解密后)及数据包对应关系如下:
指令码(cmd_code) |
说明 |
01 00 00 06 |
bot上线包 |
00 00 00 01 |
C2响应上线包、心跳包 |
00 00 00 05 |
结束bot进程 |
C2指令包前4字节为其他值(00 xx xx xx) |
C2攻击指令包 |
含数据包长度(2字节)、对应长度随机字节码两个包 |
bot心跳包 |
FICORA新变种支持如下10种DDoS攻击类型:
指令号 令号 |
DDoS类型 |
功能说明 |
0 |
attack_udp_0 |
持续高频发送大量UDP垃圾报文消耗受害者网络带宽,甚至造成拒绝服务。 |
1 |
attack_udp_generic |
持续高频发送大量1312字节的UDP垃圾报文消耗受害者网络带宽,甚至造成拒绝服务。 |
2 |
attack_tcp_2 |
持续高频发送大量64字节的TCP报文消耗受害者带宽,甚至造成拒绝服务。 |
3 |
attack_tcp_ack |
持续高频发送大量使用随机源端口的1312字节ACK数据包以消耗受害者网络带宽。 |
4 |
attack_udp_4 |
持续高频发送大量1024~2483字节的UDP垃圾报文消耗受害者网络带宽,甚至造成拒绝服务。 |
5 |
attack_udp _5 |
持续高频发送大量128~1024字节的UDP垃圾报文消耗受害者网络带宽,甚至造成拒绝服务。 |
6 |
attack_udp_6 |
持续高频发送大量1~22字节的UDP垃圾报文消耗受害者网络带宽,甚至造成拒绝服务。 |
7 |
attack_udp_7 |
持续高频发送大量1000~1360字节的UDP垃圾报文消耗受害者网络带宽,甚至造成拒绝服务。 |
8 |
attack_udp_8 |
持续高频发送大量1000~1360字节的UDP垃圾报文消耗受害者网络带宽,甚至造成拒绝服务。 |
9 |
attack_udp_forged |
持续高频发送大量伪造源ip地址的1312字节UDP垃圾包消耗网络带宽,甚至造成拒绝服务。 |
大规模、持续性DDoS攻击表明,DDoS这种传统而粗暴的攻击方式仍具有较大破坏性,僵尸网络的防范治理是一项斗智斗勇且需长期坚持的课题。
FICORA新变种通过多样化的通信加密方式、使用随机端口进一步增强其隐蔽性,并引入校验机制以验证数据包完整性、对抗协议探测;其持续的升级迭代值得安全社区引起注意。广大用户可使用360安全大脑相关产品进行实时拦截与防护,并从以下4个方面进行加固,以免遭受黑客攻击,造成不必要的损失。
Tips
1)服务器/IoT设备应配置高强度的登录密码(大小写字母、数字和特殊字符的组合密码,尤其是多个设备不要统一使用同一个密码),并定期更换密码;
2)修改ssh端口为其他端口(非22端口);
3)若非业务需要,不要在公网开放业务端口,采用本地或内网访问,设置访问白名单等方式进行加固;
4)及时更新主机漏洞补丁,将应用软件升级到安全版本。
C2:
kamru[.]ru
kamru[.]su
mineplex[.]libre
45.153.125[.]55
212.192.12[.]51
194.87.198[.]253
156.244.6[.]124
156.244.13[.]166
154.205.157[.]159
154.205.155[.]243
154.205.155[.]97
156.244.14[.]93
156.244.44[.]239
156.244.45[.]113
104.245.241[.]61
104.245.241[.]64
216.146.26[.]30
216.73.156[.]19
C2 DNS ip:
116.203.104[.]203
130.61.64[.]122
161.97.219[.]84
130.61.69[.]123
185.84.81[.]194
54.36.111[.]116
192.3.165[.]37
162.243.19[.]47
63.231.92[.]27
80.152.203[.]134
208.67.222[.]222
208.67.220[.]220
下载服务器:
185.39.207[.]117
154.205.128[.]91
103.149.87[.]69
103.149.87[.]18
103.163.215[.]73
MD5:
8b655c20401e0cd8d6a5f8a16822f894
334228a837e78a7edb50d9b3275017d3
3a36f8dc3dfb173736dd7d96318852b7
d0a9b507a396de9b774592042d0910ac
2ff4f97d496781729b52006c17ca7952
98b5ea7527bf3dd1238955812a9df18c
1.多个僵尸网络正利用Raisecom MSG1200 命令执行漏洞(CVE-2024-7120)传播
2.https://www.fortinet.com/blog/threat-research/botnets-continue-to-target-aging-d-link-vulnerabilities
原文始发于微信公众号(360威胁情报中心):Ficora僵尸网络新变种分析
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论