导语:
启明星辰与广州大学网安学院发现了一个后门化的物联网DDoS僵尸网络,并将其命名为Mbedbot。本文将从其执行流程、通信协议、控制命令及后门等技术分析角度入手,对该僵尸网络进行全面介绍,以作为各行业及相关企业制定网络安全策略的参考。
2023年7月初,启明星辰在参与国家重点研发计划项目“大规模异构物联网威胁可控捕获与分析技术(2022YFB3104100)”的研究过程中,发现了一个后门化的物联网DDoS僵尸网络家族。
代码结构上,该僵尸网络复用了Mirai的DDoS攻击相关代码,并在其基础上增加https ddos以及tcp syn攻击能力。与其它基于Mirai源码的主流僵尸网络不同的是,除DDoS功能之外,该僵尸网络还实现了远程文件管理、进程操作等诸多后门功能。
并且,其使用tls协议与C2进行加密通信。因其所用tls类库为mbedtls,所以我们把此僵尸网络家族命名为Mbedbot。
01技术分析
目前为止,我们暂时只捕获到arm4架构的样本,未发现其它架构的样本。Mbedbot整体代码很简洁,没有太多花哨的地方,完成常见操作流程后,即进入和C2的交互通信。
1、执行流程
运行后,打印字符串”listening tun0″,并通过监听31212端口,实现单一实例运行。之后通过异或解密出字符串资源,与Mirai的字符串高度重合:
随后,初始化DDoS攻击向量,共支持11个DDoS攻击方式。初始化代码以及各个DDoS代码*复用自Mirai:
但Mbedbot比Mirai多一个针对https协议的DDoS攻击类型attack_app_https,同样使用mbedtls库,这也是首次发现支持https协议的DDoS攻击。
完成上述操作后,进入和C2交互通信的循环函数。在交互函数里,首先通过异或解密出C2地址,并使用tls协议和C2建立通信。tls类库为mbedtls,其前身是PolarSLL,现已被ARM公司收购,由ARM技术团队维护更新。
使用tls加密之前收集的系统信息,发送给C2,随后等待执行C2下发的各类命令。
2、通信协议
Mbedbot的通信协议相对简单。在和C2建立tls通信之后,先向C2发送4字节的上线数据长度,2字节的数据类型”\xFF\xFF”,再发送受害系统信息(上线数据)。
可见,Mbedbot收集的系统信息很全面。其中:huuid是硬编码的字符串,指示C2服务器(host)身份id;buuid则随机生成,表示受害主机(bot)身份id;version用于指示版本信息。发送上线数据之后,执行select函数,尝试接收C2下发的各类命令。其中,Mbedbot每15分钟会向C2发送一次硬编码的“心跳“包,用以更新主机存活状态。发送心跳包如下:
同时C2返回的17字节心跳包数据,如下:
其中前16字节”\xD9\x01….\x3B\x3F”是随机生成的SessionID,第16字节是命令码,\xFF表示是心跳包数据。
3、控制命令&后门
Mbedbot实现了很多后门功能,包括文件类(创建读取上传下载执行),执行shell进程,DDoS攻击,结束指定进程,重置C2服务器,退出自身进程等。
Mbedbot的命令格式比较简单,前16字节是C2随机生成SessionID,同一通信会话是*的。第16字节是命令码,其后是命令参数。
以如下命令为例:
FC12…57D2,16字节SessionID;0x0F,1字节命令码,此命令用来设置并重新连接新的C2服务器。fakembedbotc2.com,命令参数,将C2服务器重设为此。随后,受害主机尝试解析并连接fakembedbotc2.com:
02结 语
Mbedbot完整复用了Mirai的DDoS代码,并在其基础上新增两个“自研“的tcp syn攻击以及https ddos攻击能力。并且,针对自身的后门功能进行了丰富,以尝试加强对bot主机的控制能力。
此外,相较于其它僵尸网络,Mbedbot直接使用tls加密和C2的通信,尽管通信协议本身并不复杂,但在tls加持下,能够有效的规避常规特征指纹检测。
03IOC
66.42.52.39:443
92.38.135.146:77
dftiscasdwe.w8510.com:443
关于“大规模异构物联网威胁可控捕获与分析技术”项目
启明星辰是国家重点研发计划项目“大规模异构物联网威胁可控捕获与分析技术(2022YFB3104100)”课题一“异构物联网僵尸网络威胁感知关键技术及系统(2022YFB3104101)”的核心承担单位之一。项目及课题均由广州大学网络空间安全学院牵头,旨在构建大规模物联网攻击威胁主动防护能力。