首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

OMG——将物联网设备变为代理服务器的Mirai变种

一、前言

当FortiGuard实验室在为RootedCon安全会议准备演讲时(该会议将于2018年3月份在西班牙马德里举行,演讲题目为“物联网:机器人之战(IoT: Battle of Bots)”),我们又遇到了另一款新的Mirai变种。

自Mirai僵尸网络的源代码公布以来,FortiGuard实验室相继发现了多款变种,有多名攻击者通过改写原代码进而使其适应物联网环境。这些修改版的Mirai僵尸程序除了具备最原始的telnet暴力破解登录功能以外,还添加了包括漏洞利用等在内的新的技术,同时可以适应更多的系统架构。除此之外,攻击者修改Mirai源代码的目的是为了获取更多的金钱收益。Mirai最初的设计目的是旨在发起DDoS攻击,但当前衍生的程序变种则主要是攻击存在漏洞的ETH挖矿设备,挖掘加密货币。在本文中,我们分析了一个名为OMG的Mirai僵尸程序变种,该程序可以将物联网(IoT)设备转变为代理服务器。

2016年10月,Brian Krebs发表了一篇文章,介绍了网络犯罪分子如何将IoT设备转变为代理服务器以谋取利益。通过使用代理服务器,网络犯罪分子在开展各种非法活动时可以增加匿名性。利用代理服务器来谋取收益的方法之一就是将这些服务器的访问权限出售给其他网络犯罪分子,我们认为这款最新的Mirai僵尸程序变种的背后动机正是如此。

在本文中,我们也将会对该恶意软件与原始的Mirai程序进行对比。

二、Mirai vs OMG

我们先来看看OMG的配置表。这个表初始处于加密状态,需要通过0xdeadbeef这个密钥来解密,这个过程与原始的Mirai程序相同。我们首先注意到的是程序中存在/bin/busybox OOMGA以及OOMGA: applet not found字符串。Mirai僵尸程序之所以得到“Mirai”这个名字,原因在于程序中存在/bin/busybox MIRAI以及MIRAI: applet not found字符串,这两条命令用来判断恶意软件是否通过暴力破解成功进入目标物联网设备。其他变种也有类似字符串,比如Satori/Okiru、Masuta变种等。

因为这个原因,我们将这款变种命名为OMG。

OMG变种程序增加以及删除了原始Mirai代码中存在的某些配置信息。值得注意的是,变种程序新增了两个字符串,用来添加防火墙规则,以允许通信流量穿透两个随机端口,我们会在后文中讨论这一细节。

图1. OMG的配置表

不难发现,OMG保留了Mirai的原始模块,包括attack模块、killer模块以及scanner模块,具备原始Mirai程序所具备的功能,比如查杀进程(通过检查开放端口来确定与telnet、ssh以及http有关联的进程,以及与其他僵尸程序有关的进程)、telnet暴力破解登录以进一步扩散传播以及DOS攻击。

图2. Mirai的主要模块

图3. CnC域名解析结果

CnC服务器的端口信息同样包含在配置表中,即50023。

图4. CNC端口(50023)

由于当前CnC服务器已经不再响应请求,因此我们的研究成果都是静态分析结果。

当成功建连后,OMG会向CnC服务器发送一个自定义消息(0x00000000),声明自己为一个新的僵尸节点。

图5. 发送的数据标识新僵尸节点

从代码中可以发现,僵尸程序会从服务端那收到长度为5字节的数据,第一个字节表示该IoT设备的具体用途。其中,0表示代理服务器,1表示攻击,大于1的值用来表示终止连接。

图6. CnC服务器可能返回的选项

三、搭建3proxy

OMG变种程序通过使用3proxy(一款开源软件)来实现代理服务器功能。恶意软件会生成两个随机端口,分别对应于http_proxy_port以及socks_proxy_port。一旦生成合适的端口,程序就会向CnC报告这一信息。

图7. 设置代理

为了保证代理服务器能够正常工作,恶意软件必须设置防火墙,使流量能够穿透生成的端口。前面我们提到过,配置表中存在两个字符串,这两个字符串中包含能够添加以及删除防火墙规则的命令,从而完成这一任务。

TABLE_IPTABLES1 -> used to INSERT a firewall rule.

iptables -I INPUT -p tcp --dport %d -j ACCEPT;

iptables -I OUTPUT -p tcp --sport %d -j ACCEPT;

iptables -I PREROUTING -t nat -p tcp --dport %d -j ACCEPT;

iptables -I POSTROUTING -t nat -p tcp --sport %d -j ACCEPT

TABLE_IPTABLES2 -> used to DELETE a firewall rule.

iptables -D INPUT -p tcp --dport %d -j ACCEPT;

iptables -D OUTPUT -p tcp --sport %d -j ACCEPT;

iptables -D PREROUTING -t nat -p tcp --dport %d -j ACCEPT;

iptables -D POSTROUTING -t nat -p tcp --sport %d -j ACCEPT

图8. 防火墙启用/禁用函数

启动防火墙规则,使流量能够穿透随机生成的HTTP以及SOCKS端口后,恶意软件开始使用代码中内嵌的预定义配置信息来搭建3proxy。

图9. 代理配置信息

由于分析过程中服务器已不再活跃,因此我们认为攻击者的目的是出售物联网代理服务器的访问权限,提供访问凭据。

四、总结

这是我们首次看到某款Mirai变种程序在存在漏洞的IoT设备上同时提供DDOS攻击功能以及代理服务功能。伴随着这种趋势,我们相信未来会有越来越多的Mirai变种僵尸程序会具备新的变现方式。

与此同时,FortiGuard实验室将继续检测Mirai及其衍生品,与大家共享我们的研究成果。

五、IOC

所有的样本均标记为Linux/Mirai.A!tr。

哈希值

CnC服务器

来源:360安全客

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180307B12UXC00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券