offensive-bluetooth-classic について
セキュリティテスター向けのBluetooth Classic攻撃チェックリストです。デバイスの発見、サービス列挙、一般的な露出や脆弱性の確認を扱います。
主な機能
- 01デバイスの発見とSDPサービス列挙
- 02SPP、HID、オーディオプロファイルの評価
- 03KNOBとBlueBorneへの露出確認
- 04デバイスのバージョンと検査結果の記録
活用シーン
- 01産業機器やIoT機器のBluetoothインターフェース監査
- 02旧式機器のペアリングとサービス露出の確認
- 03未修正のBluetooth Classic機器のリスク評価
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ snailsploit/ claude-red --skill offensive-bluetooth-classicインストール後、Claude Code で/offensive-bluetooth-classicを入力して読み込まれたか確認します。
詳細
Bluetooth Classic(BR/EDR)攻撃
BLE より古く、現在では攻撃対象になることは少なくなっていますが、自動車、産業用センサー、オーディオ機器、レガシーな企業向けハードウェアには今も存在します。よく知られた歴史的な攻撃(BlueSnarf、BlueBug)の多くは対策済みですが、未パッチのデバイスに対しては、KNOB と BlueBorne ファミリーが今も有効です。
クイックワークフロー
hcitool/bluetoothctl/redfangでデバイスを検出します- SDP を使って公開されているサービスを列挙します
- 各サービスプロファイルについて、認証なしでアクセスできるかテストします
- ペアリングの暗号化を確認します(KNOB が適用可能か)
- レガシーまたは未パッチのデバイスに対し、近接した物理攻撃を行います
検出
# Modern adapter (built-in or USB Bluetooth 4.0+)
sudo hciconfig hci0 up
sudo hcitool inq # inquiry
sudo hcitool scan --length=12 # 12-second scan
# bluetoothctl interactive
bluetoothctl
> scan on
> devices
# Discoverable-mode-only devices appear; non-discoverable need address brute
sudo redfang -r 00:00:00:00:00:00-FF:FF:FF:FF:FF:FF
# (very slow — ~7 hours per OUI prefix)
サービス検出(SDP)
# List all services on a device
sdptool browse AA:BB:CC:DD:EE:FF
sdptool records AA:BB:CC:DD:EE:FF
よく使われるプロファイルと、それぞれの攻撃との関連性は次のとおりです。
| プロファイル | UUID | 攻撃 |
|---|---|---|
| OBEX Object Push(OPP) | 0x1105 | レガシーな携帯電話に対する BlueSnarf/BlueBug(ほぼ廃れています) |
| OBEX File Transfer(FTP) | 0x1106 | レガシーデバイスのファイルシステムを閲覧/書き込み |
| Headset(HSP/HFP) | 0x1108 / 0x111E | 通話中の音声を盗聴 |
| Serial Port Profile(SPP) | 0x1101 | 産業用/IoT のデバッグポート — 認証なしの場合がよくあります |
| HID | 0x1124 | キーボード/マウスになりすます |
| Audio Sink/Source(A2DP) | 0x110B / 0x110A | 音声の注入/盗聴 |
SPP の悪用
Serial Port Profile(SPP)は、Bluetooth 経由で任意のデータを仮想 COM ポートとしてトンネリングします。産業用/IoT デバイスではデバッグやテレメトリーに使用され、認証がない場合がよくあります。
# Connect to SPP service, channel typically 1
sudo rfcomm bind /dev/rfcomm0 AA:BB:CC:DD:EE:FF 1
sudo screen /dev/rfcomm0 9600
# Then interact with the device's CLI / debug menu
KNOB(CVE-2019-9506)
Bluetooth ペアリングで 1 バイトの暗号化キーがネゴシエートされるように強制し、リンクキーを簡単に総当たりできる状態にします。
# Test with internalblue (requires Broadcom firmware patch)
git clone https://github.com/seemoo-lab/internalblue
internalblue
> log keys
# Patch firmware to allow 1-byte key; pair with target; observe weak key
ほとんどの最新デバイスではファームウェアで対策済みです。次のデバイスには今も有効です。
- 古い Broadcom ベースのデバイス(2019 年以前の BCM チップセット)
- 車載組み込み Bluetooth スタック
- 安価な一般消費者向けオーディオ機器
BlueBorne(CVE-2017-1000251 など)
主要な Bluetooth スタック(Linux BlueZ、Android、Windows、iOS)におけるバッファーオーバーフロー/情報漏えいの脆弱性群です。2017~2018 年にほとんどが修正されましたが、未パッチの組み込み Linux デバイスはよく見られます。
# Armis blueborne-scanner — checks for patch-level
git clone https://github.com/ArmisSecurity/blueborne
python blueborne_scanner.py AA:BB:CC:DD:EE:FF
HID のなりすまし(PoC)
Just Works または脆弱な PIN によるペアリングが成功すれば、HID デバイスとして登録できます。これにより、Bluetooth でペアリング済みの無人ホストにキーストロークを注入できます。
# bdaddr + HID example — register custom HID on rfcomm
hcitool dev
hciconfig hci0 class 0x000540 # HID device class
sdptool add HID
# Use a HID descriptor crafted as keyboard, send keystrokes
音声の盗聴
標的が Bluetooth ヘッドセットをペアリング済みで、現在使用中の場合に、再ペアリング(PIN の総当たりまたは KNOB)ができれば、次のことが可能です。
- HSP/HFP プロファイルで相手側のデバイスになり、音声を受信できます
- ファームウェアによっては、同時に複数の相手側デバイスとの接続が可能です — 接続を妨げずに盗聴できます
エンゲージメント用チートシート
# 1. Discover
sudo hcitool inq
# 2. Enumerate services per device
sdptool browse <MAC>
# 3. SPP (industrial/IoT) — connect and explore
sudo rfcomm bind /dev/rfcomm0 <MAC> 1
sudo screen /dev/rfcomm0 9600
# 4. Patch-level scan
python blueborne_scanner.py <MAC>
# 5. KNOB testing (with adapter that supports internalblue)
internalblue → log keys → re-pair target
# 6. Document profiles, auth state, exposed commands per device
検知
- ほとんどの環境には、Bluetooth Classic 向けのネイティブ IDS がありません
- アクティブな問い合わせは、近くにある Bluetooth 対応の監視機器から確認できます(まれです)
- 標的デバイスで再ペアリングのプロンプトが表示されると、ユーザーに気付かれる場合があります
報告
- デバイスごとにチップセットとファームウェアのバージョンを特定します(多くの場合、サービス記録で確認できます)
- CVE の該当性を確認します(BlueBorne、KNOB、BlueFrag など)
- 具体的なプロファイルの悪用を記録します(認証なしで公開されている SPP、HID のなりすましに成功した事例など)
主な参考資料
- internalblue: github.com/seemoo-lab/internalblue
- KNOB attack: knobattack.com
- BlueBorne: armis.com/blueborne
- Bluetooth Core Spec — Volume 2(BR/EDR Controller)
- 出典: https://github.com/SnailSploit/offensive-checklist/blob/main/wireless.md