样本发现

24年某日于xxx发现Mozi.m病毒样本,于是在内网环境中开始了分析,当时条件很不方便,于现场不能使用外网。在他们内网写完分析报告回来后,在网上找了一些资料,发现跟我分析的大同小异,分析步骤如下:

  • 拿到样本的sha值去virustotal等病毒分析网站扫一遍
  • 分析病毒源码
    • 分析是否加壳
    • 如果病毒加壳需要使用IDA对病毒进行脱壳破解
    • 继续分析源码(包括病毒的特征、传播方式、影响范围)

样本分析

病毒样本哈希值:4293c1d8574dc87c58360d6bac3daa182f64f7785c9d41da5e0741d2b1817fc7

image-20250604204557763

打开IDA Pro,发现样本通过UPX进行了加壳操作,
image-20250604204805356

使用Detect It Easy进行查壳,发现是upx壳

使用upx -d进行脱壳报错

image-20250604205201094

Mozi开发人员覆盖p_filesize并p_blocksize使用 nullbytes 避免使用 UPX 解包。一个好处是该p_filesize字段在二进制文件的末尾也可用,并且应该等于p_blocksize。

使用造好的轮子nozitookls成功解压Mozi.m文件

1
2
3
pip install -r requirements.txt
python ./mozitools.py -h
python3 ./mozitools.py -f Mozi.m -d

再次使用IDA Pro打开:

image-20250604205603923

转到String界面方便分析样本

image-20250604205640635

分析病毒行为:

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

image-20250604205944597

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

image-20250604210249106

检查设备上是否有watchdog

image-20250604210319496

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

image-20250604210352857

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

image-20250604210428699

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

image-20250604210552980

传播手段

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