• 本文作者: 漏洞应急响应中心
  • |
  • 2016年10月28日
  • |
  • 样本分析
  • |

IOT后门程序Marai样本技术分析

天融信阿尔法实验室 雨夜

最近发生了多起DDOS攻击事件,调查发现攻击源头是大量的物联网设备,大多设备被一款名为“ELF Linux/Mirai”的新型ELF木马后门攻占,全球由其控制的BOT多达500万以上。Mirai能够感染多种存在漏洞的物联网设备,其中包括安保摄像头、DVR以及互联网路由器等。通过恶意感染,这些物联网设备将成为僵尸网络中的肉鸡,并被用于实施大规模DDoS攻击。

 

一、Marai感染IOT设备的方法

  1. 搜索存在弱口令IOT设备
  2. Marai使用61组用户名密码组合暴力破解存在弱口令的IOT设备
  3. 登陆telnet成功以后,远程下载IOT设备架构对应的恶意可执行程序并执行
  4. 恶意程序执行以后,在局域网内扫描存在该漏洞的其他设备,进而感染

 

二、Marai各个功能模块分析

2.1 Loader文件夹

攻击程序加载器,主要将攻击程序加载到目标IOT设备上。流程主要有一下几步:

先登陆目标设备Telnet

iot-1

验证登陆,成功后将攻击程序上传

iot-2

其中多次用到busybox

iot-3

iot-4

设备被植入Marai,会监听48101端口

2.2 Bot文件夹

主要功能有DDos攻击,域名解析,内网扫描等

DDOS攻击类型:UDP, VSE, SYN, DNS, ACK等多种类型

iot-5

iot-6

 

 

除此之外,Marai还是用了非常规的“DNS Water Torture” 和 “GRE flood”,这种技术不同于常规的DNS反射放大攻击,它将域名处理后向目标DNS服务器发送少量但持续的递归查询请求,对目标机构的DNS服务器形成超负荷流量攻击。

Mirai有很强的自我保护性,可隐身,有反GDB调试,防止watchdog重启设备的能力;同时mirai为了获得设备的绝对控制权,会检索设备上的其他恶意程序,如果发现将其杀死

自我保护措施

确保只有一个实例运行,当发现有其他连接接入直接将其关闭

iot-7

关闭使用22、23、80端口的其他进程, 阻止管理员从远程对该设备通过telnet或SSH进行操控,或从网页访问更改设备配置

iot-8

通过内存搜索的方式,检测是否有其他恶意程序植入

iot-9

在使用http flood攻击的时候,如果检测到DDOS防护设备DOSARREST和CLOUDFLARE后,会采取绕过操作

iot-10

内网扫描,扫描开放23端口的设备。

iot-11

如果发现用字典进行爆破

iot-12

设置IP白名单,如果遇到以下IP直接绕过

iot-13

如果登陆成功则进行感染

Mirai为了保证不被轻易发现,对多方面进行隐藏

  1. 文件名的隐藏

iot-14

 

2.进程名隐藏

iot-15

使用prctl()函数修改进程名

3.对重要的关键字符串进行加密

iot-16

加载的时候,用table_unlock_val()进行解密,并用table_retrieve_val()进行调用,使用完再调用table_lock_val()加密

4.解析CNC服务器域名的时候,使用了反GDB调试的方法

iot-17

 

5.对watchdog进行篡改,防止其重启设备

iot-18

2.3 tools文件夹

主要文件功能如下

enc.c       将字符串格式化成table.c 中需要的类型

iot-19

nogdb.c    更新文件

single_load.c  登陆判断

wget.c     获取远程文件

2.4 CNC文件夹

 

CNC文件夹的主要功能是作为控制端,接收处理已感染的bot发送的数据,并发出指令,由go语言实现。相关操作需要有mysql数据库支持,ForunPost.txt对此有说明

程序运行后会监听23和101端口,执行不同的操作

iot-20

 

23端口

根据接收数据的分析,添加账户并执行相关操作

iot-21

 

101端口

解析接收信息中的指令,并控制bot发出攻击

iot-22

 

三、防护措施

根据后门植入方法,防护措施主要提出以下几个建议:

  1. 增强设备的认证及其凭证,关闭不必要的服务
  2. 修改Telnet、ssh登录密码,
  3. 设置busybox使用权限
  4. 升级有漏洞的固件
  5. 监控设备网络流量,一旦出现异常及时处置

 

Written by 漏洞应急响应中心