破壳而出:全新物联网僵尸网络AuthBot浮出水面
颁布功夫 2023-08-078827太阳集团与昭通大学网安学院发现了一个新的物联网僵尸网络,,,,,,并将其定名为AuthBot。。。。。。。。本文通过对该僵尸网络进行样本技术分析,,,,,,全面介绍了其执行流程、通讯和谈、节造号令等细节,,,,,,以作为各行业及有关企业造订网络安全战术的参考。。。。。。。。
2023年7月底,,,,,,8827太阳集团在参加国度沉点研发打算项目“大规模异构物联网威胁可控捕获与分析技术(2022YFB3104100)”的钻研过程中,,,,,,发现了一个新的物联网僵尸网络家族。。。。。。。。在VirusTotal上,,,,,,大部门杀毒引擎将其鉴别为Mirai或者Gafgyt。。。。。。。。经过具体分析,,,,,,确认齐全没有复用Mirai、Gafgyt的任何源代码。。。。。。。。
鉴于样本蕴含字符串AuthBot,,,,,,且会加密作为上线数据发送给C2,,,,,,我们将其定名为AuthBot。。。。。。。。AuthBot设计了自界说加密算法用于加密和C2的通讯。。。。。。。。目前,,,,,,其职能并不美满,,,,,,只实现了心跳蹬仔限职能,,,,,,并不蕴含DDoS攻击等职能。。。。。。。。
有理由相信,,,,,,我们在见证一个全新物联网僵尸网络的“破壳而出”。。。。。。。。
样本技术分析
目前AuthBot只支持amd64,,,,,,临时没发显熹它CPU架构的样本。。。。。。。。AuthBot选取UPX加壳,,,,,,并篡改UPX幻数来匹敌脱壳。。。。。。。。将UPX幻数“YTS\x99”沉新改为“UPX!”,,,,,,即可成功脱壳。。。。。。。。

1、执行流程
和大无数僵尸网络分歧,,,,,,AuthBot会首先衔接C2,,,,,,衔接失败退出过程。。。。。。。。在和C2成立通讯之后,,,,,,才执行其它操作,,,,,,如批改自身过程名等。。。。。。。。这是由于它硬编码的加密字符串必要用到C2返回的密钥来解密。。。。。。。。AuthBot的C2地址直接使用二进造进行赋值,,,,,,而非字符串。。。。。。。。

在和C2服务器成立通讯之后,,,,,,执行启动流程:解密字符串资源、发送CPU架构名称到C2服务器、过程名假装、自拷贝至/usr/bin/BoxBusy。。。。。。。。
随后进入循环,,,,,,执行select函数,,,,,,接管执行C2下发的指令。。。。。。。。必要指出的是,,,,,,在循环函数里,,,,,,AuthBot会获取父过程所打开的文件名称。。。。。。。。若是所打开的文件名称蕴含“/proc/”或者“socket:[”,,,,,,则把父过程名称加密发送给C2,,,,,,同时尝试kill父过程。。。。。。。。这是在尝试检测调试器或者沙箱沙箱环境特点。。。。。。。。
2、通讯和谈
AuthBot和C2的通讯和谈并不复杂,,,,,,只必要4轮即可与C2成立通讯。。。。。。。。AuthBot和C2的通讯数据经过两层加密,,,,,,表层是异或,,,,,,内层选取其自己实现的数学运算方式加密,,,,,,具体加、解密算法的伪代码别离如下:


以下是运行样本现实流量:

Step1:Bot→C2
AuthBot天生8到15字节的随机字符串作为XOR密钥,,,,,,用于后续通讯加密。。。。。。。。接着异或加密字符串"AuthBot ",,,,,,把XOR密钥字符串和密文拼接起来,,,,,,并使用自界说算法加密它们,,,,,,发送至C2。。。。。。。。


以上述截图里的数据为例,,,,,,“a78f928fa5a799979d9daa908e8f9b28421a160d431e256f”经过内层算法解密后是“7763666375776B696F6F786462636D203616120B37181F49”。。。。。。。。

Step2:C2→Bot
C2返回17字节加密数据,,,,,,经过异或和自界说算法解密后为“Accepted GoAwayMr”。。。。。。。。前8字节“Accepted”批注衔接C2成功,,,,,, “GoAwayMr”同样是密钥,,,,,,用于解密自身加密字符串。。。。。。。。

以上述截图里的数据为例,,,,,,“12ece9f2d5d3faf94704e501c5eec604c1”经过异或解密之后,,,,,,是“658f8f91a0a49190286b9d65a78dab73a2”。。。。。。。。

“658f8f91a0a49190286b9d65a78dab73a2”经过自界说算法解密后正是“Accepted GoAwayMr”。。。。。。。。自界说算法解密如下:

Step3:Bot→C2
AuthBot拼接CPU架构字符串“x86_64”和“yarn”,,,,,,经过两层加密发送给C2。。。。。。。。

Step4:Bot→C2
AuthBot向C2发送自身过程的一些权限信息等,,,,,,如是否对/usr/bin/目录有写权限,,,,,,是否为root权限运行等。。。。。。。。权限数据只经过了XOR加密。。。。。。。。XOR解密如下:

其中首字节为是硬编码的\x04,,,,,,第二字节\x00暗示是root权限运行,,,,,,第三字节是硬编码的\x01,,,,,,第4字节\x00暗示对/usr/bin/目录有写权限。。。。。。。。其余8字节是\x00。。。。。。。。
至此,,,,,,AuthBot上线成功,,,,,,起优期待执行C2下发的指令。。。。。。。。目前为止,,,,,,只收到过C2返回的两字节心跳数据\x76\x63,,,,,,异或解密后是\x01\x00。。。。。。。。心跳数据和节造号令数据都是只有一层XOR异或加密。。。。。。。。
3、节造号令
目前,,,,,,AuthBot只支持蕴含心跳在内的3类节造号令。。。。。。。。
1、IP地址下发:当C2返回的数据长度大于10字节,,,,,,将偏移1肇始的数据解析为ip:port大局的字符串并保留,,,,,,至多保留4个。。。。。。。。该号令目前只用来测试样本对IP的解析是否正确,,,,,,后续很可能用于解析DDoS攻击指标或回连C2服务器。。。。。。。。
2、心跳:当C2返回的数据长度幼于蹬宗10字节并且首字节为\x01,,,,,,则认定是心跳包,,,,,,直接返回C2一样的心跳包数据。。。。。。。。
3、删除IP地址:当C2返回的数据长度幼于蹬宗10字节并且首字节为\x00,,,,,,删除对应已保留的IP地址。。。。。。。。
总结
总的来看,,,,,,AuthBot的职能还很不美满,,,,,,不蕴含DDoS攻击职能,,,,,,也没有下载、shell等其它职能。。。。。。。。并且对于非心跳包的另表两类节造号令,,,,,,很难理解攻击者的真实意图。。。。。。。。
不外还是有一些亮点,,,,,,好比新鲜的两次加密,,,,,,尤其是通过C2返回的密钥来解密自身加密资源。。。。。。。。它的代码里也看不出常见僵尸网络对Mirai、Gafgyt代码的复用。。。。。。。。
因而,,,,,,我们以为AuthBot是全新的物联网僵尸网络,,,,,,但还只是刚刚诞生的低级阶段。。。。。。。。我们会持续监控AuthBot新的演变发展。。。。。。。。
IOC
C2:
190[.]10[.]8[.]179:8008
MD5:
7fd6f1ffceb010e4607198d1d4a527c3


京公网安备11010802024551号