一、背景
2023年11月初,绿盟科技全球威胁狩猎系统监测到一类elf文件正在大范围传播并伴随着产生了大量疑似加密的外联通信流量,但主流杀毒引擎对该文件检出率却趋近于零,这引起了我们的好奇。经过进一步人工的分析,我们确认了一个具备较强隐匿性的新型僵尸网络家族。鉴于该家族在加解密算法中使用了多轮xor运算,伏影实验室将该木马命名为xorbot。
不同于大量基于开源代码二次开发而来的僵尸网络家族,xorbot是从0开始构建的,采用了全新的架构,并且开发者极其重视木马的隐匿性,甚至为了取得更好的隐匿效果不惜牺牲传播效率,木马最新版本在初始版本的基础上添加大量的垃圾代码,使得文件体积增加了30多倍;在流量侧也是煞费苦心,初始上线交互阶段发送的数据随机生成,并且还引入了加解密算法对关键信息加密存储,使得针对通信流量中字符特征检测的方式失效。
二、样本分析
- 版本变化
xorbot于2023年11月份首次出现,初始传播版本的文件大小维持在30KB上下,在该版本出现后不久,全球威胁狩猎系统监测到了该木马的另一个变体,该变体文件大小猛增了近30倍,接近1200KB。
xorbot不同版本文件大小对比
通过进一步分析,我们确认了xorbot木马在新版本中通过引入libc库的_libc_connect()与_libc_recv()系列函数实现通信,但核心功能模块并没有发生变化。
xorbot核心功能模块
木马开发者添加了大量无效代码以掩盖恶意分支,使得当前杀毒引擎检出率接近于0。尽管垃圾代码会使文件体积过大从而影响其传播效率,但这些代码看似正常,因此增强了木马的隐匿性。近年来,越来越多的攻击团伙掌握了独立的传播工具,这使得木马的传播具备了一定的可控性,而构建一个全新架构的僵尸网络木马需要耗费一定的时间成本,这种情况下,攻击者更关注木马的隐匿性。
xorbot新旧版本字符串表对比
- 加解密算法
xorbot的开发者使用了一套借鉴Mirai源码的加解密算法,在与C&C交互时,会对将要发送的数据经过该算法加密后发送。在接收到的server端下发的指令后,也会先经过该算法解密后再使用。
解密接收数据
此外,文件中的一些敏感字符串信息同样采用加密模式存储,使用时需要先经过该算法解密,加之该木马内嵌了许多不会被使用的垃圾代码,这也使得文件中的字符串看上去较为正常,减少暴露的概率。
解密敏感字符串信息
加解密算法的实现采用了多次异或运算。以解密为例,在解密时会将待解密数据逐字节取出,然后再将硬编码于文件中的table_key(0x89F16)拆分成4个byte(0x16,0x9F,0x08,0x00),接着进行多轮异或运算,最后经过拼接后得到解密结果,在该版本中实际效果等效于整体异或0x81。
解密流程
- 持久化
xorbot通过添加crontab的方式来维持持久化,涉及到的字符信息加密存储,木马运行时解密后写入。
添加计划任务
并通过伪装恶意文件名为“ld-unixdev.so.6”(名称上类似系统动态库)来更好地隐藏自身。
重命名为ld-unixdev.so.6
- 通信&&指令
不同于大多数传统类型的僵尸网络家族,xorbot在与server端建立连接后并不急于主动发送上线包,而是被动等待server端的回复,server端初次发送的数据是随机生成的。
Server端返回数据
xorbot在接收到server端返回的数据后会先进行解密,然后将解密后的字符串以空格作为分隔符分成多个子串。通常情况下,server端第一轮返回的数据包长度为0x62, 0x68, 0xAC或0x40,且解密后获得的数据不存在空格,只有一段字符串。紧接着,受控端会产生长度不定的随机字符串反馈给server端,并且需要持续交互来维持连接不中断,直至接收到攻击指令。
产生随机字符串
交互过程如下:
交互过程
当bot端接收到的数据包长度为0x5B时,bot会结合接收到内容选择退出或上传系统数据,其中收集到的系统信息数据以json格式组织后加密传输。
收集的系统信息
另一种情况,木马会依据接收到的数据使用空格分割后的子串的数量,结合第一个子串长度采用不同方式发起DDoS攻击,当前版本支持的DDoS攻击方式如下:
xorbot支持的DDoS攻击方式
每种DDoS指令的构成包含了固定长度的随机字符串和目标信息,采用空格隔开。监测数据显示,xorbot正处于发展初期,当下仍以获取足够多的肉鸡为首要目的,其控制者在攻击活动中更倾向于使用gre_flood和tcp_flood方式对目标发起DDoS攻击,攻击目标的选择上以美国,德国在内的欧美国家为主。
xorbot下发的指令
相较于传统类僵尸网络家族,xorbot对通信流程和指令格式的设计可谓是别出心裁,虽然没有选择类似隧道或tor代理这种强隐匿性的通信方式,但却似乎深知僵尸网络监测与追踪的思路,每个细节的设计都给指令追踪制造了一定的阻碍。一方面,加密的指令使得木马通信流量具备了较强的隐匿性;另一方面,被动发送上线包以及上线数据包随机生成且长度不定也使得分析者很难依据字符信息去提取流量特征。
三、总结
xorbot是一个正在快速成长中的新型僵尸网络家族,当前版本涵盖了x86,MIPS,Renesas SH,ARM在内的多种CPU架构,虽然该木马当前版本中并无内置的传播模块,但从恶意样本所表现出的对抗手法和其庞大的传播数量不难推测其背后存在着一个专业化的攻击团伙,极大可能拥有独立的传播工具。另外,攻击者非常注重恶意样本的隐匿性,采用了诸多技术手段使得该木马在文件侧和流量侧都具备较高隐匿效果,至发文时主流杀毒引擎对该木马的检出率仍趋近于0,这值得引起我们的警惕,伏影实验室将持续加强对xorbot及其控制者的监控。
四、IOC
203.55.81.214
073202212CCF6A58EBC04E33D5B90833
598E8D8D2AEBA46DDBD9155480FEA972
参考链接:https://blog.nsfocus.net/xorbot/
图片来源网络目标可联系删除