Mirai源码部分经过我搜索在github开源代码分享平台中已经被多次分享。这一点在该源代码包中的文件ForumPost.txt也看的出,作者宣布将全部代码发布到Hackforums黑客论坛上,同时在github上公开源代码。以其中某个关键字“http://pastebin.com/1rRCc3aD”为索引,在github中检索,发现36处源码共享。
代码架构:
内容分析:
.git 文件夹与mirai无关,是git版本控制工具自动生成的目录,记载了作者使用git上传的操作等等。但是在这个git的操作日志中提取到一个github用户目录
https://github.com/jgamblin/Mirai-Source-Code.git 访问,发现文件依旧存活,可得知我们正在分析的mirai源代码正是来自于这个github链接下的共享文件。
Dlr目录:该目录下存放了一个linux C 程序。核心文件是main.c,build.sh是用于编译main.c在不同平台下运行的shell脚本,release是编译后生成的二进制可执行文件,阅读main.c发现其核心功能位于run函数中,用以向某个http服务器发送HTTP请求,请求数据包如下
格式就是个GET类型http请求,访问的URL是/bins/mirai.xx xx是僵尸网络的架构编号,其实就是感染主机的平台类型,作者在build.sh编译文件中有详细说明,是
arm/arm7/x86/x86k/mips/mps/64/mpsl/ppc/sh4/sh2el/sh2eb/spc这几种,也就是说该木马可以感染以上几种架构的平台。综上所述,程序的功能就是运行后向某个http服务器发送http请求,下载符合本环境的未知文件,并将其命名为“dvrHelper”
loader目录:loader是一个mirai程序的网络加载和控制,监视程序,用于加载mirai程序,控制网络,控制执行的功能。同样src子目录下存放的是该模块的源代码,build.sh是编译文件,bins目录下是一些编译后生成的不同架构的可执行文件,这些文件正是dlr目录下编译生成的可执行文件。进入src目录下进行阅读分析,通过util.h头文件,我们可知该程序能够感染的主机类型列表如下
功能方面,首先加载不同架构的可执行文件,依据不同的参数配置创建网
文件/目录/程序/编译/架构/github/执行/mirai/请求/http/
文件/目录/程序/编译/架构/github/执行/mirai/请求/http/
-->