说说无线路由器后门的那些事儿(1)-Dlink篇

2013-11-29 +5 950521人围观 ,发现 12 个不明物体 无线安全终端安全

前不久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、如何做到动态调试,木有找到无线路由器的模拟器和动态调试工具哦,求指导!

这些评论亮了

  • 河蟹 回复
    很想知道如何从当前运行的设备中提取固件?
    )15( 亮了
  • 使用Binwalk可将这个文件系统导出,这个费了老大劲,就用Binwalk -e,之后再用firmware-mod-kit编译之后,./unsquashfs_all.sh _DIR100_v5.0.0EUb3_patch02.bix.extracted/9DB90.squashfs sys
    )8( 亮了
  • 使用Binwalk可将这个文件系统导出,这个费了老大劲,就用Binwalk -e,之后再用firmware-mod-kit编译之后,./unsquashfs_all.sh _DIR100_v5.0.0EUb3_patch02.bix.extracted/9DB90.squashfs sys得到文件系统的文件夹。
    )8( 亮了
发表评论

已有 12 条评论

取消
Loading...
css.php