首页
论坛
课程
招聘
[原创]从FTP爆破开始的MOZI僵尸网络windows版
2022-4-2 14:27 8390

[原创]从FTP爆破开始的MOZI僵尸网络windows版

2022-4-2 14:27
8390

前言

做蓝队的兄弟应该都对MOZI僵尸网络有所了解,经常能碰到这个僵尸网络的各种爆破。然而能搜索到的信息无一不是LINUX版本的MOZI。正好碰到了一个奇葩的windows版本的MOZI,在此记录一下给各位需要溯源的兄弟提供点信息。(这玩意有点久了一直懒得发)

开端

又是搬砖的一天,一大早客户就来了个消息,说机器被打了,让看看。各种分析日志过程就不说了,最后在FTP日志里面发现了问题,上图:

成功弱口令的攻击与是在下图所示,还直接传了个奇怪的东西:

传的东西名称不太一样但实际是一个样本,这里就以Video.scr为例。

解包

先上样本信息:

文件名     Video.scr

SHA1     B4D1E6F702D73A1D6F674037CBB1C8A258EA8366

先上DIE,看着像C语言写的,没带壳:

打开IDA一看字符串,发现其实是个python打包的东西:

找个python解包器一拖(python脱源码工具很多,比如uncompyle2、unpy2exe、PyInstaller Extractor,在github上都能找得到),得到以下文件:

看名字就知道这个ftpcrack就是我们要找的东西。先上反编译。
反编译后找到python入口点"if name == 'main'",我们能看到这玩意首先将自己注册为服务:

main函数在服务中调用,main上来就是经典的xmrig.exe与config.json的挖矿组合:

json文件就是挖矿的配置文件,钱包地址等信息就存放在这个文件中。

 

仔细阅读代码发现除了各种扫描器、爆破以外还有个奇怪的lnk:

保存下来用工具LnkParse分析下,发现这个lnk是用来启动Video.scr的:

还有有趣的东西就是在下图中函数部分发现了中文注释,使用编码工具转一下码就能看到中文:

最后就是这段代码,释放并调用了一个名为back.jpg的文件:

我们将这个东西取出来分析下。

MOZI

老样子,先上DIE:

一般碰到UPX都可以使用原版UPX -d来进行脱壳,可惜这个样本会脱壳失败。选择手动脱壳,直接找到实际要跳转到DllEntryPoint的地方:

下好断点后运行,F7跟进就来到DllEntryPoint,右键dump:

dump完成的dll有很多的导出函数,根据之前的python代码可知实际被调用的函数为Z7GetConfPc.
来到初始化部分,有一个特殊的解密函数引起了注意:


可以看到这个解密是有硬编码key的,而这个key在网上一搜就能发现是MOZI使用过的key(报告地址https://blog.netlab.360.com/mozi-another-botnet-using-dht/)。而这个算法解密的内容也与报告中提到的所谓“公钥”相同。
而在下一段解密配置的代码中,解密后的内容与MOZI使用的配置格式相同:

解密后的内容:

除了与MOZI一样使用DHT通信外,还使用相同的身份认证方式:

使用同样的节点识别方式:

使用相同的网络请求:

但不同的地方在于没有攻击模块,推测MOZI网络在windows仅充当节点功能。

总结

该样本不管是使用python进行ftp爆破,还是DHT通信都比linux版本的MOZI要更容易阅读,能起到更好的借鉴效果。中文代码注释也坐实了MOZI网络确由国人编写。
附见为病毒样本,密码:kanxue.com


【看雪培训】《Adroid高级研修班》2022年春季班招生中!

最后于 2022-4-2 15:04 被团圆饭怎么吃编辑 ,原因: 补一个提取好的MOZI
上传的附件:
收藏
点赞2
打赏
分享
最新回复 (2)
雪    币: 3741
活跃值: 活跃值 (2550)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
Genes 活跃值 2022-4-2 14:43
2
0
感谢分享,当初分析arm版本的真费事。
雪    币: 2522
活跃值: 活跃值 (742)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
miaostart 活跃值 2022-4-3 14:24
3
0
感谢分享!
游客
登录 | 注册 方可回帖
返回