简介
在IOT设备测试中,有很多时候可以拿到设备的固件去做进一步的测试。这时就需要某种方式将固件中的程序运行起来,为下一步渗透测试做进一步的准备。
注意:
1.使用qemu不能直接运行固件,也就是不能直接将固件当作Linux启动,只能运行固件中的程序,例luci(User-mode模式模拟运行)。例如,现在有一个tp-link xxx摄像头,在tp-link网站中下载固件,使用firmware-mod-kit解压缩固件。并使用qemu运行其中/bin/uhttpd。即可成功启动web管理界面。因为只是单独启动IOT设备的web管理界面,没有启动其他相应的运行程序,故模拟的效果不是很理想。
操作
1. 获取固件
1.设备的支持网站上查找关于设备的离线升级包
2.使用设备的系统升级功能,抓包分析升级请求包。一般IOT升级下载固件的操作都是使用http,抓包可以获取到下载链接,然后自行使用wget下载
2.解压缩固件
1.使用firmware-mod-kit,执行 extract.sh 即可成功解压,解压缩后的文件目录结构类似于Linux。
2.如果更改固件的内容,可以使用build.sh重新打包固件
3.使用qemu运行固件
qemu的两种运行方式
- User mode模拟模式,亦即是用户模式。QEMU能引导那些为不同中央处理器编译的Linux程序。而Wine是其主要目标。
- System mode模拟模式,亦即是系统模式。QEMU能模拟整个电脑系统,包括中央处理器及其他周边设备。它使得为系统源代码进行测试及除错工作变得容易。其亦能用来在一部主机上模拟不同虚拟电脑。
一般使用用户模式较多,在确定系统架构后,使用sudo chroot. ./qemu-mips-static bin/busybox即可运行固件中的某一程序。
常见问题
- 某些设备的运行程序需要从nvram中获取配置,可以使用nvram-faker这个库去模拟nvram https://github.com/zcutlip/nvram-faker
网友评论