物联网僵尸网络病毒“Mirai”在上月参与发起了针对KrebOnSecurity安全站点的大规模分布式DDoS攻击,新一类僵尸网络从各种容易被感染的物联网设备中发起,流量巨大防不胜防。“Mirai”可以高效扫描物联网系统设备,感染采用出厂密码设置或弱密码加密的脆弱物联网设备,被病毒感染后,设备成为僵尸网络机器人后在黑客命令下发动高强度僵尸网络攻击。本文针对Mirai源码进行详细分析。

1.    代码结构

如下图所示,主要包含两个文件夹,其中loader文件夹为加载器,完成服务端创建和状态监控的功能;mirai文件夹完成主要的恶意功能,包含网络连接、DDOS执行、下载(等工具的实现)以及主控端操作功能。

代码结构

代码结构

2.    感染途径

攻击者通过SSH或Telnet账号,使用默认密码入侵物联网设备。

3.    功能实现

代码实现的恶意功能从源码来看,主要包含3方面,主要是bot文件夹,实现反调试、隐藏自身进程、设置初始的域名端口值、设置默认弱口令、网络连接及DDOS攻击功能;Tools文件夹,实现wget、更新文件、异或数据等工具性功能。CNC文件夹能够在主控端对成功感染的bot进行监控并作为接收指令端解析指令并发起ddos攻击。

同时bot文件夹下实现功能时,会打开PF_INET(原始套接字,TCP的UNIX网络套接字),并将它绑定到本地主机IP地址127.0.0.1的端口TCP/48101,之后开始监听连入连接。一旦网络中有一个设备受感染,则会通过Telnet服务连接,进一步扩大感染范围。

4.    Bot文件夹

从代码函数功能上看,具有以下功能:

反GDB调试,解析CC地址,网络连接、实现DDOS攻击等功能。

如果监测到gdb调试,则进行自删除,阻止watchdog重新启动设备,并显示连接CC地址失败。

确保每次只有一个实例运行(通过连接本地端口48101),并通过此端口号关闭相对应的进程。

隐藏进程

攻击初始化,设置攻击类型,包含UDP、VSE、DNS、SYN等多种DDOS攻击方式。

端口初始化,通过端口号关闭使用telnet、SSH、HTTP服务的其他进程,并防止其重新启动。

扫描初始化,扫描局域网中具有弱口令以及开放23端口的其他设备

其中用户名密码的加密算法为:

当检测到新的实例运行时,则终止自身进程,同时终止扫描和所有的攻击任务。

连接域名及端口号

在源码中硬编码方式嵌入了连接的域名和端口号,其中的域名字符串都可以使用Tools文件夹下的enc.c所示的算法进行还原。

其目标为使用busybox的设备。

DDOS攻击方法

设置用户名密码

5.    CNC文件夹

监听端口23和101,分别完成不同的操作。此部分操作主要为主控端的操作。

监听端口号为23时,根据接收数据进行判定。若接受数据长度为4,且分别为00 00 00 x(x>0)时,为bot监听,将对应的bot主机添加为新的bot;否则,则判断是否是管理员并进行登录,如果成功登录,则可以通过命令执行管理员帐户添加、bot配置及bot主机情况。

当监听端口为101时,将从接收的信息中解析出命令,然后创建新的攻击,其攻击类型包括udp、vse(Valve source engine specific flood)、dns、syn、ack、stomp、GRE ip flood、GRE Ethernet flood、http等多种洪水攻击方式。

6.    Tools文件夹

Single_Load.c 加载文件

%e6%89%a7%e8%a1%8c%e7%bb%93%e6%9e%9c

Wget.c 获取远程文件

%e6%89%a7%e8%a1%8c%e7%bb%93%e6%9e%9c-1jpg

Nogdb.c(更新文件信息)

%e6%89%a7%e8%a1%8c%e7%bb%93%e6%9e%9c2

Badbot.c(显示指定的bot信息)

Enc.c

异或算法:

%e6%89%a7%e8%a1%8c%e7%bb%93%e6%9e%9c3

7.    loader文件夹

其主要功能是创建服务器,同时监控连接的状态。

%e6%89%a7%e8%a1%8c%e7%bb%93%e6%9e%9c4

8.    防护方法

其攻击针对的对象主要是安装了busybox工具的linux操作系统的设备,结合分析,其防护方法包括以下几个方面:

  1. 修改初始口令以及弱口令,加固用户名和密码的安全性
  2. 禁用48101端口
  3. 关闭telnet连接(使用了23端口)
  4. busybox工具只允许特定用户进行使用

如果您需要了解更多内容,可以
加入QQ群:570982169、486207500
直接询问:010-68438880-8669

源链接

Hacking more

...