物联网设备的固件模拟环境搭建

物联网设备的固件模拟环境搭建

在这篇文章中,我们将演示如何模拟一个给定Iot设备的固件。


固件仿真可以用于许多不通的目的,比如提供一个更好的方法来分析固件,测试利用,完成远程调试等。基于这个技术,再没有一个物理Iot设备的情况下,你可以模拟一个不同架构的固件并进行交互。早期,完成一个固件仿真需要创建一个Qemu镜像,然后复制到固件的文件系统里,才能启动固件。现在,存在一种更简单的替代方案,在模拟固件的时候也更容易出现较少的问题,让我们一探究竟。

需要的工具


  • AttifyOS VM 或者任何基于Linux的镜像

  • 固件分析工具包(https://github.com/attify/firmware-analysis-toolkit)

  • 需要模拟的固件(比如:Netgear WNAP320)

    配置

准备好上面三个工具之后,第一步我们需要做的就是设置固件分析工具包。


固件分析工具包其实就是对Firmadyne的简单的封装,自动化了模拟新固件的过程。


下载并安装FAT,只需要跟随下面代码所示,递归的clone一个git项目就可以:


git clone --recursive https://github.com/attify/firmware-analysis-toolkit.git

接下来,我们需要安装几个单独的工具,比如:Binwalk,Firemadyne和Firmware-Mod-Kit.

安装Binwalk

安装Binwalk只需要安装依赖就可以了,例如:

cd firmware-analysis-toolkit/binwalk sudo ./deps.sh sudo python setup.py install

如果一些顺利的话,我们就可以运行binwalk,然后看到下面的输出了:


物联网设备的固件模拟环境搭建

 安装Firmadyne


要安装Firmadyne,需要进入Firmadyne目录,然后打开firmadyne.config,里面的内容如下:

物联网设备的固件模拟环境搭建

找到 FIRMWARE_DIR=/home/vagrant/firmadyne/这一行,然后修改Fireadyne的地址为当前的全路径,我这里修改完之后是这样的:

物联网设备的固件模拟环境搭建

修改完之后,下一步就可以下载Firmadyne需要的其他文件了,如果网络状态好的话,这个过程需要1-2分钟,这时候我们可以河北咖啡或者吸根烟了。


物联网设备的固件模拟环境搭建

下载完成之后,下一步就需要安装Firmadyne剩余的依赖文件了:

sudo -H pip install git+https://github.com/ahupp/python-magic sudo -H pip install git+https://github.com/sviehb/jefferson sudo apt-get install qemu-system-arm qemu-system-mips qemu-system-x86 qemu-utils

接下来,我们还需要安装PostgreSQL数据库,这一步直接按照官方Firmadyne wiki提供的指令就可以了:

sudo apt-get install postgresql sudo -u postgres createuser -P firmadyne sudo -u postgres createdb -O firmadyne firmware sudo -u postgres psql -d firmware < ./firmadyne/database/schema

当提示数据库密码的时候,我们设置为firmadyne就可以了(为了避免后面不必要的问题)。


到这里我们已经全部安装完Firmadyne了。

 

安装Firmadyne Analysis Tookit


首先我们需要把fat.py和reset.py移动到firmadyne目录里。如
然后打开fit.py,修改root的密码(当运行这个脚本的时候就不会再需要输入密码了)和指定firmadyne的目录,例如:

物联网设备的固件模拟环境搭建


到这里安装工作就完成了,请确认postgresql数据库启动并正常运行。


物联网设备的固件模拟环境搭建

。。看样子我们一切顺利。

 

模拟一个固件


现在你需要做的就是指定一个固件名称然后运行fat.py来模拟一个固件,这里我们运行的是WNAP320.zip固件。


对于Brand参数,你可以指定任意brand,这个参数仅仅是为了数据库方便的目的。


输出的内容应该像下面所示:


物联网设备的固件模拟环境搭建


当我们完成了固件的初始化过程之后,会得到一个IP地址,这种情况下是固件运行了一个web服务,你可以通过SSH访问这个web接口,然后就可以完成其他基于网络的利用了。


物联网设备的固件模拟环境搭建


让我们打开firefox来验证一下是否我们可以访问这个web接口。


物联网设备的固件模拟环境搭建


祝贺!!! – 我们已经成功的模拟了一个固件(最初用于MIPS Endian架构),并且得到了一个可以访问固件内部的web接口。

文章出处:安全客 

原文链接: https://www.anquanke.com/post/id/151277

本文由 华盟网 作者:congtou 发表,其版权均为 华盟网 所有,文章内容系作者个人观点,不代表 华盟网 对观点赞同或支持。如需转载,请注明文章来源。

0

相关文章

发表评论

电子邮件地址不会被公开。