本文需要具备 Linux 终端操作基础,小白退散
以前有研究过几次有关腾达固件解包的事情,都有一些进展,但是结果并不是非常理想。但是这并没有让我忘记这个事情,只有一旦有机会就会进行。 今天无意之间在谷歌上面搜索了一下Tenda Firmware Extract,起初并没有找到腾达固件解包的文章。倒是一篇叫做腾达固件后门的文章引起了我的注意。当初并没有想到里面会对固件解包有一些提及,只是对这个后门比较好奇。 当我看完该文章全文后,里面有提及到一句话「使用binwalk可以非常容易的解压腾达固件」,这句话给我带来了尝试的希望。但是中间也遇到了不少的麻烦。并不是想象中的那么顺利。 首先介绍下我的电脑的环境,Ubuntu 13.04 操作系统。这就是普普通通的 Linux 操作系统环境,但是正因为是 Ubuntu 13.04 自带的 SquashFS 4.0 ,导致后期进行固件解包的时候出现了一些小问题,不过都解决了。并没有任何的其它问题。下面开始正题。 1、首先下载并安装 binwalk,如果你是 Ubuntu 或者 Debian 操作系统,那么直接执行 sudo apt-get install binwalk 即可。如果你是从 binwalk 官网下载的压缩包,那么先解压所有文件,然后执行 sudo python setup.py install 即可完成安装。北极光是从 binwalk 下载的压缩包安装的。 2、然后我们继续打开终端,并且使用 cd 命令切换到腾达固件的目录。然后执行 binwalk -Me w311r.bin 稍微等一下就会完成。(-Me 参数表示解压所有文件)如果正常的话,进入 squashfs_root (有些是 cpio_root)目录就会看到 Linux 文件系统。但是北极光遇到并不是这种情况,北极光解压完毕后只得到了 ramdisk 文件。这是由于 Ubuntu 中缺少对 Squashfs 3.0 的支持而导致的。如果你已经成功解压那么可以跳过 3-4 步了。 3、既然缺少对 Squashfs 3.0 的支持,那么我们就去下载一个(我已经上传到百度网盘点击下载)。下载后把里面的二进制文件全部复制到 /usr/bin 里面即可。 4、然后继续打开终端,使用 cd 命令切换到 binwalk 生成的解包目录,找到 ramdisk 文件。然后输入 unsquashfs ramdisk 就会得到 squashfs-root 文件夹,里面就是腾达固件的文件系统了。 注意:如果解包后发现解包目录有个文件的图标是 CPIO ,那么直接右击使用归档管理器打开,然后全部提取就行了。腾达固件分 SquashFS 和 CPIO 两种。 并不是所有的腾达固件就能这样解压,结果北极光分析,腾达固件分 Linux 固件或非 Linux 固件两种。固件版本号为 3.xx 或者 4.xx 都能使用这种方法解包。 但是 5.xx 或者 9.xx 采用了 Trx 格式并且不是 Linux 系统,使用 binwalk -Me xxx.bin(xxx.trx) 解包之后,只会得到一堆 html 或者 xml 文件,并且里面还会掺杂少许乱码。 其中 html 是网页文件(进入后台你所看见的),xml 则是配置文件,里面存储了路由器的一些初始配置。北极光还没有找到更好的解包方法。另外这里附上一篇有关腾达 W302R 的 Telnet 后门漏洞的文章。 by 北极光.Norckon - www.fcsys.us
2014-01-28 (二)
|