一、背景
近期,360安全大脑监测发现一批僵尸网络样本,在Mirai泄露源码的基础上融合XXTEA算法进行加密,针对ARM、MIPS、x86等多种架构的IoT/Linux设备。
二、样本分析
2.1 Mirai.CatDDoS
第一批捕获到的样本为CatDDoS团伙[1]所运营的Mirai僵尸网络变种。以样本adda181984cda825dbfa1cb071a066f5为例,其源码基础结构如下:
与泄露的Mirai源码相比,Mirai.CatDDoS中不包含用于进行Telnet爆破的scanner.c模块,同时将用于字符串与0xdeadbeef异或解密的table.c模块替换为了xxtea.c实现。16字节的XXTEA算法key为:
交叉引用共3处。第一处为解密样本运行后向控制台输出的字符串,XXTEA解密后为“Hello, world!”:
其余两处则用于解密样本中包含的C2地址,分别为:retardedclassmate.dyn和servernoworky.geek。这两个C2地址曾出现于描述CatDDoS团伙近期攻击活动的报告[2]中。
由于C2为OpenNIC域名,无法经由公共DNS服务器进行解析,样本中硬编码了用于C2解析的OpenNIC DNS服务器:
C2的端口则在25596~25616之间随机选择。通信机制方面,Mirai.CatDDoS基本沿用了Mirai的原始设计,只是将Mirai上线时的固定4字节x00x00x00x01修改为了固定的8字节:
捕获到的实际流量如下:
在ATTACK_VECTOR方面,Mirai.CatDDoS实现了比Mirai更为丰富的DDoS攻击类型,对比如下:
Mirai |
Mirai.CatDDoS |
||
序号 |
攻击方法 |
序号 |
攻击方法 |
0 |
attack_udp_generic |
0 |
attack_udp_plain |
1 |
attack_udp_vse |
1 |
attack_tcp_syn |
2 |
attack_udp_dns |
2 |
attack_tcp_stomp |
3 |
attack_tcp_syn |
3 |
attack_tcp_ack |
4 |
attack_tcp_ack |
4 |
attack_tcp_tcp |
5 |
attack_tcp_stomp |
5 |
attack_tcp_bypass |
6 |
attack_gre_ip |
6 |
attack_tcp_socket |
7 |
attack_gre_eth |
7 |
attack_udp_pps |
8 |
attack_app_proxy |
8 |
attack_tcp_ovh |
9 |
attack_udp_plain |
9 |
attack_gre_ip |
10 |
attack_app_http |
10 |
attack_udp_ovhhex |
11 |
attack_udp_openvpn |
||
12 |
attack_method_udprape |
||
13 |
attack_udp_r6 |
||
14 |
attack_tcp_ovhtest |
根据相关特征,我们又关联到了一批相似的同类样本,在代码功能、结构设计上更为简洁、更加类似原始Mirai,推测可能为更早期的bot版本。从C2的命名方式上来看,符合了CatDDoS团伙的一贯作风——即对“猫”的情有独钟。新旧版本之间的一些异同点对比如下:
旧版本 |
新版本 |
|
解密算法 |
^(异或) |
XXTEA |
密钥 |
0xDEADBEEF |
78 56 34 12 21 43 65 87 68 24 57 13 98 BA DC FE |
C2地址 |
catsarecool.gopher ilikecats.parody ihateyou.indy catsliketo.pirate kittycattos.dyn |
retardedclassmate.dyn servernoworky.geek |
端口 |
9932 |
25596~25616随机选择 |
bot上线 |
00 00 00 01 |
31 73 13 93 04 83 32 04 |
DDoS指令 |
集成tcp、udp等共15种攻击方法 |
Mirai.CatDDoS近期的DDoS攻击趋势如下所示:
2.2 Mirai.Octopus
Mirai.Octopus是另一批使用了XXTEA加密算法的Mirai变种僵尸网络,Octopus源自于攻击者留下的特殊UA特征。
Mirai.Octopus沿用了Mirai源码中的诸多设计,例如绑定本地端口实现单一实例运行、进程名随机化、阻止watchdog重启设备、report服务器接收爆破结果等等。同时二次开发了不少新的恶意功能,包括:
-
Nday 漏洞传播
-
持久化机制
-
使用异或 + XXTEA加密算法
Nday 漏洞传播
除了Mirai中原有的23端口Telnet弱口令爆破机制,Mirai.Octopus还新增了一批N day漏洞利用exploit进行传播,分别是:
-
CVE-2018-10561, CVE-2018-10562
-
CVE-2014-8361
-
CNNVD-201306-024
-
CVE-2017-17215
-
Eir D1000 远程命令执行漏洞
-
CVE-2015-2051
-
CCTV/DVR “language/Swedish” 远程命令执行漏洞
-
CVE-2016-20016
-
CVE-2013-7471
-
CVE-2016-6277
持久化机制
Mirai.Octopus中采用了以下几种不同的方式来实现持久化:
1. 创建恶意systemd服务:/etc/systemd/system/nginnx.service和/usr/lib/systemd/system/nginnx.service
2. 在/etc/rc.d/rc.local文件中启动恶意脚本:/etc/38241
3. 添加crontab定时任务
XXTEA加密算法
Mirai.Octopus中除了包含Mirai原有的异或密钥table_key外,主要使用XXTEA算法对部分敏感字符串进行了加密,XXTEA key为硬编码的字符串:
解密出的字符串中包含了C2地址:octopus1337.geek和octopus-xeonk.pirate,以及当前版本号:v1.0.0。
通信指令
Mirai.Octopus在指令结构方面大体上与Mirai相似,C2地址的端口为65535。支持的攻击向量与Mirai对比如下:
Mirai |
Mirai.Octopus |
||
序号 |
攻击方法 |
序号 |
攻击方法 |
0 |
attack_udp_generic |
0 |
attack_udp_generic |
1 |
attack_udp_vse |
1 |
attack_tcp_syn |
2 |
attack_udp_dns |
2 |
attack_tcp_ack |
3 |
attack_tcp_syn |
3 |
attack_udp_plain |
4 |
attack_tcp_ack |
4 |
attack_udp_vse |
5 |
attack_tcp_stomp |
5 |
attack_tcp_bypass |
6 |
attack_gre_ip |
6 |
attack_udp_custom |
7 |
attack_gre_eth |
7 |
attack_udp_bypass |
8 |
attack_app_proxy |
8 |
attack_tcp_legit |
9 |
attack_udp_plain |
9 |
attack_std |
10 |
attack_app_http |
10 |
attack_method_tcpstomp |
11 |
attack_tcp_sack2 |
||
12 |
attack_tcp_wra |
||
13 |
attack_tcp_socket |
||
14 |
attack_method_greip |
||
15 |
attack_method_greeth |
||
16 |
attack_icmpecho |
||
17 |
attack_method_pps |
||
18 |
attack_method_nudp |
||
19 |
attack_udp_openvpn |
||
20 |
attack_udphex |
Mirai.CatDDoS
MD5:
adda181984cda825dbfa1cb071a066f5
c1ca3665f762e11a727ad8899b628fd8
9f72a19d57ff74b9ed98639ff10ba4fa
ec744ef35a1650b27a3c314fe4b95412
5cf5e2b114b7253de95483615ac840d8
1074c5e50a96b50fd60ec36053981b7b
1ad8e1b5927c4166e815d3c0eafabee7
1fab9849b2fe8327382a1591d4e7cb0d
844d7d1e8e6fc47b989f5986769bb3f0
f0022798b0fec29fa0153d9ca61e8bc3
25cf45b475f738c97530512b9c94f52e
d31c417346d0012c234fde8f2be517e8
C2:
retardedclassmate.dyn
servernoworky.geek
catsarecool.gopher
ilikecats.parody
ihateyou.indy
catsliketo.pirate
kittycattos.dyn
Mirai.Octopus
MD5:
c17c9689c528e0000c13da92d83acab4
cda4e1668750ff2c682b8af5796153bf
C2:
octopus1337.geek
octopus-xeonk.pirate
Report server:
107.182.129.217
Download server:
85.217.144.71
[1] https://mp.weixin.qq.com/s/Hc_zHeByTdOvDZPGxQaxlw
[2] https://blog.xlab.qianxin.com/catddos-derivative-cn/
原文始发于微信公众号(360威胁情报中心):对XXTEA加密Mirai僵尸网络的分析