Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
cve-2019-6260 — 针对ASPEED BMC AHB接口的低级硬件调试与安全评估工具。探测PCIe、LPC和UART接口,读取/写入固件、RAM和BMC内存,用于平台安全测试。 | Kitploit
工具/GitHubGitHub/nikitapbst/cve-2019-6260
嵌入式系统安全漏洞分析漏洞利用硬件黑客渗透测试硬件安全二进制分析固件分析
GitHubnikitapbst/cve-2019-6260

cve-2019-6260

针对ASPEED BMC AHB接口的低级硬件调试与安全评估工具。探测PCIe、LPC和UART接口,读取/写入固件、RAM和BMC内存,用于平台安全测试。

查看仓库
615年前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

ASPEED BMC AHB 接口的测试与调试工具

警告

如果你尚未理解该工具在你目标机器环境中的行为,请勿使用此工具。

此工具会操作你机器的底层硬件和固件接口。特别是,探测行为意味着如果目标设备并非我们所期望的设备,则后果不确定。

使用此工具可能导致目标机器不稳定、崩溃或严重故障。

简介

ASPEED BMC 有几种隐式的操作模式:

  1. 开发模式:BMC / 主机固件启动
  2. IO扩展模式:BMC 不运行专用固件
  3. 预配置模式:BMC 运行专用固件

为支持模式1和2,BMC 在其多个从接口上暴露了功能,允许主机访问 BMC 并在其物理地址空间中执行任意操作。

这些重要接口挂接在 PCIe 和 LPC 总线上,因为在一个给定的平台设计中,两者可能都没有连接到主机 CPU。

模式3也通常被使用,但对于 AST2400 和 AST2500,硬件在冷启动时配置为模式1和2。因此,BMC 固件开发人员有责任确保所有接口在需要维护 BMC 静态数据和运行时环境的机密性、完整性和可用性时得到安全保护。

接口

  • PCIe VGA P2A:一个 PCIe MMIO 接口,通过 64kiB 滑动窗口提供任意 AHB 访问

    • 可以在 SCU 中配置写过滤器,以保护粗粒度 AHB 区域的完整性。默认情况下,写过滤器未启用(所有 AHB 区域可写)。
  • iLPC2AHB:提供任意 AHB 访问的 SuperIO 逻辑设备

    • 在 LPC 控制器中暴露了一个覆盖整个 AHB 的写过滤器。默认情况下,写过滤器未启用(AHB 可写)。
  • 调试 UART:一个硬件提供的 UART 调试 shell,具有任意 AHB 访问能力

    • 可用在 UART1 或 UART5 之一
  • X-DMA:任意 M-Bus 访问

  • PCIe BMC 设备:一组固定的 PCIe MMIO 接口,通过 4kiB 窗口提供受限的 AHB 访问

  • LPC2AHB:BMC 控制的 LPC FW 周期到 AHB 的映射

工具特性

  • 目前支持使用 P2A、iLPC2AHB、LPC2AHB 和调试 UART 接口

  • 探测所有接口在任何可用接口上的可用性

    • 可选根据机密性和完整性要求设置退出状态。适合集成到平台安全测试套件中。
  • 主机到 BMC 的带内控制台

  • 主机从运行的 BMC 中刷新或转储固件

    • BMC CPU 在闪存操作开始前立即时钟门控,并在闪存操作完成后 SoC 复位前立即取消门控。
  • 读写 BMC RAM

  • 也支持 Linux /dev/mem 接口,用于在 BMC 本身上执行

编译

该工具可编译为多种架构,至少以下架构已测试通过:

  • x86_64
  • powerpc64, powerpc64le
  • armv6

构建只需执行 make,交叉编译通过在 make 环境中设置 CROSS_COMPILE 进行,例如:

root@kitploit:~
$ make CROSS_COMPILE=powerpc64le-linux-gnu-

执行与示例输出

root@kitploit:~
$ ./doit
Not enough arguments
Usage:

./doit probe [INTERFACE [IP PORT USERNAME PASSWORD]]
./doit ilpc read ADDRESS
./doit ilpc write ADDRESS VALUE
./doit p2a vga read ADDRESS
./doit p2a vga write ADDRESS VALUE
./doit debug read ADDRESS INTERFACE [IP PORT USERNAME PASSWORD]
./doit debug write ADDRESS VALUE INTERFACE [IP PORT USERNAME PASSWORD]
./doit devmem read ADDRESS
./doit devmem write ADDRESS VALUE
./doit console HOST_UART BMC_UART BAUD USER PASSWORD
./doit read firmware
./doit read ram
./doit write firmware
./doit replace ram MATCH REPLACE
./doit reset TYPE [INTERFACE [IP PORT USERNAME PASSWORD]]
./doit sfc fmc read ADDRESS LENGTH [INTERFACE [IP PORT USERNAME PASSWORD]]
./doit sfc fmc erase ADDRESS LENGTH [INTERFACE [IP PORT USERNAME PASSWORD]]
./doit sfc fmc write ADDRESS LENGTH [INTERFACE [IP PORT USERNAME PASSWORD]]
root@kitploit:~
$ ./doit probe --require confidentiality digi,portserver-ts-16 <IP> <PORT> <USER> <PASSWORD>
Connecting to Digi Portserver TS 16 at <IP>:23
Logging into Digi Portserver TS
Configuring binary mode on port 4
Resetting port 4
Connecting to BMC console at <IP>:2104
Entering debug mode
Initialised Debug UART AHB interface
Performing interface discovery via Debug UART
Exiting debug mode
Have SuperIO: Yes
iLPC2AHB Bridge: Read-only
Have VGA PCIe device: Yes
Have MMIO on VGA device: Yes
P2A write filter state:
0x00000000-0x0fffffff (Firmware): Read-write
0x10000000-0x1fffffff (SoC IO): Read-write
0x20000000-0x3fffffff (Flashes): Read-write
0x40000000-0x5fffffff (Reserved): Read-write
0x60000000-0x7fffffff (LPC Host): Read-write
0x80000000-0xffffffff (DRAM): Read-write
Have X-DMA on VGA device: Yes
Have BMC PCIe device: No
X-DMA is unconstrained: No
Have debug UART: Yes
Debug UART enabled on: UART5
$ echo $?
1
$
下载工具