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

2018 年 7 月 11 日 黑白之道



在这篇文章中,我们将演示如何模拟一个给定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

你可能喜欢



登录查看更多
0

相关内容

FPGA加速系统开发工具设计:综述与实践
专知会员服务
65+阅读 · 2020年6月24日
【北京大学】面向5G的命名数据网络物联网研究综述
专知会员服务
37+阅读 · 2020年4月26日
【ICMR2020】持续健康状态接口事件检索
专知会员服务
17+阅读 · 2020年4月18日
深度神经网络实时物联网图像处理,241页pdf
专知会员服务
76+阅读 · 2020年3月15日
【新书】Java企业微服务,Enterprise Java Microservices,272页pdf
【干货】大数据入门指南:Hadoop、Hive、Spark、 Storm等
专知会员服务
95+阅读 · 2019年12月4日
MIT新书《强化学习与最优控制》
专知会员服务
276+阅读 · 2019年10月9日
CALDERA 一款对手自动模拟工具
黑白之道
20+阅读 · 2019年9月17日
用 Python 开发 Excel 宏脚本的神器
私募工场
26+阅读 · 2019年9月8日
用Now轻松部署无服务器Node应用程序
前端之巅
16+阅读 · 2019年6月19日
Windows开源无人机仿真工具:AirSim1.0 入门
无人机
26+阅读 · 2019年6月8日
渗透某德棋牌游戏
黑白之道
12+阅读 · 2019年5月17日
Kali Linux 渗透测试:密码攻击
计算机与网络安全
16+阅读 · 2019年5月13日
Pupy – 全平台远程控制工具
黑白之道
43+阅读 · 2019年4月26日
去哪儿网开源DNS管理系统OpenDnsdb
运维帮
21+阅读 · 2019年1月22日
Knowledge Based Machine Reading Comprehension
Arxiv
4+阅读 · 2018年9月12日
Arxiv
5+阅读 · 2018年5月1日
Arxiv
3+阅读 · 2012年11月20日
VIP会员
相关VIP内容
FPGA加速系统开发工具设计:综述与实践
专知会员服务
65+阅读 · 2020年6月24日
【北京大学】面向5G的命名数据网络物联网研究综述
专知会员服务
37+阅读 · 2020年4月26日
【ICMR2020】持续健康状态接口事件检索
专知会员服务
17+阅读 · 2020年4月18日
深度神经网络实时物联网图像处理,241页pdf
专知会员服务
76+阅读 · 2020年3月15日
【新书】Java企业微服务,Enterprise Java Microservices,272页pdf
【干货】大数据入门指南:Hadoop、Hive、Spark、 Storm等
专知会员服务
95+阅读 · 2019年12月4日
MIT新书《强化学习与最优控制》
专知会员服务
276+阅读 · 2019年10月9日
相关资讯
CALDERA 一款对手自动模拟工具
黑白之道
20+阅读 · 2019年9月17日
用 Python 开发 Excel 宏脚本的神器
私募工场
26+阅读 · 2019年9月8日
用Now轻松部署无服务器Node应用程序
前端之巅
16+阅读 · 2019年6月19日
Windows开源无人机仿真工具:AirSim1.0 入门
无人机
26+阅读 · 2019年6月8日
渗透某德棋牌游戏
黑白之道
12+阅读 · 2019年5月17日
Kali Linux 渗透测试:密码攻击
计算机与网络安全
16+阅读 · 2019年5月13日
Pupy – 全平台远程控制工具
黑白之道
43+阅读 · 2019年4月26日
去哪儿网开源DNS管理系统OpenDnsdb
运维帮
21+阅读 · 2019年1月22日
Top
微信扫码咨询专知VIP会员