2021-10-05

firmadyne详解

介绍

FIRMADYNE是一个自动化且可扩展的系统,用于对基于Linux的嵌入式固件执行仿真和动态分析。组成部分如下:
(1)修改过的内核(MIPS:v2.6.32,ARM:v4.1,v3.10),用于固件执行的检测;
(2)用户空间NVRAM库,用于模拟硬件NVRAM外围设备;
(3)从下载的固件中提取文件系统和内核的提取器;
(4)一个小型控制台应用程序,用于生成用于调试的附加shell;
(5)还有一个从42多个不同厂商下载固件的爬虫。
依据fiemadyne作者书写了三个重要脚本:
(1)Accessible Webpages;
(2)SNMP Information;
(3)Vulnerability Check;(结果位于analyses/README.md.)
具体实验结果位于作者的论文Towards Automated Dynamic Analysis for Linux-based Embedded Firmware中。

依赖库介绍

busybox:linux中的瑞士军刀。
fakeroot:建立一种环境,在里边运行的命令可以以假的root权限操作文件。
git:不仅仅是个版本控制系统,它也是个内容管理系统(CMS),工作管理系统等。
dmsetup:有时候会出现类似lvm 删除不掉的lvm分区。我们可以使用dmsetup 去删除。(比lvm更加底层)
loop设备:loop设备是一种伪设备,是使用文件来模拟块设备的一种技术,文件模拟成块设备后, 就像一个磁盘或光盘一样使用。
kpartx:配合losetup却可以来挂载带有分区表的映像文件。
netcap:调试 TCP/UDP 网络连接的利器,常被称作网络调试的瑞士军刀。
nmap:UDP 端口,一般来说都会使用Nmap。用于网络发现和安全审计工具。
psycopg2:赋予python操作数据库的能力。
postgresql:开源对象关系数据库系统。 它是一个多用户数据库管理系统。
snmp:简单网络管理协议。
uml-utilities:该工具包含建立虚拟网络设备(所谓的“TAP interfaces”)的工具。
Util-linux:Linux操作系统的标准软件包,有加载、卸载、格式化、分区等功能。
vlan:实现vlan设备?
binwalk:用于搜索给定二进制镜像文件以获取嵌入的文件和代码的工具。
固件的分析工具,旨在协助研究人员对固件非分析,提取及逆向工程用处。运行于python环境。

如何运行

(1)安装
(2)提取
(3)建立数据库
(4)下载预建数据库或者从源码重新编译内核
mipseb是big-endian的mips架构
mipsel是little-endian的mips架构。

什么是QEMU

Qemu 是纯软件实现的虚拟化模拟器,几乎可以模拟任何硬件设备,虚拟机认为自己和硬件打交道,但其实是和 Qemu 模拟出来的硬件打交道,Qemu 将这些指令转译给真正的硬件。

QEMU在firmadyne中起的作用

由于firmadyne并不支持所有固件,不能模拟的固件还是需要用QEMU来模拟。

什么是MIPS

在qemu-mips虚拟机在系统模式下能够运行路由器固件的mips程序

使用

运行原理参见github

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值