破壳而出:全新物联网僵尸网络AuthBot浮出水面

颁布功夫 2023-08-07

宝运莱官方网站与昭通大学网安学院发现了一个新的物联网僵尸网络 ,并将其定名为AuthBot。本文通过对该僵尸网络进行样本技术分析 ,全面介绍了其执行流程、通讯和谈、节造号令等细节 ,以作为各行业及有关企业造订网络安全战术的参考。


2023年7月底 ,宝运莱官方网站在参加国度沉点研发打算项目“大规模异构物联网威胁可控捕获与分析技术(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