Coppola是Virtual Security Research(VSR)的安全顾问,他在上周日的Defcon黑客大会上展示了路由器固件后门处理过程--这是需要逆向工程学技术的复杂的过程。
在Defcon大会上,他还发布了一个被称为路由器Post-Explotation框架(rpef)的工具,该工具能够对来自不同供应商的几款主流路由器型号进行自动化固件后门处理。
rpef支持的设备包括:Netgear WGR614、WNDR3700和WNR1000;Linksys WRT120N;TRENDnet TEW-651BR和TEW-652BRP;D-Link DIR-601和Belkin F5D7230-4。
这些路由器中,只有特定版本才能被该框架添加后门程序,一些还需要更多的测试。然而,rpef所支持的设备在未来还将会不断增加。
rpef可以向路由器固件增加多个有效载荷:根blind shell,网络嗅探器或者连接到预定义IRC(互联网中继聊天)服务器的僵尸网络客户端,通过这个服务器,僵尸网络可以接收来自攻击者的各种命令,包括发动拒绝服务攻击等。
将后门固件写入到设备(也被称为flashing)可以通过大多数路由器的web管理界面来实现,远程攻击者可以从几个方面来利用这个功能。
一种方法是扫描互联网中的路由器,让其web管理界面可以被远程访问,在很多路由器中,这并不是默认设置,但互联网中有很多这样配置的设备。
一旦这些设备被确定,攻击者就可以尝试使用默认供应商提供的密码、暴力破解密码或者利用身份验证绕过漏洞来进入设备。互联网上有很多专门追踪和记录路由器默认管理登陆凭证和漏洞的网站。
Coppola表示:“我进行了端口扫描,发现有数千个正在使用默认密码远程收听互联网的开放路由器的IP地址。”
然而,即使web界面没有暴露给互联网,攻击者也可以通过流氓固件来将后门程序远程写入设备。
上周四在黑帽安全大会上,来自AppSec安全咨询公司的安全人员Phil Purviance和Joshua Brashars演示了已知JavaScript攻击如何结合新的基于HTML5的技术,来刷新访问恶意网站的用户的路由器上的DD-WRT基于 Linux的自定义固件。
目前已经存在基于JavaScript的脚本可以通过受害者的浏览器来枚举本地网络中的设备,设置可以确定设备的类型、型号等,这项技术被称为设备指纹(device fingerprinting)。
Purviance和Brashars表示,确定受害者的内部网络IP地址不能单靠JavaScript来实现,但基于插入内容(例如Java)可以用于此目的。
一旦路由器被确定,攻击者就可以使用默认登录信息或者发起跨站请求伪造攻击(CSRF),通过受害者的浏览器来访问其web界面。
如果受害者使用与过去相同的浏览器来登录到路由器的web界面,他们的会话cookie将仍然有效,攻击者可以简单地将受害者的浏览器导向到在路由器的界面中执行活动,而不需要进行身份验证。
很多路由器,尤其是老旧的路由器,没有更新新固件,没有CSRF保护。
Purviance和Brashars展示了,XMLHttpRequest Level 2(XHR2)、跨域资源共享(Cross-Origin Resource Sharing,CORS)和HTML5 File API等新的浏览器功能如何被用于下载流氓固件文件到用户的浏览器,然后再对路由器进行后门处理,而不需要任何用户交互。在过去,使用 Javascript和旧的浏览器技术不可能实现。
他们的演示使用了DD-WRT,它存在重新设置路由器的用户自定义设置的缺点,因为它使用不同的接口,这很容易被发现。
然而,他们的攻击可以与Coppola的后门固件结合起来使用,这样一来,攻击者可以上传后门固件,这个固件将会与原来的固件一模一样。
即使是用户自定义设置也可以被保留。大多数路由器提供在执行固件升级时保留设置的选项,这些设置将被保存在被称为NVRAM(非易失性随机存储内存)的单独的内存芯片中,当你刷新固件时,它们也不会被覆盖。
“攻击者只要从路由器就可以发展大规模僵尸网络,”Coppola表示,“我认为这将会逐渐发展起来,我并不是吓唬人。”
早在2009年,基于路由器的僵尸网络还只是一个概念,当时,追踪受感染计算机IP地址的DroneBL公司发现一个蠕虫病毒,这个蠕虫病毒正在感染路由器和运行mipsel Debian分布的DSL调制解调器。
在2011年,来自反病毒供应商趋势科技的研究人员发现了类似的针对D-Link路由器的恶意软件正在拉丁美洲蔓延。
在上述两种情况中,恶意软件都是使用暴力破解攻击和默认登录信息来感染路由器和安装临时僵尸网络客户端,当路由器重启时,这个客户端将被删除。
通过Coppola创建的后门固件,即使设备重启,这种感染仍将持续,rootkit类型的恶意软路由器僵尸网络还没有普及的原因在于:创建这种僵尸网络的合适的工具还没有出现。在Defcon大会上展示的一个被称为固件逆向工程Koncole(FRAK)在真正意义上提高了人们对固件进行分析的水平。