路由器固件逆向初探
前几天国外爆出几个关于路由器后门很火的料,
详情可见: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可以成功解压出固件:
解压后就可以看到所有固件中包含的文件: