一、FirmAE简介
FirmAE 是一个执行仿真和漏洞分析的全自动框架。FirmAE 使用五种仲裁技术显著提高仿真成功率(从Firmadyne的 16.28% 提高到 79.36%)。
FirmAE的整体架构为如上图所示。与Firmadyne类似,FirmAE在预先构建的自定义Linux内核和库上模拟固件镜像。它还模拟目标镜像两次,以收集各种系统日志,并利用这些信息进行进一步的仿真,前一个仿真步骤称为预仿真,后一个称为最终仿真。为了进行大规模分析,FirmAE致力于完全自动化。实际上Firmadyne的许多步骤已经自动化了,但是仍然需要一些用户交互。例如,用户必须首先使用特定选项提取目标固件的文件系统。然后,他们评估是否成功提取文件系统并检索架构信息。随后,他们为QEMU制作固件镜像并在预仿真中收集信息。最后,他们运行最终仿真的脚本并执行动态分析。FirmAE自动化了所有这些交互,并添加了一个用于网络可达性和Web服务可用性的自动评估过程。FirmAE还使用Docker 将仿真并行化,以有效评估大量固件镜像。每个固件镜像在每个容器中独立仿真,该容器配备所有所需的软件包和依赖项。这使得能够快速可靠地仿真目标镜像。更多详细细节可参考FirmAE论文。
二、FirmAE安装
Ubuntu 18.04
Clone FirmAE
$ git clone --recursive https://github.com/pr0v3rbs/FirmAE
运行download.sh
$ ./download.sh
运行 install.sh
$ ./install.sh
三、FirmAE使用
执行init.sh脚本。
$ ./init.sh
检查仿真
$ sudo ./run.sh -c <brand> <firmware>
分析目标固件
•分析模式,使用FirmAE分析器
$ sudo ./run.sh -a <brand> <firmware>
•运行模式,有助于测试网络服务或执行自定义分析器
$ sudo ./run.sh -r <brand> <firmware>
完成run.sh -c后,可debug固件。
用户级基本调试实用程序
$ sudo ./run.sh -d <brand> <firmware>
内核级引导调试
$