僵尸永远不死:大型僵尸网络AIRASHI近况分析
2025-1-15 04:51:0 Author: mp.weixin.qq.com(查看原文) 阅读量:5 收藏

2024年8月XLab到观察一次有预谋的针对国产游戏《黑神话悟空》发行平台 Steam 和 完美世界的大规模DDoS攻击事件。此次攻击行动分为四个波次,攻击者精心挑选在各个时区的游戏玩家在线高峰时段发起长达数小时的持续攻击。并且同时攻击Steam和完美世界分布在全球13个地区的上百个服务器,以实现最大的破坏效果。而参与此次攻击行动的僵尸网络当时自称为AISURU。本文将要分析的正是AISURU僵尸网络的变种版本AIRASHI。

在上述攻击事件被曝光后,AISURU僵尸网络在9月短暂收手,停止了攻击活动。但在利益的驱使下10月对他们的僵尸网络进行了更新,根据样本特征我们命名为kitty。11月底,新的变种再次出现并在样本中11月底再次更新,并将僵尸网络更名为:AIRASHI。

当前AIRASHI僵尸网络主要有以下几个特点:

  • 使用美国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)。

依托于XLab大网威胁感知系统的能力,我们观察到AIRASHI样本主要通过NDAY漏洞和TELNET弱口令传播,同时具备0DAY漏洞的利用能力。我们观察到AIRASHI自去年6月开始使用美国Cambium Networks公司的cnPilot路由器0DAY漏洞传播样本,关于该0DAY漏洞去年6月份我们联系了厂家,但是没有得到厂家任何回应。为防止漏洞滥用,本文也不会涉及此漏洞信息。AIRASHI 使用的漏洞如下:

攻击能力

僵尸网络运营者通常通过社交媒体(如 Telegram、Discord 或论坛)展示其攻击能力,目的是吸引潜在客户或威慑竞争对手。为了证明僵尸网络的攻击能力,一些僵尸网络运营者会使用第三方提供的僵尸网络攻击能力测量服务来证明。他们驱动僵尸网络去攻击这些测量服务方提供的服务器,测量服务方会统计这些僵尸网络的攻击流量大小、包速率,攻击源地理位置信息、ASN,攻击方式等信息。僵尸网络运营者获得这些统计信息后将这些信息发布到他们的社交媒体以证明他们的攻击能力。

AIRASHI僵尸网络正是通过这种方式来证明他们的攻击能力。下图是他们的一次攻击能力证明

可以看到图上的统计

  • 当前攻击峰值: 3.11Tbps (270.52Mpps)

  • 测试用户ID: 66XXXXXXXX (此ID正是AIRASHI僵尸网络Telegram运营频道管理员的ID)

  • 更新时间: 2025-01-13 20:20:04 UTC

  • 攻击来源

AIRASHI的运营者一直在Telegram发布自己的DDoS能力测试结果,从历史数据可以看到AIRASHI僵尸网络的攻击能力稳定在1-3Tbps左右。

攻击活动

AIRASHI僵尸网络的攻击目标遍布全球,分布在各个行业,主要攻击目标分布在中国、美国、波兰、俄罗斯等地区。并无明显的强针对性。每日攻击目标几百个左右。

AIRASHI僵尸网络样本更新频繁,拥有多个版本,部分版本除了支持主要的DDoS功能和操作系统命令执行外还支持代理服务,下文以kitty 和 AIRASHI为主要分析对象,从字串解密,C2获取,通信协议,以及支持的指令等方面入手,剖析僵尸网络的技术细节。

Part1: kitty-socks5 分析

kitty在2024年10月初开始传播,和Aisuru之前的样本相比,在网络协议方面进行精简;而在10月底使用socks5代理与C2通信,在字符串表中加密编码了250个代理和55个C2。

0x1: 字串解密

字符串解码方面变化不大,解密方法仍使用xor_bytes,仅修改了key为DEADBEEFCAFEBABE1234567890ABCDEF,字符串表项数缩减为7。

0x2: C2获取

C2获取方面,10月初删除了原先通过http获取C2ip的方法,继续使用|分割C2字符串,和之前一样每个域名都有20多个IP映射。

eg:

dvrhelpers.su|ipcamlover.ru|xlabresearch.ru|xlabsecurity.ru

但在10月底添加socks5后,字符串表添加代理项,并且C2和代理项都使用多组IP-PORT的字节序列编码。

eg:

\x7f\x00\x00\x01\x00\x50代表127.0.0.1:80

0x3: 网络协议

网络协议方面仍使用和Fodcha僵尸网络类似的switch-case进行各个阶段的处理

但在通信方面进行简化,最新样本使用socks5代理(使用身份验证)访问C2;

username: jjktkeglpassword: 2bd463maabw5

取消原先的密钥协商过程,通信流量也不再加密,上线包替换为Kitty-Kitty-Kitty,每隔2分钟向C2发生心跳包cat,C2返回meow!作为响应。

指令类型仍以DDoS为主,添加了反向shell的功能,指令格式变化不明显,仍采用了cmdtype+payload的结构,只是cmdtype的值进行更新,而DDoS相关指令新增了AttckID字段。

Part2: AIRASHI 分析

目前发现了AIRASHI的3类样本:

  1. AIRASHI-DDoS:最早发现于10月底,功能以DDoS为主,也可执行任意指令、获取反向shell。

  2. Go-Proxisdk: 最早发现于11月底,由Go编写的基于muxado的代理工具。

  3. AIRASHI-Proxy:最早发现于12月初,魔改AIRASHI-DDoS的同一套源码,使用私有协议实现代理功能。

AIRASHI和AISURU存在一些相似之处,如果说kitty是AISURU的精简版,AIRASHI更像是升级版。自10月开始持续更新,在开发了简单的Go-Proxisdk后,又开发了自定义协议的代理工具AIRASHI-Proxy,似乎想要用全新的东西惊艳我们。

0x1: RC4解密字符串解密

AIRASHI和AISURU在字符串解密方面有一些共性,继续使用长度为16字节的key,解密算法使用RC4;输出字符串snow slide;使用|分割特殊字符串。Prxoy版本和DDoS版本的解密方法相同,但Prxoy版本内的字符串数量很少。

有趣的是一些未被引用的字符串似乎在回应我们之前的blog:一首包含的conga舞曲的youtube链接和舞蹈邀请,此外还希望xlab和foxnointel命名该变种为AIRASHI

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获取方法:

  1. AIRASHI-DDoS,在开发初期(10月底),使用最普通的方法,通过DNS服务器解析C2的A记录。

  2. AIRASHI-Proxy,通过DNS服务器获取C2的TXT记录,解析明文IP和端口。

  3. AIRASHI-DDoS,在11月底,通过DNS服务器获取C2的TXT记录,base64解密、chacha20解密4字节的IP,端口硬编码在样本中。

DNS_TXT_CHACHA20_KEY: 8E12DF8893A638354D851BCB46B5B7DC451C6F52066305AC641DE60C80D11850
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步:

  1. 密钥协商

    • 获取32字节的CHACHA20_KEY和Nonce,之后的消息使用chacha20加密并使用CHACHA20_KEY作为HMAC-SHA256的密钥。

  2. 密钥确认

    • 使用chacha20加密发送消息类型为1的消息,验证返回消息类型是否为1

  3. 发送上线包

    • 通过读取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种类型保持一致。


文章来源: https://mp.weixin.qq.com/s?__biz=MzkxMDYzODQxNA==&mid=2247483943&idx=1&sn=c50a21fcc741855a44572a7cd3a7d45f&chksm=c1292e06f65ea710208b58037ed47c6bd88417245b9b6db4c41822baaec18e41ae6000697b50&scene=58&subscene=0#rd
如有侵权请联系:admin#unsafe.sh