- A+
前不久devttys0在自己的网站上纰漏了D-Link、Tenda无线路由器的后门,有理有据,技术内容还是很值得学习滴,由于之前没有关注过固件分析方面的技术,看了之后云里雾里的,除了膜拜就没有其他的了。于是乎,通过几天的查找资料有了一些心得和体会,与大家分享,顺便求大神指导。
思路及步骤:
按照devttys0的文章中的步骤进行分析,先到dlink官方下载相应版本的固件,地址如下:
ftp://ftp.dlink.eu/Products/dir/dir-100/driver_software/DIR-100_fw_reva_113_ALL_en_20110915.zip
下载后解压获得固件文件DIR100_v5.0.0EUb3_patch02.bix。使用固件分析神器Binwalk对其文件系统进行提取。
如devttys0所说,看到一个SquashFS文件系统,使用Binwalk可将这个文件系统导出。导出后得到下面这个文件系统,看样子是些系统文件了。
继续看/bin/webs文件,这个就是无线路由器的web服务程序喽,还等什么?上IDA,走起!
注意哦,用IDA打开的时候要选择CPU哦,打开后就不用多说了,IDA嘛大家都比我用得好啦。不过我们得到的不是x86的反汇编代码,是mips的,这个也不难,找手册看下就有了。其实凭借x86下的经验,这个也不是问题,毕竟汇编指令不是很多嘛。
查看字符串信息和函数信息:
果然找到传说中的“后门密码”和那个alpha_auth_check函数。进入alpha_auth_check进行分析:
Look这里,一目了然吧。判断后门密码,如果为真,则检测为已登录状态。按照devttys0给出的逆向还原代码就更直观了:
从上面代码就可以很清晰的看到这个赤裸裸的后门了。下面我们验证一下吧,我买到的是中文版的DLINK DIR-100,通过更改http发包数据中的User-Agent值为“xmlset_roodkcableoj28840ybtide”进行访问。结果不用用户名和密码进去了。
涉及到的工具:
Binwalk
IDA
还存在的疑问:
1、如何在官方没有提供固件文件的情况下,在设备中提取固件或文件? 2、如何做到动态调试,木有找到无线路由器的模拟器和动态调试工具哦,求指导!
- 我的微信
- 这是我的微信扫一扫
- 我的微信公众号
- 我的微信公众号扫一扫