导语:Reaper之所以传播如此迅速是有其独特手段的,Mirai只是利用了弱密码和默认密码,而Reaper则不同,该僵尸网络则同时利用了不同的物联网设备的数十个oday和1day漏洞,这些设备包括D-Link,Wi-Fi CAM,JAWS,Netgear,Linksys,AVTECH等。
Reaper的出现
2017年10月,一个全新的、大规模的物联网(IoT)僵尸网络正快速发展并可能搞垮互联网,其代号为“Reaper”。该僵尸网络正快速发展壮大,主要由无线网络摄像头和网络视频监控设备等之类的物联网设备组成,其发展速度远远超过了2016年的Mirai僵尸网络,后者曾感染了超过全球范围内的一百多万个物联网设备。根据奇虎360 Netlab安全研究人员的跟踪研究,目前已经有大约3万个智能设备确定被感染了,另外还有大约200万个物联网设备处于潜在的威胁中。
Reaper之所以传播如此迅速是有其独特手段的,Mirai只是利用了弱密码和默认密码,而Reaper则不同,该僵尸网络则同时利用了不同的物联网设备的数十个oday和1day漏洞,这些设备包括D-Link,Wi-Fi CAM,JAWS,Netgear,Linksys,AVTECH等。
各种各样的0Day和1day漏洞
目前在漏洞市场里交易的,都是已经通过各种途径被曝光的漏洞,业内称为1Day漏洞。市场所做的就是保证漏洞的规范性和正确性,让购买者可以直接使用。而具有巨大威力的0Day漏洞(未被公开曝光的漏洞),目前还不可以在市场内交易。
不过,千万不要小看1Day漏洞,很多漏洞虽然已经曝光了数年,都称得上是“N”Day漏洞,但是由于用户缺乏安全意识,没有更换设备或者安装官方的更新,黑产从业者仍然可以轻松地利用这样的漏洞赚钱。
黑色产业玩的是概率,一个漏洞,只要有相当一部分比例的用户没有修复,对他们来讲就是能赚钱的。与其期望发现一个0Day漏洞,黑产从业者会现实地选择研究怎样提高一个1Day漏洞的命中率。
形象地来讲,1Day漏洞就像子弹,而0Day漏洞就像原子弹。虽然原子弹的威力巨大,但是一般人无法获得,更多的犯罪是通过子弹来实现的。虽然物联网开发者可以轻松快速地修复漏洞并更新其设备,但即使开发者发布了指定的补丁,这都没有用。
安全专家曾多次发出警告,一些与互联网连接的冰箱、电水壶、电灯泡,随着路由器和摄像机的日益脆弱,都将被扫描并收编形成新的僵尸网络。如果这件事发生的话,这应该是毁灭性的,这并不令人惊讶,因为许多物联网设备制造商在出售他们闪亮的新产品之前很少关心安全问题。
Reaper可以利用各种各样的漏洞,其中有些是在2013年就向公众披露了:
1.Linksys E1500/E2500中的漏洞
2.D-Link DIR-600和DIR-300中的漏洞(rev B)
检查D-link路由器型号的代码片段(95b448bdf6b6c97a33e1d1dbe41678eb)
虽然它们中的大多数已经被开发者关闭了,尽管如此,许多设备的固件还没有被更新,仍然有可能被利用。最近,研究人员还发现Reaper也可以利用2017年3月发现的无线网络摄像机(P2P)WIFICAM的漏洞。
安全公司Embedi发现,Reaper所能利用的安全漏洞此前都已经分配了CWE编号。下图显示的是这些CWE漏洞以及存在相同类型漏洞设备之间的相关性:
根据图表上的漏洞类型,很明显它们都属于应用安全。换句话说,所使用的安全开发生命周期的措施要么不充分,要么根本就没有实施,导致僵尸网络大量涌现。即使开发人员在开发可靠的代码并进行多重加密机制的情况下,也不能应付应用程序安全性的问题。
不过桌面软件的漏洞利用就很少了,由于各种操作系统的安全机制,这些漏洞很少发生,并且不易被利用。原因很清楚,那就是物联网设备的开发人员并不会过多地去参考同行现有的经验和资源,但对于恶意软件的开发者来说,情况就恰恰相反了。比如说,Reaper僵尸网络就配备了Lua解释器,这样就可以迅速扩展Reaper恶意软件的功能了。
Reaper样本中的SMPT的Lua脚本片段(ca92a3b74a65ce06035fcc280740daf6)
另一个样本是Satori , Satori是一个基于Mirai源代码的僵尸网络。这两个僵尸网络之间的主要区别在于,Satori使用了一种改进版的传播方法,并且还增加了针对华为HG532型号路由器的0 day漏洞利用代码。根据The Hacker News的报道,目前大约有二十多万台设备已经被成功感染了,除此之外,漏洞利用代码以及Mirai僵尸网络的源代码都是可以直接从网络上公开获取的。
显而易见,要创建这样的僵尸网络,需要在广泛传播的设备中找到0Day或1Day漏洞。由于大多数设备的应用程序安全性非常差,攻击者可以很容易找到新的0Day,并将其添加到已经存在的僵尸网络中。如果一个开发者没有提高应用程序的安全性,数十万个设备可以瞬间被感染。
这意味着,未来针对物联网设备的僵尸网络攻击环境可能就会是如下这样的了。
不过要注意的是,最初Mirai的出现,最初只是为了对商业竞争对手的服务器进行DDoS攻击,而Reaper幕后的开发团队显然更有经验且技高一筹。
专家表示:
“为了阻止这个僵尸网络的传播,所有公司和消费者都应该确保他们的设备运行最新的固件版本,及时更新安全补丁。与此同时,每个人都需要为此做最坏的打算,因为目前还不清楚犯罪者的动机是否什么?针对经济犯罪还是针对特定的国家或品牌企业?”
Reaper可以利用的漏洞
D-Link 850L漏洞:
1.通过WAN和LAN远程执行代码(CWE-284);
2.通过WAN和LAN在未经身份验证的情况下远程获取信息(CWE-200);
3.通过LAN以管理员权限在未经授权的情况下远程运行任意软件(CWE-284)。
无线网络摄像机(P2P)WIFICAM漏洞:
1.通过Telnet访问管理员账号 (CWE-798);
2.获取存储在固件中的RSA证书以及私钥(CWE-321);
3.使用管理员权限实现远程代码执行(CWE-78);
4.HTTP服务器的漏洞使得攻击者可以通过发送一个空的登录参数到系统来避开验证,并将空的loginpas参数传递给URL(CWE-693);
5.将HTTP服务器漏洞与远程代码执行结合在一起,这样攻击者在管理员帐户未通过本地网络或网络 (CWE-284, CWE-78)进行身份验证之前实施远程代码执行。
6.在未经RTSP服务器验证的情况下对数据流进行监控(CWE-287);
7.在tcpdump工具的帮助下对流量数据继续监控(CWE-200)。
DVR漏洞:
1.默认用户名和密码均为空 (CWE-521);
2.未对cookie内容进行验证,将允许攻击者绕过Web认证(CWE-565);
3.攻击者可以打开uboot控制台,并将设备切换到单用户模式,并在未经认证的情况下执行任意命令(CWE-284);
4.通过使用内置的Shell,未经认证的攻击者可以使用Telnet (CWE-553);
Netgear路由器漏洞:远程代码执行可以在无需用户身份验证的情况下,借助命令提示符(CWE-78)。
Vacron监控摄像机漏洞:board.cgi中没有对输入命令的过滤,可以运行cmd并执行任何命令(CWE-78)。
Netgear DGN1000和DGN2200 v1路由器漏洞:内置Web服务器不会对包含了«currentsetting.htm» 的URL进行验证,攻击者可以利用该漏洞绕过服务器的验证机制并在设备上使用管理员权限执行任意代码(CWE-20)。
Linksys E1500/E2500路由器漏洞
1.ping_size参数可以不经过安全验证,这样攻击者就可以输入和执行任意的shell命令(CWE-78);
2.攻击者可以在用户不知情的情况下更改当前密码(CWE-620)。
D-Link DIR-600和DIR-300漏洞
1.在命令提示符下没有访问限制和输入验证,允许攻击者输入和执行任意命令。例如,运行telnetd(CWE-78);
2. 攻击者可以更改设置的密码,即使它是未知的(CWE-620);
3.密码没有经过哈希并以纯文本形式存储(CWE-256);
4.未经授权的情况下,攻击者就可以访问有关设备型号名称,固件版本,语言和MAC地址以及Linux内核(CWE-200);
5.访问有关操作系统及其位置的信息(CWE-200);
6.在SSID参数中没有验证输入命令,如果攻击者试图访问version.txt文件时,则会运行输入代码,此时认证不是必需的(CWE-79)。
Avtech监控摄像机漏洞:
1.密码存储在一个文本文件中,如果可以访问设备,则还可以访问密码(CWE-256);
2.Web界面没有CSRF攻击保护(CWE-352);
3.CGI脚本可以在没有验证的情况下在“/cgi-bin/nobody”文件夹中获得(CWE-200);
4.在DVR设备上未经授权的SSRF(授予连接到本地网络的IP摄像头),可以通过修改参数ip,port和queryb64str,让攻击者可以通过DVR设备执行任意的HTTP请求(CWE-918);
5.在DVR设备上未经授权的命令输入,Search.cgi不会检查接收到的参数,攻击者可以使用它来执行远程代码执行(CWE-78);
6.通过在URL请求中添加“.cab”或“/nobody” 绕过验证(CWE-287);
7.从目录的根目录中非法加载文件(CWE-22);
8.输入“login = quick”参数绕过验证码验证(CWE-693);
9.exefile参数不会被检测,因此,攻击者可以使用管理员权限执行任意系统命令(CWE-78);
10.DoShellCmd函数参数不会被检测,攻击者可以使用管理员权限执行任意系统命令(CWE-78);
11.PwdGrp.cgi会使用用户名、密码和一个组的参数来创建或修改系统命令中的用户,而不被检测(CWE-78)。