给无线设备固件提供qemu模拟执行和Fuzzing漏洞挖掘的框架
发布时间:2022-08-04 11:43:58 所属栏目:安全 来源:互联网
导读:科学怪人提供了一款虚拟环境来模糊无线固件,可以在运行时hook固件以提取其当前状态。然后,可以在虚拟环境中重新执行它们以进行fuzz。为此,需要将固件映像重新组合为可以用QEMU执行的ELF文件。通过基于Web的UI简化了固件映像的重组。 该工具包含用于配置编
科学怪人提供了一款虚拟环境来模糊无线固件,可以在运行时hook固件以提取其当前状态。然后,可以在虚拟环境中重新执行它们以进行fuzz。为此,需要将固件映像重新组合为可以用QEMU执行的ELF文件。通过基于Web的UI简化了固件映像的重组。 该工具包含用于配置编译的基于Web的UI,这包括符号和内存转储的管理,Makefile和链接脚本由编译系统自动生成。可以通过以下命令启动编译系统,然后将浏览器导航到http://127.0.0.1:8000/ 复制 python3 manage.py runserver 1. 编译系统已经包含符号和初始内存转储,可以浏览可用的项目和转储,而无需实际的硬件,可以使用IDA Pro或Ghidra等。符号会被截断为前1k个符号,因此,如果函数没有立即显示在列表中,请不要担心。 或从Web前端执行它并获得更多信息: Frankenstein:一款用于为无线设备固件提供qemu模拟执行和Fuzzing漏洞挖掘的框架Frankenstein:一款用于为无线设备固件提供qemu模拟执行和Fuzzing漏洞挖掘的框架 附加固件 execute.exeELF文件不会与外界通信。因此,它会终止在 Idle线程中。但是,为了Fuzzing固件,需要将其连接到真实主机并获得随机的无线输入中。 我们提供了一个额外的补丁程序hci_attach.exe,补丁程序抽象了Bluetooth Core Scheduler(BCS)的调用约定。BCS通常从硬件寄存器中获取输入,这些寄存器包含来自物理层的解码数据包。替换bluetoothCoreInt_C每312.5µs(1/2蓝牙时钟周期)调用BCS 的中断处理程序的调用。现在,此中断处理程序正在从Linux主机的标准输入(STDIN)读取数据。可以输入任意输入,即来自/dev/urandom的数据。 复制 cat /dev/urandom | qemu-arm projects/CYW20735B1/gen/hci_attach.exe 1. hci_attach.exe还会在btattach主机上调用命令,该主机是Linux Bluez蓝牙堆栈的一部分。运行此文件后,主机将拥有一个新的蓝牙设备。可以使用hciconfig列出当前设备。将UART数据从仿真设备传递到Linux主机的hook安装在固件函数uart_directWrite和类似函数中。 (编辑:应用网_丽江站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |