🖌️
Functfan的格物致知
  • 写在前面
  • java技术
    • J2EE 全面简介
  • java安全
    • 反序列化漏洞
      • 序列化/反~
      • Ysoserial
        • Java反序列化之Vaadin1
        • Java反序列化之Groovy1
        • Java反序列化之Jdk7u21
        • Java反序列化之Commons beanUtils
        • Java反序列化之Commons-Collections
          • CommonsCollections1
          • CommonsCollections2
          • CommonsCollections1
          • CommonsCollections2
          • CommonsCollections3
          • CommonsCollections4
          • CommonsCollections5
          • CommonsCollections6
          • CommonsCollections7
      • Marshalsec
    • XXE漏洞
      • XXE爱之初印象
      • XXE漏洞写法及防御
      • XXExploiter工具
  • web安全
    • 一句话木马
  • 渗透测试
    • 网络资产收集
    • 端口服务探测
    • 边界突破
    • 内网穿透
    • 容器与K8S安全测试
  • 漏洞挖掘
    • web类框架研究报告
      • Xstream经验
      • weblogic漏洞研究经验笔记
      • WebLogic安全研究报告
    • 漏洞挖掘入门
      • 小白入门
      • 源代码审计方法
        • Java类编译与反编译基础
        • IDEA使用技巧
        • IDEA Java程序调试
      • Fuzzing技术
        • 方法论
          • fuzzing的四个技能
        • 工具集
          • tmnt-Web应用漏洞fuzzer
          • wfuzz-web app fuzzer
          • AFL-基于变异的fuzz工具
      • 物联网漏洞挖掘技术
        • 物联网设备固件模拟分析环境*(亲测下载好慢,不建议使用该教程)
        • 智能设备漏洞挖掘之固件提取
        • pwndbg调试工具使用教程
    • 漏洞情报监测
    • 漏洞安全检测工具
      • 容器安全检测脚本总结
      • WebLogic漏洞检测小工具
    • 漏洞复现
      • 操作系统
        • windows
        • Linux
          • 脏牛漏洞-Docker逃逸POC(dirtycow-vdso)代码分析
          • Dirty CoW脏牛内核提权漏洞(CVE-2016-5195)
      • 数据库
      • WEB服务组件
        • CVE-2020-2883
        • F5 BIG-IP远程代码执行漏洞(CVE-2020-5902)
        • Apache Solr 远程命令执行漏洞(CVE-2019-0193)
      • 云计算安全
        • CVE-2020-15257-容器逃逸-containerd
      • 物联网安全
        • TP-Link SR20 本地网络远程代码执行漏洞
  • CTF比赛
    • BUUCTF-练习场web
    • xctf-攻防世界新手练习区web
    • Exploit利器——Pwntools
  • 新技术研究
    • 区块链
    • 云原生安全
      • 虚拟化hypervisor简介
      • Docker容器基础
        • 云原生攻防研究:容器基础
          • Linux内核基础
          • Docker容器基础
          • 理解容器进程
          • 组件组成:剖析 Docker 组件作用及其底层工作原理
          • Docker镜像的内部结构(四)
          • docker之namespace,cgroup与unionFS
          • Linux内核安全模块之AppArmor
          • Linux沙箱之seccomp
          • Linux权限管理之Capabilities
        • 云原生攻防研究:Docker安全性与攻击面分析
        • 云原生攻防研究:容器逃逸技术概览
        • 云原生攻防研究:针对容器的渗透测试方法
        • 云原生攻防研究:漏洞缓解技术
      • Kubernetes容器编排基础
        • k8s基本概念
        • 云原生攻防研究:Kubernetes安全分析
        • 云原生攻防研究:Kubernetes攻击矩阵
    • 联邦安全
    • 云边协同
    • 安全多方计算
由 GitBook 提供支持
在本页
  • 您需要的工具:
  • 设置
  • 设置Binwalk
  • 设置Firmadyne
  • 模拟固件镜像
  1. 漏洞挖掘
  2. 漏洞挖掘入门
  3. 物联网漏洞挖掘技术

物联网设备固件模拟分析环境*(亲测下载好慢,不建议使用该教程)

搭建自己的IOT分析环境

上一页物联网漏洞挖掘技术下一页智能设备漏洞挖掘之固件提取

最后更新于4年前

在这篇文章中,我们将看看如何才能完成特定物联网设备的固件模拟。固件模拟可以用于许多不同的目的,例如更好地分析固件,进行开发,执行远程调试等。

通过这种技术,您可以模拟最初想在不同架构上运行的固件,并与其进行交互,即使没有物理物联网设备。固件模拟较早方法之一是创建Qemu镜像,然后将固件文件系统的内容复制到Qemu镜像上,然后启动镜像。

但是,存在一个更简单的方案,它在模拟固件时不容易出现问题。我们来看一下。

您需要的工具:

  • 或任何基于Linux的映像

  • 固件分析工具包(

  • 您想要模拟的固件(例如:)

设置

一旦你拥有了上述的三个软件,第一步就是设置固件分析工具包。

固件分析工具包只是实际项目的一个包装,可以自动模拟新固件。

要下载和安装FAT,只需简单地克隆git存储库,如下所示:

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

接下来,我们需要设置Binwalk,Firmadyne和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/注释,并将地址修改为Firmadyne的当前路径。在我的案例中修改的行如下所示。

一旦更新了路径,下一步就是下载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

提示输入密码时,数据库的密码应该是firmadyne(避免以后出现问题)。

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设置完成。

设置固件分析工具包

我们要做的第一件事是移动fat.py和reset.py到firmadyne文件夹下。

完成后,打开fat.py并修改root密码(以便在运行脚本时不会要求您输入密码),并指定firmadyne的路径,如下所示。

这就是所有的设置。确保我们的postgresql数据库已启动并正在运行。

模拟固件镜像

为了模拟固件,我们需要运行./fat.py并指定固件名称。在这个案例中,我们指定WNAP320.zip固件。

对于Brand,我们可以指定任何参数。

一旦完成了固件的初始设置过程,它将为我们提供一个IP地址。在这个案例中固件运行Web服务器,我们能够访问Web界面,以及通过SSH与固件交互进行一些基于网络的开发。

现在让我们打开Firefox,看看我们是否能够访问Web界面。

恭喜! - 我们已经成功地模拟了一个固件(最初是为MIPS Big Endian架构设计的),甚至可以在固件内部访问Web服务器!

由于译者水平有限,希望业内同行批评指正。

此时还要根据Firmadyne官方的说明来设置PostgreSQL数据库。

我们的输出如下所示:

wiki
原文链接
AttifyOS VM
https://github.com/attify/firmware-analysis-toolkit)
Netgear WNAP320
Firmadyne