美文网首页
使用QEMU模拟IOT固件

使用QEMU模拟IOT固件

作者: 烤土豆啦 | 来源:发表于2018-05-23 15:12 被阅读0次

    简介

    在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即可运行固件中的某一程序。

    常见问题
    1. 某些设备的运行程序需要从nvram中获取配置,可以使用nvram-faker这个库去模拟nvram https://github.com/zcutlip/nvram-faker

    相关文章

      网友评论

          本文标题:使用QEMU模拟IOT固件

          本文链接:https://www.haomeiwen.com/subject/wzmrjftx.html