IOT安全-QEMU使用
简介
QEMU是一套由法布里斯·贝拉(Fabrice Bellard)所编写的以GPL许可证分发源码的模拟处理器软件,在GNU/Linux平台上使用广泛。Bochs,PearPC等与其类似,但不具备其许多特性,比如高速度及跨平台的特性,通过KQEMU这个闭源的加速器,QEMU能模拟至接近真实电脑的速度。
根据冯诺依曼结构,一个计算机可分为:
- 运算器
- 控制器
- 存储器
- 输入设备
- 输出设备
固件下载:https://people.debian.org/~aurel32/qemu/
命令大全:https://wiki.qemu.org/Documentation/Platforms
快速安装使用
如何快速的安装一个IOT测试环境镜像呢?Github上有比较方便的FAT(Firmware Analysis Toolkit )框架可以一键式启动一个镜像供使用方便我们进行漏洞研究,但很长时间我都没有把它给安装好(网友说需要科学上网,还未进行尝试),所以既然反正需要折腾,那就干脆直接折腾QEMU好了。
基础命令:
- -m 指定内存大小
- -M 指定虚拟机器「machine」的类型
- -cpu 指定虚拟CPU的型号
- -smp 指定对称多处理的核心数
- -append 指定内核启动时使用的命令行参数「cmdline」
创建存储器
创建一个16G的虚拟磁盘文件
1 |
|
虚拟硬件环境
- 运算器、控制器 -> CPU、各种加速器*
- 输入、输出设备 -> 网卡、CXL设备等
QEMU本身没有像VMware那样的GUI配置界面,所有配置通过命令行参数指定
1 |
|
现在启动了一个机型为q35,处理器sockets
1插槽cores
4核threads
4线程,-m
内存4096MB,使用默认网络配置的虚拟机,由于没有启动盘,并不会启动某个系统
利用虚拟硬件环境启动系统
我们已经有了一块硬盘drive
作为启动盘,指定给虚拟环境:
1 |
|
会发现,指定后并没有什么区别,是因为这个“硬盘”我们没有给它“安装”系统
安装系统
参考为物理机安装系统:
- 物理机硬盘 -> 虚拟磁盘文件
drive
- 安装媒介(写入了镜像的U盘) -> 系统镜像文件
1 |
|
按照ISO文件的引导进行安装即可,完成后可移除ISO文件重启
案例:模拟一个固件 CVE-2023-20073
下载固件
官网途径
设备中提取(后续补充)
大佬分享(github等平台大佬的分享)
https://software.cisco.com/download/home/286287791/type/282465789/release/1.0.03.29
引用:https://cyan-io.github.io/posts/2023-07-30-qemu-quickstart/