近日,安全研究人员Craig Heffner公开表示,其已在多款D-Link路由器固件中发现了一个后门程序。
Heffner是Tactical Networks Solutions安全公司的一名漏洞研究员,他在/dev/ttyS0网站上发表了一篇博客,表示其在一个无聊的周六晚上,在通过逆向分析D-Link路由器固件中的web服务器软件时,发现路由器中包含有后门程序漏洞。
在使用Binwalk工具提取出web服务器二进制文件并通过IDA对二进制文件进行分析后,Heffner发现其实际上是ACME实验室里的一个开源HTTP服务器,即Thttpd web服务器执行的结果,该服务器此前已经遭到D-Link子公司Alphanetworks的研发人员的修改。
该公司使用的Thttpd版本为2.23,该版本中包含有许多漏洞,其中一些漏洞可以在某些情况下被黑客利用并允许黑客进行远程代码执行。然而,Heffner也指出了另一个被故意引入的漏洞,有了这个新的漏洞,其他的漏洞都可以被彻底忽略。
Alphanetworks公司研发人员对Thttpd所做的修改包括一个名为alpha_auth_check的函数,尽管此前该服务器已经包含了一个本地的可用于验证用户是否已经登录的check_login函数,但研发人员还是对其做了修改。该新的自定义函数主要用于检查用户请求中的某些信息并决定是否要跳过本地的身份验证步骤。
自定义函数检查的信息包括用户对图形和公共目录的合法请求信息,之所以要对该请求进行检查,其目的应该是为了能够显示D-Link品牌页面,要求用户登录或访问无需用户登录即可查看的信息。
除此之外,自定义函数还负责检查浏览器用户代理,如果浏览器用户代理字符串与“xmlset_roodkcableoj28840ybtide”相匹配,那么身份验证步骤就能再次被跳过。
对于该字符串,如果我们从后往前读,即可发现相关可能的负责人名字,即“edited by 04882 joel backdoor”。
实际上,修改用户代理头信息的影响并不大,用户代理头信息是HTTP请求的一部分,但这样的修改将允许D-Link设备开始运行固件并面临未经身份验证即可被黑客直接登陆访问的风险。
通过搜索引擎Shodan做一项简单的调查,我们即可发现目前使用Alphanetworks版thttpd的设备超过了3,200台。
通过分析包含在固件中的另一个二进制文件,可以发现该后门程序的拟定用途。该二进制文件/bin/xmlsetc将向设备发送用户代理头文件中的字符串和请求信息,并合法修改路由器的配置。
Heffner在博客中写道:“我估计,开发人员认为一些程序或服务需要带有自动修改设备设置的功能,他们觉得web服务器已经包含能够修改这些设置的代码,因此他们决定不管是否需要修改设备设置,都仅向web服务器发送请求信息。而这里存在的唯一的问题是,web服务器需要用户名和密码,而最终用户可能会修改用户名和密码。于是,Joel灵光一现,跳起来激动的说:‘不用担心,我想到了一个完美的计划可以搞定它!’。
据Heffner介绍,以下几款D-Link和Planex(使用相同的固件)路由器均带有该后门程序:
- DIR-100
- DI-524
- DI-524UP
- DI-604S
- DI-604UP
- DI-604+
- TM-G5240
- BRL-04UR
- BRL-04CW
对此,D-Link在接受PCWorld采访的时候表示,他们将在本月月底之前发布安全补丁修复该漏洞。
“目前我们正在积极的与该后门程序发现人员进行沟通,同时我们也在不断的检查我们的其他产品以确保这些漏洞一一得到修复”,D-Link公司在其官方技术支持页面上如此写道。同时该公司还提醒用户:在无需远程访问的情况下应该关闭远程访问功能。当然这项功能本身就是默认被禁用的。