前言
2020年第一季度,绿盟科技伏影实验室对基于DHT网络构造的Mozi僵尸网络木马进行了调查,并发布了其现状报告(https://blog.nsfocus.net/mozi-botnet-0513/)。
我们在当时的调查中发现,Mozi木马的控制者似乎在僵尸网络的传播和运营方面采取了比较随性的方案,这体现在Mozi木马的代码构造比较稳定、更新较少,整个mozi-DHT网络中也鲜见新配置文件下发的动作,整个Mozi僵尸网络似乎在很长的时间段内都专注于肉鸡控制数量的扩张上。该现象与常规DDoS僵尸网络的呈现有较大差异。
在近期的新一波Mozi木马攻击高峰中,伏影实验室捕获并确认了一种新版本的Mozi木马,通过对该版本Mozi木马的分析,我们确认了其当前的感染能力,并为解答以上现象提供了一种思路。
版本变化
在该v2版本的新分支中,Mozi木马少见地改进了其部分代码逻辑,这体现在多个方面。
- 内置config信息变化
新版本中,Mozi木马依然使用了与初始版本相同的config数据格式及加密方式,但具体内容有了一定改变。
该版本config数据如下:
绿色的config信息部分依然使用异或键4E665A8F80C8AC238DAC4706D54F6F7E加密,解密后的信息为:
[ss]botv2[/ss][dip]192.168.2.100:80[/dip][hp]88888888[/hp][count]http://ia.51.la/go1?id=17675125&pu=http%3a%2f%2fv.baidu.com/[idp][/count] |
该config信息表明此版本的Mozi木马是基于v2版本更新得到的,上线ID更改为17675125。dip字段的内容说明该版本Mozi会对本机的网关IP进行漏洞扫描。
蓝色部分的ECDSA384签名A对应公钥02c0a1437853be3cc4c80a29e958bfc6a71b7eab72151d64649895c46a48c32d6c39821d7e25f38044f72d106bcb2f09c6和红色部分的ECDSA384签名B对应公钥02d5d5e741eedcc8106d2f480d0412212739c7450d2ad1407201d18bcdc416657657c19de9bb050d3bcf6e707960f1eaef没有变化。
黄色部分的config版本已提升至2,这说明低于该config版本号的老版本Mozi将会被该版本逐渐替代。
- config解析功能变化
Mozi木马的config文件使用类xml格式编写,使用不同的标签指代不同的指令。在此版本中,作者在config解析部分的代码除了舍弃cpux、ssx等一些意义不大的标签外,还移除了用于存放更新url的ud标签。此版本Mozi木马支持的标签指令如下:
标签 | 内容 | 作用 |
[dip][/dip] | ip:port | 设置漏洞扫描和弱口令爆破的目标 |
[atk][/atk] | string | 指定ddos攻击类型和目标 |
[count][idp][/count] | url | 在该url登记Mozi节点 |
[ver][/ver] | byte | 设置Mozi-DHT协议v字段中固定字节的值 |
[hp][/hp] | string | 设置Mozi节点hash的前缀 |
[dr][/dr] | url | 从该url下载程序并运行 |
[cpu][/cpu] | string | 指定cpu类型,只有相同类型的Mozi节点会使用该config文件 |
[ss][/ss] | string | 指定节点标记,只有带有相同标记的Mozi节点会使用该config文件 |
[sv][/sv] | byte | 控制Mozi节点是否用该config更新本地config文件 |
[rn][/rn] | string | 执行指定的cmd指令或http请求 |
[nd][/nd] | url | 指定Mozi节点要连接的DHT节点 |
- 横向移动功能变化
新版本的Mozi木马强化了其横向传播功能。
漏洞利用方面,该版本添加了三种新的漏洞利用载荷:
vulnerability | device |
CVE_2020_8515 | DrayTek Vigor router |
D_Link_DSL_Devices_login_cgi_Remote_Command_Execution | Dlink DSL router |
Netlink_GPON_Router_1_0_11_Remote_Code_Execution | Netlink GPON router |
此外,新版本Mozi还增加了其弱密码字典中的账户密钥对的数量,从原始版本的95对增加到了169对。
感染情况
针对捕获的新版本Mozi木马的某样本,我们收集了某探针上针对该样本哈希值的探测记录,时间范围为3月10日~3月20日。数据显示,仅10天内,被该样本感染的新增IP多达847个。考虑到探针的覆盖范围,真实的样本日均感染量将远超该数字。
分析这些被感染IP的地理归属,发现源自国内的IP占了大多数(占比89%),其他国家包括印度、俄罗斯、乌克兰、多米尼加等。
从其他来源得到的数据中,我们发现仅在115.48.0.0/12这个域中,就有至少1309个IP被该样本感染。这说明整个域已被该样本充分渗透,所有暴露在外的目标路由器设备都受到了攻击。
- 其他现象
值得注意的是,该木马样本编译时间显示为2020年9月27日,但相关捕获信息最早为2020年12月底,而该木马的感染高峰则出现在2021年2月之后。这说明Mozi程序从部署到形成较强感染能力需要较长的时间。
我们推测,该现象由于其mozi-DHT网络中点对点连接的通信逻辑导致的。在此类网络中,各节点通信的对象有k-bucket算法决定,这使得各节点总是以算法中的邻居节点为优先连接对象,进而导致某区域内所有节点建立一轮全新通信的时间较长。新的Mozi程序投放后,需要一段较长的时间才能与Mozi僵尸网络中的多数节点建立通信,并用新的config文件信息更新这些节点,将他们同步到新的状态。
同样,在部署速度方面的问题,也可能是Mozi木马更新频率较低的原因之一。
总结
在本次Mozi木马攻击高峰中,一种新的Mozi版本占据了主导地位。该版本Mozi木马通过强化其漏洞利用和字典爆破能力,感染了海量境内物联网设备。
在本次高峰中,Mozi木马展现了其新版本部署时间长的特性,我们认为该特性与其mozi-DHT网络形态有关。
虽然Mozi僵尸网络有这样更新时间长的缺点,但基于其蠕虫式传播的功能,Mozi能够在完全更新后获得肉眼可见的强大感染能力。通过统计单个样本的感染情况,我们确认Mozi僵尸网络已成为当前IoT网络中巨大的威胁。