关于 attacking-hardware-interfaces
面向获准开展的嵌入式设备物理安全评估,涵盖板级接口发现、固件获取与调试访问,以及安全启动和亚 GHz 重放风险分析。
主要功能
- 01识别 UART、JTAG/SWD 和闪存接口
- 02通过 UART 或引导程序访问控制台
- 03读取 SPI/I2C 闪存中的固件
- 04评估安全启动与熔丝设置
- 05研究亚 GHz 重放可行性
适用场景
- 01对可接触的嵌入式设备开展审计
- 02检查调试端口是否可读取固件或控制设备
- 03评估绕过安全启动的可行性
- 04在实验室判断遥控器使用固定码还是滚动码
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ trilwu/ secskills --skill attacking-hardware-interfaces安装后在 Claude Code 中输入/attacking-hardware-interfaces确认已加载。
详细介绍
攻击硬件接口
物理访问会改变局面:厂商以为是私有的调试端口、闪存芯片和启动过程,现在都触手可及。工作重点是找到板上的接口,利用它们获取 Shell 或转储固件,并判断设备的安全启动和 RF 设计是否真的可靠。这里几乎所有操作都需要拿到设备,并获得拆机许可。
适用场景
- 你可以接触嵌入式设备或 PCB,需要找到其调试、串口或闪存接口
- 获取 UART 控制台或 root Shell、中断引导加载程序,或通过 JTAG/SWD 暂停 CPU
- 从 SPI/I2C 闪存芯片转储固件以供分析
- 评估安全启动/信任链设计是否可能被绕过
- 在实验室研究亚 GHz RF 重放攻击的可行性(固定码还是滚动码)
不适用场景
- 分析已转储的固件——提取、文件系统提取、二进制分析——适用
analyzing-firmware-images;此技能负责从设备中读取数据,再交由该技能处理。 - Wi-Fi 攻击——适用
attacking-wireless-networks。 - 专门针对 Bluetooth/BLE 和 NFC/RFID 的攻击——适用
attacking-bluetooth-nfc。 - 逆向分析从设备中提取的特定二进制文件——适用
analyzing-binaries。
查找接口
电路板通过未标记的测试焊盘和排针暴露出的接口比预期更多:
- UART。 最常见的突破口——串行控制台,通常是引导加载程序提示符或 root Shell。用万用表和逻辑分析仪识别四条线路(TX、RX、GND、VCC),然后连接 USB-TTL 适配器(FTDI/CP2102),并使用
screen/minicom/picocom打开控制台。如果波特率不明显,就进行检测(115200 很常见)。 - JTAG / SWD。 完整的调试访问权限——暂停 CPU、读写内存和寄存器、转储固件、打补丁。识别引脚排列(JTAGulator 可以暴力探测),并使用适配器(Bus Pirate、J-Link、Black Magic Probe)通过 OpenOCD 操作。
- SPI / I2C 闪存。 固件存储在外部闪存芯片上,可以直接读取——夹上 SOIC8 测试夹,再通过 CH341A 或 Bus Pirate 使用 flashrom 转储芯片;可以在板读取,也可以先拆下芯片再读取。
- 逻辑分析仪(Saleae,或搭配廉价硬件使用 sigrok/PulseView),可在协议或引脚排列未知时识别并解码上述任意接口。
将接口转化为访问权限
- UART → Shell。 许多设备会直接进入 root Shell 或需身份验证的控制台。如果不行,可以中断引导加载程序(U-Boot 通常会响应按键),修改内核命令行——进入单用户模式或启动 Shell(
init=/bin/sh)是常见且影响重大的绕过方式。 - JTAG → 固件和控制权。 暂停设备并转储闪存/RAM、读取机密信息,或修补检查逻辑。若生产设备上的 JTAG 仍处于启用状态,就能完全攻破设备的软件防护。
- 闪存转储 → 固件。 SPI 转储本身就是固件映像;将其交给
analyzing-firmware-images进行提取和分析。即使 UART 和 JTAG 已锁定,这种方式仍然有效。
安全启动与故障注入
评估信任链是否真正可靠:
- 信任链。 ROM 验证引导加载程序,后者验证内核,以此类推。漏洞通常出现在某个未经验证的环节——未签名的阶段、调试路径,或可以跳过的检查。
- 熔丝/锁定位。 生产设备是否真的烧写了 JTAG 禁用和安全启动熔丝,是常见的疏漏;熔丝未烧写就能重新开放调试端口。
- 故障注入(毛刺攻击)。 电压或时钟毛刺(使用 ChipWhisperer 类工具)可以在特定指令处跳过签名检查或比较操作。这属于高级技术,且往往是绕过正确实现的安全启动的唯一途径;应将其作为可行性研究,而非保证能成功的方案。
RF 重放可行性(SDR)
对于亚 GHz 无线电设备(如工作在 315/433/868/915 MHz 等 ISM 频段的遥控器、传感器和报警器):
- 使用 RTL-SDR(仅接收)和 Universal Radio Hacker 或 GNU Radio 接收并分析信号——捕获信号,恢复调制方式和编码。
- 安全问题的关键在于代码是固定码还是滚动码。 固定码很容易重放;滚动码(KeeLoq 式)会在每次按下时改变,可抵御简单重放。确定目标设备使用哪种代码——这就是要得出的结论。
- 使用 HackRF 或类似设备发射信号时,必须遵守法律:只能在屏蔽箱/射频隔离实验室内发射,绝不能在未获许可的频段上空中发射。应将主动射频测试作为实验室可行性研究,因为真实发射无法局限于目标设备。
范围与授权
本技能假设设备归你所有,或你已获得明确授权,可以打开并修改设备——拆开硬件可能造成破坏,也可能违背所有者在意的预期,因此应将此事项纳入书面授权范围。以下两点不可逾越:
- 射频发射受到监管。 接收通常是被动行为;在需许可或安全关键频段上发射既涉及法律,也涉及安全。主动射频操作应限定在屏蔽实验室内,并将频谱法规视为不可争辩的约束。
- 物理修改可能导致设备变砖。 芯片拆卸、故障注入和引导加载程序更改可能无法恢复。开始前,请确认所有者接受对指定设备造成此类风险。
应当驳斥的合理化借口
- “没有标注的调试接口,所以无法调试。” UART 和 JTAG 经常会连接到未标注的测试焊盘。在认定接口不存在之前,先用万用表和逻辑分析仪探测。
- “闪存已加密/锁定,所以无法获取固件。” 尝试其他途径——UART 引导加载程序、已启用的 JTAG,或未熔断的熔丝,通常都能绕过锁定的闪存。
- “已启用安全启动,所以启动链是安全的。” 已启用不代表完整。检查每个环节是否存在未签名阶段、调试途径或未熔断的熔丝——故障注入也可能直接跳过检查。
- “我直接发射信号来测试遥控器。” 空中发射受到监管,也可能影响安全系统。主动射频操作应在屏蔽实验室内进行,否则就只做接收和分析。
- “滚动码意味着不可能重放,事情结束了。” 确认它确实是滚动码且实现正确;明确是固定码还是滚动码本身就是交付成果,而弱滚动码方案也有自身缺陷。
参考资料
analyzing-firmware-images— 分析从设备中转储的固件attacking-bluetooth-nfc— BLE 和 NFC/RFID 射频攻击面attacking-wireless-networks— Wi-Fianalyzing-binaries— 逆向分析从设备中提取的特定二进制文件maintaining-engagement-state— 记录物理访问和不可逆更改
评论
支持 Markdown