Mozi病毒样本分析
样本发现
24年某日于xxx发现Mozi.m病毒样本,于是在内网环境中开始了分析,当时条件很不方便,于现场不能使用外网。在他们内网写完分析报告回来后,在网上找了一些资料,发现跟我分析的大同小异,分析步骤如下:
- 拿到样本的sha值去virustotal等病毒分析网站扫一遍
- 分析病毒源码
- 分析是否加壳
- 如果病毒加壳需要使用IDA对病毒进行脱壳破解
- 继续分析源码(包括病毒的特征、传播方式、影响范围)
样本分析
病毒样本哈希值:4293c1d8574dc87c58360d6bac3daa182f64f7785c9d41da5e0741d2b1817fc7
打开IDA Pro,发现样本通过UPX进行了加壳操作,
使用Detect It Easy进行查壳,发现是upx壳
使用upx -d进行脱壳报错

Mozi开发人员覆盖p_filesize并p_blocksize使用 nullbytes 避免使用 UPX 解包。一个好处是该p_filesize字段在二进制文件的末尾也可用,并且应该等于p_blocksize。
使用造好的轮子nozitookls成功解压Mozi.m文件
1 | pip install -r requirements.txt |
再次使用IDA Pro打开:

转到String界面方便分析样本

分析病毒行为:
在成功感染目标设备之后,Mozi为进行自我保护,会通过执行iptables命令添加ACL使防火墙阻断SSH、Telnet端口,以防止被其他僵尸网络入侵

根据感染的设备,修改策略放行不同的端口来保证通信

检查设备上是否有watchdog

攻击设备类型(GPON光纤设备、NetGear路由设备、华为HG532交换机系列、D-Link路由设备、使用Realtek SDK的设备、Vacron监控摄像机、 USR-G806 4G工业无线路由器等)

还在样本中发现硬编码的部分用户名和弱口令,以扩大感染和传播范围,硬编码的部分用户名和密码如下

新的Mozi节点向http://ia.51.la/发送HTTP请求,来注册自身。在通信流量中通过1:v4:JBls来标记是否为Mozi节点发起的通信

传播手段
Mozi通过弱telnet密码和漏洞感染新设备,感染过程如下:
当前Bot节点随机使用本地端口启动http服务提供样本下载或在Botnet Master下发的Config文件中接收样本下载地址,为未来被感染目标提供样本下载地址。
当前Bot节点使用弱密码登录目标设备,以echo方式写入下载器文件并运行,从当前Bot节点提供的示例下载地址下载示例文件。或者利用漏洞利用目标,然后从当前Bot节点提供的样本下载地址获取样本文件。
在受感染的目标设备上运行Mozi Bot样本,加入Mozi P2P网络成为新的Mozi Bot节点,继续感染其他新设备。



