探索PCI Express的DIY黑客工具箱:PCI-E攻防新纪元
本文将向您介绍一个令人兴奋的开源项目——PCI Express DIY黑客工具包,这是一个基于Xilinx SP605评估套件的软件可控PCI-E gen 1.1终端设备设计。这个工具集不仅提供了对PCI-E总线交易级数据包(TLP)的直接操作,还展示了如何利用DMA攻击进行高级安全研究和逆向工程。
1. 项目介绍
该项目包含了FPGA设计以及一系列Python工具,允许用户在Xilinx SP605板上构建一个能控制PCI-E总线并执行全64位内存读写的软硬件平台。此外,它特别关注了两种预启动DMA攻击场景:针对UEFI系统的攻击和针对Windows操作系统及Hyper-V的VM逃逸攻击。
2. 项目技术分析
该设计基于Spartan-6 FPGA,创建了一个软件可配置的PCI-E gen 1.1终端设备,利用MicroBlaze软处理器核心与FPGA内的PCI Express集成端点模块交互。通过网络连接,Python库pcie_lib.py
提供了对TLP层的低级别和高级别接口,便于从Python代码中操控PCI-E总线。
3. 应用场景
- 安全审计:使用
pcie_mem_scan.py
扫描主机以识别通过PCI-E访问的安全漏洞,尤其是在IOMMU启用的系统中。 - 逆向工程:通过
uefi_backdoor_simple.py
注入虚拟设备驱动程序来研究UEFI启动过程。 - 系统入侵:
uefi_backdoor_hv.py
可用于植入Hyper-V VM退出处理回门,从客体分区向主机发起攻击。 - 恶意软件开发:
uefi_backdoor_boot.py
演示如何利用预启动DMA攻击在系统启动时注入恶意代码,实现Boot Backdoor功能。
4. 项目特点
- 灵活性:设计兼容多种Xilinx平台,如ZC706,也可用于M.2插槽的独立硬件植入。
- 定制性:Python API允许开发者创建自定义的攻击策略或防御机制。
- 实用性:提供实用工具如Boot Backdoor和Hyper-V Backdoor,可直接应用于安全研究或漏洞利用。
- 教育价值:为学习PCI-E协议、DMA攻击和嵌入式系统安全提供了极好的实践环境。
总之,这个开源项目为安全研究人员和计算机工程师提供了一种独特而强大的工具,用于探索系统底层的安全边界。无论是为了理解潜在威胁还是开发新的防御措施,这个PCI-E DIY黑客工具包都是一个值得尝试的宝贵资源。如果你对PCI-E安全或者DMA攻击有兴趣,不妨现在就动手试试吧!