用途:面向 BLE(蓝牙低功耗)设备的安全评估与渗透测试方法论。许多 BLE 设备把链路本身当作信任边界,将特权操作暴露在任意邻近设备可读写的 characteristic 上,该技能用于系统化枚举与验证这类问题。
主要能力: 一是 GATT 枚举。BLE 通过 GATT 组织服务、特征值与描述符;16 位 UUID 为 SIG 定义服务(如电量、心率),128 位 UUID 多为厂商自定义,是专有命令所在。可使用 bettercap(ble.recon on、ble.enum <MAC>)、bluetoothctl(scan on、connect、menu gatt、list-attributes)、gatttool(-I、primary、char-desc、char-read-uuid、char-write-req)进行发现与枚举,gatttool 已弃用但仍可用。 二是未授权读写测试。对标记为可读/可写/通知的特征值逐个探测,示例:for h in $(gatttool -b <MAC> --primary | awk '{print $5}'); do echo "=== Handle $h ==="; gatttool -b <MAC> --char-read --handle=$h; done,以及 gatttool -b <MAC> --char-write-req --handle=0x0010 --value=0x01。常见发现包括门锁开锁特征值接受任意写入、智能灯泡亮度/颜色可被任意对端写入、可穿戴设备可读 PIN/锁状态、信标可被任意对端配置。 三是配对方式识别与利用。Just Works 无认证、可被简单中间人;Numeric Comparison 需用户确认六位码,密码学较强;Passkey Entry 部分变体的 passkey 可被爆破;OOB 不在此攻击范围内。LE Legacy Pairing 的 TK 推导在捕获配对交换后可被破解,LE Secure Connections(4.2+)使用 ECDH,若不强制 Just Works 则较强。嗅探可用 Sniffle(-c 37,38,39 -o pairing.pcap)或 Ubertooth,再用 crackle 解密;Just Works 的 LE Legacy Pairing 可在数秒内恢复 LTK,而 LE Secure Connections 无法恢复。配对期间可借助 mirage-action-with-mitm 或 btproxy 做中继式中间人。 四是配套 App 逆向。通过 adb pull 取得 APK,用 jadx 反编译,检索 writeCharacteristic / GATT_CHARACTERISTIC,比对应用写入字节与空口观测值,以还原厂商自定义命令格式。
适用场景:智能锁、手机即钥匙的汽车(含中继攻击)、医疗设备(如遥测使用未认证 GATT,部分可远程配置)、iBeacon/Eddystone 信标(常见默认密码如 0000、12345678)等 BLE 设备类别的测试,以及参与方自查与加固前评估。
限制与注意:BLE 缺少类似 Wi-Fi WIDS 的原生入侵检测;厂商云侧异常特征值模式检测较罕见;多次 Just Works 提示可能引发用户怀疑。医疗设备等涉及安全披露时需谨慎协调。具体到各设备类别的可用性、收费方式、平台支持与效果资料暂未提供。