本概念验证(PoC)旨在验证于2019年8月27日编译的U-Boot引导加载程序1.1.3版本中的漏洞。代码实现了与OWASP物联网安全测试指南(ISTG)分类相关的五种不同漏洞。
警告: 请仅在获得测试许可的设备上使用此PoC。在未授权系统上使用可能违反适用法律。
# 安装所需库
pip install pyserial cryptography
要使用此PoC,需要连接到目标设备的串行接口:
/dev/ttyUSB0,Windows下的COM3)该脚本提供多种操作模式,可单独测试每个漏洞或一次性测试所有漏洞。
python3 uboot_exploit_poc.py --port /dev/ttyUSB0
可以使用--exploit参数运行特定漏洞:
# 测试“不安全更新机制”漏洞
python3 uboot_exploit_poc.py --port /dev/ttyUSB0 --exploit 1
# 测试“硬编码敏感值”漏洞
python3 uboot_exploit_poc.py --port /dev/ttyUSB0 --exploit 2
# 测试“调试接口访问”漏洞
python3 uboot_exploit_poc.py --port /dev/ttyUSB0 --exploit 3
# 测试“对固件降级无保护”漏洞
python3 uboot_exploit_poc.py --port /dev/ttyUSB0 --exploit 4
# 测试“更新缺少安全通道”漏洞
python3 uboot_exploit_poc.py --port /dev/ttyUSB0 --exploit 5
# 修改波特率(默认:115200)
python3 uboot_exploit_poc.py --port /dev/ttyUSB0 --baudrate 57600
# 修改串行超时时间(默认:1秒)
python3 uboot_exploit_poc.py --port /dev/ttyUSB0 --timeout 2
脚本将创建一个名为uboot_extracted的目录,其中包含:
文件full_exploitation_summary.txt提供了所有漏洞测试的完整摘要。
引导加载程序缺乏对固件更新的正确签名验证,允许安装未授权的固件。
敏感值(如凭据和密钥)被硬编码在引导加载程序二进制文件中,允许提取敏感信息。
调试接口保护不足,允许在无需身份验证的情况下访问底层系统控制。
引导加载程序缺少反回滚机制,允许降级到存在已知漏洞的版本。
固件更新通过不安全通道传输,无加密或身份验证,允许拦截和修改。
此PoC收集的证据可用于支持CVE提交。对于CVE提交:
uboot_extracted目录中的所有日志和证据本工具仅供教育和专业安全测试使用。作者不承担因误用或滥用本工具造成的任何责任。在测试任何系统或设备前,请务必获得适当授权。