路由器固件逆向初探

前几天国外爆出几个关于路由器后门很火的料,

详情可见:http://www.freebuf.com/articles/terminal/14425.html

该网站貌似专门针对固件的逆向做了很多研究,有兴趣的可以看看:http://www.devttys0.com/

于是自己也动手尝试逆向一下路由器的固件,固件下载:

http://www.tenda.cn/uploadfile/downloads/uploadfile/201103/Wireless/W302R/U_W302RRA_V3.1.201d_EN.zip

是腾达的一款路由器固件,这次后门爆料事件主角之一。

下载后的压缩包是一个bin后缀的二进制文件,可以用一款工具binwalk来查看该固件,该工具的使用大家可以去网上搜索.

可以看看该bin文件由两个部分组成,第一部分是uImage头部,这个不是我们需要的关键信息,直接pass。

第二部分从偏移64(0x40)开始,是一段用LZMA压缩的数据,我们用dd命令将这段数据保存到kernel.lzma:

kernel.lzma直接可以用Archive Manager或者其他解压缩工具打开,解压出里面的kernel文件,用file命令查看该文件:

dpanda@hacker:~/Desktop$ file kernel
kernel: data

用binwalk查看:

binwalk自带的解压功能-e:

解压后的文件夹_kernel.extracted中包含一个radomdisk的文件:

用hexedit或者file命令查看可知是squashfs文件系统。

尝试用mount命令挂载失败,用unsquashfs解压也失败,貌似是经过LZMA压缩造成的原因,查了一下有个工具firmware-mod-kit ,下载后用unsquashfs_all.sh可以成功解压出固件:

解压后就可以看到所有固件中包含的文件:

原文地址:https://www.cnblogs.com/Lamboy/p/3378111.html