原创 奇安信X实验室 2025-01-15 12:51 北京
- 使用美国Cambium Networks公司的cnPilot路由器0DAY漏洞传播样本样本字符串使用RC4加密,CNC通信协议部分新增了HMAC-SHA256校验,使用chacha20加密CNC域名使用xlabresearch, xlabsecurity,foxthreatnointel等关键字,调侃XLAB和安全研究人员。稳定的T级别DDoS攻击能力控制端的IP资源较为丰富,域名解析的IP将近60个,分布多个在不同的国家和服务商。可能是为了承载更多的BOT端和增加摧毁僵尸网络的困难程度。下图是AIRASHI CNC xlabsecurity.ru Passive DNS记录。可以看到xlabsecurity.ru这个CNC 曾经解析到144个IP,这些IP分布在19个国家,10个AS号(Autonomous System Number, ASN)。
- 当前攻击峰值: 3.11Tbps (270.52Mpps)测试用户ID: 66XXXXXXXX (此ID正是AIRASHI僵尸网络Telegram运营频道管理员的ID)更新时间: 2025-01-13 20:20:04 UTC攻击来源
dvrhelpers.su|ipcamlover.ru|xlabresearch.ru|xlabsecurity.ru
\x7f\x00\x00\x01\x00\x50代表127.0.0.1:80
但在通信方面进行简化,最新样本使用socks5代理(使用身份验证)访问C2;
取消原先的密钥协商过程,通信流量也不再加密,上线包替换为Kitty-Kitty-Kitty,每隔2分钟向C2发生心跳包cat,C2返回meow!作为响应。指令类型仍以DDoS为主,添加了反向shell的功能,指令格式变化不明显,仍采用了cmdtype+payload的结构,只是cmdtype的值进行更新,而DDoS相关指令新增了AttckID字段。username: jjktkegl
password: 2bd463maabw5
- AIRASHI-DDoS:最早发现于10月底,功能以DDoS为主,也可执行任意指令、获取反向shell。Go-Proxisdk: 最早发现于11月底,由Go编写的基于muxado的代理工具。AIRASHI-Proxy:最早发现于12月初,魔改AIRASHI-DDoS的同一套源码,使用私有协议实现代理功能。
0 'snow slide'
1 'telnetd|upnpc-static|udhcpc|/usr/bin/inetd|ntpclient|boa|lighttpd|httpd|goahead|mini_http|miniupnpd|dnsmasq|sshd|dhcpd|upnpd|watchdog|syslogd|klogd|uhttpd|uchttpd|pppd|dhclient'
2 '/dvrEncoder|/dvrRecorder|/dvrDecoder|/rtspd|/ptzcontrol|/dvrUpdater'
3 'cve-2021-36260.ru'
4 'honeybooterz.cve-2021-36260.ru'
5 'stun.l.google.com:19302'
6 '/proc/'
7 '/proc/self/exe'
8 '/proc/net/tcp'
9 '/proc/mounts'
10 '/cmdline'
11 '/exe'
12 '/status'
13 '/fd/'
14 'PPid:'
15 '/bin/|/sbin/|/usr/|/snap/'
16 'wget|curl|tftp|ftpget|reboot|chmod'
17 '/bin/login'
18 '/usr/bin/cat'
19 'processor'
20 '/proc/cpuinfo'
21 '/bin/busybox echo AIRASHI > /proc/sys/kernel/hostname'
22 '/bin/busybox AIRASHI'
23 'AIRASHI: applet not found'
24 'abcdefghijklmnopqrstuvw012345678'
25 'come on, shake your body xlab, do the conga'
26 'i know you can't control yourself any longer'
27 'https://www.youtube.com/watch?v=ODKTITUPusM'
28 'dear researcher (xlab, foxnointel, ...), please refer to this malware as AIRASHI. thank you!'
0x2: C2获取AIRASHI共使用了3种不同的C2获取方法:
- AIRASHI-DDoS,在开发初期(10月底),使用最普通的方法,通过DNS服务器解析C2的A记录。AIRASHI-Proxy,通过DNS服务器获取C2的TXT记录,解析明文IP和端口。AIRASHI-DDoS,在11月底,通过DNS服务器获取C2的TXT记录,base64解密、chacha20解密4字节的IP,端口硬编码在样本中。
DND_TXT_CHACHA20_NONCE: 941A247DDD53819F755FD59B值得注意的是,在12月3日AIRASHI-DDoS的C2解析A记录和TXT记录同时存在,且解密后存在对应关系,可能是为了兼容之前的版本,但这让加密编码都变得毫无意义。0x3: 网络协议AIRASHI使用了全新的网络协议,用到的算法有HMAC-SHA256和CHACHA20,使用HMAC校验消息并使用协商后的CHACHA20_KEY加/解密消息。Proxy版本在协议部分没有使用HMAC进行消息验证,其他部分和DDoS版本保持一致。
通信过程
每条消息被分为2部分:32字节消息HMAC校验码、消息
如下图首先会发送Header部分消息,确认消息类型和消息长度,若消息长度不为0,再发送Payload部分
通信过程和之前一样使用状态码的switch-case结构控制,分为4步:
密钥协商
获取32字节的CHACHA20_KEY和Nonce,之后的消息使用chacha20加密并使用CHACHA20_KEY作为HMAC-SHA256的密钥。
密钥确认
使用chacha20加密发送消息类型为1的消息,验证返回消息类型是否为1
发送上线包
通过读取ELF头获取arch类型,上线包结构体如下
struct login{
uint8 uk1;
uint8 uk2;
uint8 uk3;
uint32 stunIP;
uint32 botid_len;
char botid[botid_len];
uint16 cpu_core_num;
uint16 arch_type;
}
4. 上线确认
由C2返回消息类型为2的消息
实际产生的流量如下所示:
消息类型
AIRASHI-DDoS共支持13种消息类型,对应的处理函数在bot的代码中以数组的方式存储,一些消息类型的处理函数仍不完善,可能还在开发当中。
AIRASHI-DDoS一共支持以下13种消息类型,还保留了一些类型用于后续开发:
而AIRASHI-Proxy则只支持5种消息类型,可以看出它们前4种类型保持一致。