如何从路由器的固件中提取完整的文件系统(包括临时文件)?

逆向工程 固件
2021-06-10 02:36:25

我是逆向工程的新手,请原谅我的无知。我正在尝试从 Netgear 路由器的固件中提取完整的文件系统。使用binwalk,我能够提取内核和squashfs文件系统。到现在为止还挺好。问题是文件系统不完整。许多目录(例如/etc/mnt/var/www)只是指向/tmp 中不存在的目录的符号链接,而/tmp本身是空的。

我猜(正如我在其他路由器上看到的那样)/tmp的内容将是另一个在启动时创建并存储在 RAM 中的文件系统。我对么?是否有某种方法可以从固件中确定临时文件系统的内容?

3个回答

我检查了 WNR1000v3 的最新固件,我可以使用 binwalk v2.0.0 毫无问题地提取/etc/www文件夹。

如果你下载 GPL 代码http://kb.netgear.com/app/answers/detail/a_id/2649/~/netgear---open-source-code-,你可以获得很多关于整个系统的有用信息为程序员-(gpl)
正如我从 GPL 代码中看到的,路由器从/sbin/rc文件开始,它初始化安装、网络等并启动服务。tmp文件夹一般是一个ramfs,从rc挂载如下:

mount("ramfs", "/tmp", "ramfs", MS_MGC_VAL, NULL);

尝试从firmware-mod-kit 中提取firmware.sh ->

https://code.google.com/p/firmware-mod-kit/wiki/Documentation?tm=6

如果您可以访问该模型,请选择一个便宜的 JTAG 接口,然后进行黑客攻击。现在如果这是不可能的,我会检查 QEMU 以激活固件。并得到一个贝壳来玩。

我强烈建议查看 devttys0 博客系列“利用嵌入式系统”第 1 到 4 部分 。http://www.devttys0.com/2011/09/exploiting-embedded-systems-part-1/

在第 4 部分中,他使用 QEMU 作为漏洞利用开发环境。好东西!