导语
我们分析了一个名为Masuta的物联网僵尸网络的两个变种,在其中我们注意到一个很有名气的物联网攻击者参与此事件,并发现一个路由器漏洞在僵尸网络中首次武器化。
简介
自Mirai代码泄漏以来,物联网领域出现了许多僵尸网络。虽然其中一些只是Mirai的拷贝,但也有人增加了新的攻击手段,大多是利用路由器漏洞来开展攻击。我们分析了一个名为Masuta的物联网僵尸网络的两个变种,在其中我们注意到一个很有名气的物联网攻击者参与此事件,并发现一个路由器漏洞在僵尸网络中首次武器化。
Masuta代码泄露及缘由
我们只能在地下论坛上获取到Masuta(日语,master)僵尸网络的源代码。分析配置文件之后,我们看到Masuta使用0xdedeffba而不是Mirai的0xdeadbeef作为密钥的种子,因此配置文件中的字符串都被异或0x45=((DE ^ DE)^ FF)^ BA。
现在用0x45来异或配置文件,我们得到nexusiotsolutions.net,这是一个已知的C2网址,涉及最近的Satori攻击,其使用了华为路由器一个0 day。
WHOIS上查询此URL信息,联系方式为nexuszeta1337 @ gmail.com,表明Nexus Zeta不仅是Satori的创造者,而且还参与了Masuta僵尸网络的创建。
标准的Masuta变体使用几个已知的/弱/默认的凭据来访问它所攻击的物联网设备。
从9月份以来Masuta攻击一直在上升, 蜜罐在过去三个月中观察到2400个涉及僵尸网络的IP地址。上升趋势如下图所示:
参与Masuta攻击的主要C2服务器之一是n.cf0.pw或93.174.93.63。
PureMasuta变种及利用
IP地址93.17.93.63为我们提供了另一个Masuta僵尸网络的演变版本。虽然我们在Blackhat论坛上没有获得这个变体的源代码,但在分析编译的ARM二进制文件时,很明显这不仅仅是一个常见的Masuta样本。
Masuta变体(称为PureMasuta)包含最典型的Mirai风格代码,具有弱口令列表(PMMV = “root”, TKXZT = “vizxv”, CFOKL = “admin”)。
如下图所示,口令被单个字节XOR 0x22隐藏,Mirai泄漏的另一个灵感。
然而,真正使PureMasuta从Mirai / Masuta脱颖而出的是EDB 38722 D-Link漏洞的使用。
EDB 38722 D-Link HNAP Bug
PureMasuta僵尸网络中引入的武器化bug在HNAP(家庭网络管理协议)中,该协议本身基于SOAP协议。使用hxxp://purenetworks.com/HNAP1/GetDeviceSettings来制作一个可以绕过验证的SOAP查询。 另外,由于不正确的字符串处理,可以运行系统命令(导致任意代码执行)。当两个问题结合在一起时,可以形成一个首先绕过验证的SOAP请求,然后导致任意代码执行。 例如,下面的字符串将导致重新启动。
SOAPAction: “hxxp://purenetworks.com/HNAP1/GetDeviceSettings/`reboot`”
关于这个bug的详细文章参见此处。简单地说,GetDeviceSettings之后的任何代码都将被执行。替换reboot,PureMasuta僵尸网络从C2服务器(通过wget)下载shell脚本并运行。下图显示了僵尸网络中的脚本:
我们注意到,C2服务器(93.174.93.63)与原始Masuta变体中的相同,因此表明PureMasuta系Masuta威胁攻击者创建。利用 poc已在exploit-db 和pastebin等地方公开。 因此,我们认为攻击者实施攻击并不是很困难。
对Brian Krebs的痴迷
许多物联网僵尸网络都提到了布赖恩·克雷布斯(Brian Krebs),一位知名的记者,他对Mirai进行了深入调查。 Masuta也不例外,因为我们在源代码中看到以下消息:
与此相同的信息被一个未经验证的Nexus Zeta的twitter帐户推出,将他与Masuta僵尸网络联系在一起。
结论
当涉及到与SOAP相关的攻击时,Nexus Zeta并不陌生。在Satori僵尸网络中,已经观察到攻击者在实施其他两个已知的SOAP攻击,CVE-2014-8361和CVE-2017-17215。之前在物联网僵尸网络中也发现了第三个SOAP漏洞TR-069。这使得EDB 38722成为物联网僵尸网络中发现的第四个与SOAP相关的漏洞。
协议攻击对于威胁行为者来说更为理想,因为它们通常具有更广的范围。一个协议可以由不同的供应商/模型来实现,并且协议本身中的一个错误可以被运用到更广泛的设备上。 NewSky Security IoT Halo可以检测到本文中提及的四个SOAP漏洞。