CVE-2023-45866漏洞全解析: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-2023-45866、CVE-2024-21306和CVE-2024-0230等多个蓝牙漏洞的PoC(概念验证)脚本。本文将深入解析CVE-2023-45866漏洞的原理、影响范围及攻击演示,帮助普通用户了解蓝牙设备面临的安全风险并掌握防护方法。
什么是CVE-2023-45866漏洞?
CVE-2023-45866是一个影响多种操作系统的蓝牙键盘注入漏洞,攻击者可利用该漏洞在无需用户确认的情况下,强制将虚拟蓝牙键盘与目标设备配对并注入恶意 keystrokes。这种攻击方式被称为"Hi, My Name is Keyboard",因其利用了蓝牙设备配对过程中的安全缺陷,允许攻击者伪装成合法键盘设备。
漏洞原理简析
该漏洞的核心在于蓝牙HID(人机接口设备)协议在配对过程中的认证机制缺陷:
- 当目标设备的蓝牙处于可发现状态时,攻击者可发送伪造的HID设备信息
- 利用特定的配对请求序列绕过用户确认步骤
- 成功配对后即可模拟键盘输入,执行打开浏览器、输入命令等操作
受影响的设备与系统版本
CVE-2023-45866漏洞影响范围广泛,包括多种主流操作系统和设备:
移动设备
- Android:4.2.2至14版本(2023年12月5日安全补丁前)
- Pixel 6/7/8系列已修复,Pixel 5及更早机型仍受影响
- iOS:16全版本(无修复计划),17.0-17.1版本(17.2已修复)
桌面系统
- Linux:使用BlueZ 5的主流发行版(Ubuntu、Debian、Fedora等)
- 2023年12月前后的补丁已修复该漏洞
- macOS:12、13全版本(无修复计划),14.0-14.1版本(14.2已修复)
- Windows:存在类似漏洞,详细信息可参考windows-report.md
漏洞攻击演示
Linux系统攻击演示
在Linux系统中,当蓝牙设置面板打开时,设备通常处于可发现和可连接状态,这为攻击提供了机会。攻击者可使用keystroke-injection-android-linux.py脚本实施攻击:
攻击步骤
- 攻击者运行PoC脚本,指定目标设备蓝牙地址和本地蓝牙接口
./keystroke-injection-android-linux.py -i hci1 -t 58:28:39:E6:AE:1C - 脚本自动配置蓝牙适配器,模拟合法键盘设备
- 绕过配对确认流程,成功建立连接
- 注入Tab键击10秒钟,干扰用户正常操作
macOS系统攻击演示
macOS的攻击利用了Magic Keyboard与Mac配对的时机窗口,当用户拔下已配对的Magic Keyboard时,Mac会尝试重新连接蓝牙键盘,此时攻击者可伪装成目标键盘:
攻击特点
- 需要精准把握Mac尝试连接键盘的时机
- 可注入更复杂的指令,如打开浏览器并执行搜索
- 利用keystroke-injection-macos.py脚本实现
./keystroke-injection-macos.py -i hci1 -t 50:DE:06:A8:E1:CA -k 1C:57:DC:88:55:02
如何检测与防护?
漏洞检测方法
- 检查系统版本:确认设备是否在受影响版本范围内
- 安全补丁状态:
- Android:检查"设置 > 安全 > 安全更新"
- iOS/macOS:检查"设置 > 通用 > 软件更新"
- Linux:运行
sudo apt update && sudo apt upgrade检查安全更新
实用防护措施
日常使用建议
- 关闭不必要的蓝牙:不使用蓝牙时及时关闭
- 谨慎配对设备:只配对信任的设备,及时删除不再使用的配对
- 注意蓝牙可见性:在公共场合避免设置为"对所有人可见"
系统加固方法
- 启用蓝牙安全模式:部分设备支持"仅配对设备可连接"选项
- 安装安全更新:及时应用系统厂商发布的安全补丁
- 使用USB键盘:在高安全需求场景下,优先使用有线连接
漏洞PoC脚本解析
项目提供了多个平台的漏洞验证脚本,主要包括:
核心注入脚本
- keystroke-injection-android-linux.py:适用于Android和Linux系统
- keystroke-injection-macos.py:针对macOS系统
- keystroke-injection-ios.py:iOS设备专用脚本
依赖安装
所有脚本需要在Ubuntu 22.04环境下运行,依赖安装命令:
# 更新系统 sudo apt-get update && sudo apt-get -y upgrade # 安装基础依赖 sudo apt install -y bluez-tools bluez-hcidump libbluetooth-dev \ git gcc python3-pip python3-setuptools python3-pydbus # 安装pybluez git clone https://github.com/pybluez/pybluez.git cd pybluez && sudo python3 setup.py install总结与展望
CVE-2023-45866漏洞揭示了蓝牙设备在配对认证机制上的根本性安全缺陷,这种"零点击"攻击方式对普通用户构成了严重威胁。虽然主流操作系统已发布补丁,但大量旧设备仍处于风险之中。
作为用户,我们应提高蓝牙安全意识,采取必要的防护措施;作为开发者,需重新审视蓝牙设备的认证流程。未来随着物联网设备的普及,蓝牙安全将面临更大挑战,需要行业共同努力构建更安全的无线连接生态。
通过Hi, My Name is Keyboard项目提供的PoC脚本,安全研究者可以更深入地理解蓝牙漏洞原理,推动更安全的蓝牙协议实现。普通用户也能通过本文了解漏洞风险,保护自己的设备安全。
【免费下载链接】hi_my_name_is_keyboard项目地址: https://gitcode.com/gh_mirrors/hi/hi_my_name_is_keyboard
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考