目录
一、 对XXTEA加密Mirai僵尸网络的分析
二、鱼死网破,AppMiner新变种来袭!
一、对XXTEA加密Mirai僵尸网络的分析
1.1. 背景
近期监测发现一批僵尸网络样本,在Mirai泄露源码的基础上融合XXTEA算法进行加密,针对ARM、MIPS、x86等多种架构的IoT/Linux设备。
1.2. 样本分析
Mirai.CatDDoS
第一批捕获到的样本为CatDDoS团伙所运营的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团伙近期攻击活动的报告中。
由于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攻击趋势如下所示:
Mirai.Octopus
Mirai.Octopus是另一批使用了XXTEA加密算法的Mirai变种僵尸网络,Octopus源自于攻击者留下的特殊UA特征。
Mirai.Octopus沿用了Mirai源码中的诸多设计,例如绑定本地端口实现单一实例运行、进程名随机化、阻止watchdog重启设备、report服务器接收爆破结果等等。同时二次开发了不少新的恶意功能,包括:
Nday 漏洞传播
持久化机制
使用异或 + XXTEA加密算法
持久化机制
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。
二、鱼死网破,AppMiner新变种来袭!
2.1.概述
近期,在日常威胁巡检中发现了一种混淆的门罗币挖矿木马,分析发现其为AppMiner新变种,这是该家族继2024年1月的又一次更新。挖矿并不新鲜,但将宿主机弄崩溃的实属少见。攻击者愈发贪婪,以前仅是隐秘挖矿,新变种直接删除主机密码存储和身份认证相关系统文件实现防卸载,致使重启主机无法进入系统界面,堪称鱼死网破之举!截至发稿时其已感染近400台主机,挖矿收益约5 XMR(价值约6000元);新变种还进一步强化对抗,对C2等敏感信息加密处理以隐藏痕迹。
主机感染AppMiner新变种后千万不要关机或重启,应先完成该家族查杀并恢复/etc/passwd等配置文件,以免无法进入系统!
建议用户从以下5个方面进行加固,以免遭受黑客攻击造成不必要的损失。
1)以保留原文件属性方式备份/etc/group 、/etc/passwd等重要系统文件;
2)服务器应配置高强度的登录密码,并定期更换;
3)修改ssh端口为其他端口(非22端口);
4)若非业务需要,不要在公网开放业务端口(如:redis、GitLab接口),采用本地或内网访问,设置访问白名单等方式进行加固;
5)及时更新主机漏洞补丁,将应用软件升级到安全版本。
2.2.主要恶意功能
分析样本信息如下:
MD5 |
文件名 |
文件类型 |
说明 |
6392a38d40c8ec0e80b9449ae6358c4b |
wtoss |
ELF(upx) |
主模块,5个随机字符 |
7d7075e6b9a5a5ad36b4627567feadc7 |
tepemw |
ELF(upx) |
守护程序AppMiner2,6个随机字符 |
8d2f33f064453ed41999c058ac702452 |
qiqapm |
ELF(upx) |
xmrig,6个随机字符 |
为了更直观反应AppMiner的演变进程,此处对其新旧版本作了对比:
更新点 |
2024.05新变种 |
2024.01版本 |
早期版本 |
防卸载:删除主机密码存储和身份认证相关文件 |
是,用户名显示为 I have no name !,重启主机失败 |
无 |
无 |
随机文件名 |
无附加随机字符串+精简文件名主程序5字符、子程序及矿工6字符 |
无附加随机字符串主程序12字符、矿工14字符 |
附加随机字符串 |
函数、变量名 |
Gobfuscate混淆+strip函数符号 |
严重混淆+strip函数符号 |
无混淆+保留函数符号 |
字符串 |
加密C2等敏感字符 |
明文C2 |
明文 |
终端运行日志 |
无 |
有 |
有 |
如下是AppMiner新变种的执行流程图:
1)攻击者通过漏洞利用、SSH暴破等方式成功入侵受害者主机后,植入并启动AppMiner新变种主模块(5个随机字符);
2)主模块请求攻击者制作的Google sites挂马页面,通过正则匹配得到真实的木马下载链接,再经二次正则匹配及base64解码后完成主程序AppMiner1(主模块近似克隆版)、子程序AppMiner2、xmrig矿工的下发及挖矿牟利;
3)主模块删除中招主机/etc目录下的密码存储、身份认证相关文件,阻止中招用户切换到root权限实现防卸载;直接重启主机会导致无法进入系统界面;
4)主程序AppMiner1运行后会重复上述主模块的步骤;
5)子程序AppMiner2作为主程序的守护程序,会再次请求Google sites挂马页面以确保主程序存活且为最新版。
隐藏敏感信息
AppMiner新变种(6392a38d40c8ec0e80b9449ae6358c4b)运行时无任何终端日志输出,执行后便删除自身;而早期版本则会输出如下的运行日志:
2024/06/25 15:48:59 5050 : 启动子进程成功: -> 5056 |
此外,新变种还对样本中的敏感字符串信息做了加密处理,如下是恢复函数符号前后的对比图:
利用Google sites传播木马
新变种采用了与之前版本相同的恶意模块下发逻辑,但相关C2做了加密处理。
1)新变种访问C2链接:http://www.hellkaluyou.top后返回一个html,通过正则匹配取出其中的url(红框部分)。
2) 访问上述提取出的url,得到下一阶段html
AppMiner1下载链接:https://www.hellkaluyou.top/1, 通过exe101(.*)exe101过滤 AppMiner2下载链接:https://www.hellkaluyou.top/2,通过exe102(.*)exe102过滤 xmrig下载链接1:https://www.hellkaluyou.top/d, 通过UPXD(.*)UPXD过滤 xmrig下载链接2:https://www.hellkaluyou.top/j, 无响应 |
3)通过正则匹配得到相应base64编码的elf木马,经base64解码后得到对应的elf样本(均为upx样本)。
exe101:对应AppMiner1的下载链接,大小3504KB,6392a38d40c8ec0e80b9449ae6358c4b exe102:对应AppMiner2下载链接, 大小3015KB,7d7075e6b9a5a5ad36b4627567feadc7 xmrig矿工:大小2810KB,8d2f33f064453ed41999c058ac702452 |
防卸载,重启无法进入系统界面
主机感染AppMiner新变种后,用户名处会显示“ I have no name !”,并且无法切换到root用户,重启主机后无法进入系统界面。
分析发现,新变种删除了中招主机中/etc目录下passwd、shadow等与系统密码存储、身份认证相关文件以实现防卸载,致使系统无法查找到此类文件,从而无法认证成功、无法正常重启进入系统界面。/etc目录下被AppMiner新变种删除的的系统文件如下(红框部分):
除了删除passwd、shadow等系统文件,AppMiner还会在/etc目录保存其下载的木马模块(木马模块使用随机文件名,主程序为5个字符,子程序为6个字符)。因此,主机感染AppMiner新变种后千万不要关机或重启,应先完成该家族查杀并恢复/etc/passwd等配置文件,否则无法进入系统界面!
持久化
该部分功能与之前版本逻辑相同,即:
1)向/etc/profile文件中写入执行木马主模块(/etc/wtoss)的shell指令,以实现开机启动。
echo My>/dev/null 2>&1 &/etc/wtoss >/dev/null 2>&1 & |
2)向crontab中写入执行主模块的定时任务(主模块运行后删除自身,并从C2下载恶意模块到 /etc目录),以实现持久化。
/bin/bash -c “(crontab -l 2>/dev/null; echo “*/2 * * * * /etc/wtoss”) | crontab -“ |
门罗币挖矿
AppMiner下载的xmrig矿工(/etc/qiqapm,6个字符的随机文件名)运行后便删除自身,其采用与早期版本相同的挖矿进程名[card0-crtc0]。如下是其挖矿时的截图信息:
AppMiner新变种采用c3pool矿池,挖矿收益约5XMR,感染近400台主机。
原文始发于微信公众号(安信与诚):安信与诚—威胁月报(7月份)