做蓝队的兄弟应该都对MOZI僵尸网络有所了解,经常能碰到这个僵尸网络的各种爆破。然而能搜索到的信息无一不是LINUX版本的MOZI。正好碰到了一个奇葩的windows版本的MOZI,在此记录一下给各位需要溯源的兄弟提供点信息。(这玩意有点久了一直懒得发)
又是搬砖的一天,一大早客户就来了个消息,说机器被打了,让看看。各种分析日志过程就不说了,最后在FTP日志里面发现了问题,上图: 成功弱口令的攻击与是在下图所示,还直接传了个奇怪的东西: 传的东西名称不太一样但实际是一个样本,这里就以Video.scr为例。
先上样本信息:
先上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的文件: 我们将这个东西取出来分析下。
老样子,先上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
冰蝎,蚁剑Java内存马查杀防御技术