mirai 横行物联网的恶意代码mirai分析之Mirai部分


最近,一个名为“ELF Linux/Mirai未来组合”的新ELF木马后门程序已经捕获了大量物联网设备,全球范围内有超过500万个机器人被其控制。关键是它是开源的~!
那么这个开源恶意代码做了什么呢?从获得的内容来看,这段恶意代码包括三个部分:loader、dlr和mirai,而这“一行”分析的是Mirai未来组合。
0x01概述
木马Mirai未来组合是一个基于Linux的恶意样本。样本主要包括攻击模块、杀手模块、扫描器模块和CNC模块,可以对某一批特定目标进行DDoS攻击,占用被控机器的知名端口,猜测TELNET连接的密码,从控制端获取并执行更多指令等。
在程序运行过程中,Mirai未来组合在很多地方隐藏了信息,如密钥串隐藏、进程隐藏等。,并添加了反GDB调试方法,以避免自身分析造成的数据泄露风险。
0x02攻击模块
攻击模块的主要功能是永久循环发送某一批特定目标IP(targs)数据包。僵尸网络中的大量Mirai未来组合控制节点会相互协作,具有攻击目标主机上DDoS的能力。
攻击模块针对的DDoS攻击类型多种多样。您可以选择使用TCP或UDP协议攻击端口,或者使用特定端口(如HTTP、DNS、VSE等)攻击服务。在TCP攻击中,有许多基于不同类型数据包的攻击方法。
首先,Mirai未来组合将初始化攻击方法,在array attack_table中添加不同的攻击函数,并使用函数指针在使用中动态调用。这种方法也会增加拆卸分析的难度。

mirai 横行物联网的恶意代码mirai分析之Mirai部分


文章图片

在具体的攻击功能上,功能结构类似,主要是在linux下通过socket编程实现,根据不同的攻击方式和攻击目的进行调整。
常见UDP攻击中的参数设置代码,其中数据是随机的。在DNS的攻击代码中,调整为特定长度的数据。

mirai 横行物联网的恶意代码mirai分析之Mirai部分


文章图片

如果未指定IP或端口,则在设定范围内随机定义IP和端口号。

mirai 横行物联网的恶意代码mirai分析之Mirai部分


文章图片

0x03杀手模块
killer模块的主要功能是禁用很多知名端口的服务,也就是杀死进程,建立一个套接字绑定到端口来占用它。
黑仔锁的禁止端口包括23(telnet)、22(SSH)和80(http),主要意图可能是阻止管理员通过telnet或SSH远程操作Linux设备,或者通过访问网页来更改设备配置。具体实现方法是调用kill函数杀死端口对应的进程,然后建立套接字绑定到端口,这样被杀死的进程就无法重启。

mirai 横行物联网的恶意代码mirai分析之Mirai部分


文章图片

对于给定的端口号,killer模块找到相应过程的实现,如下所示。
首先从/proc/net/tcp中读取所有开放TCP端口对应的进程列表元信息inode,然后从inode中获取对应进程号的pid。获得pid后,相应的进程可以被Linux C中的kill函数杀死..
【mirai 横行物联网的恶意代码mirai分析之Mirai部分】

mirai 横行物联网的恶意代码mirai分析之Mirai部分


文章图片

mirai 横行物联网的恶意代码mirai分析之Mirai部分


文章图片

0x04扫描仪模块
扫描器模块主要是针对猜测telnet登录密码,试图登录到某个其他设备并控制该设备。扫描器模块首先建立一个auth_table列表,并将mirai中存储的常用用户名和密码加载到列表中。然后用随机函数选择一个IP尝试连接。

推荐阅读