Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
Whisper_Bully — 3段階のBluetooth BDADDR抽出、Fast Pairデバイスに対するDoSおよびハイジャック;CVE-2025-36911の範囲外にある未パッチのプリミティブ(Ubertooth不要) | Kitploit
ツール/GitHubGitHub/ymsniper/whisper_bully
偵察Bluetoothセキュリティエクスプロイト情報収集ワイヤレスセキュリティペネトレーションテストレッドチーミング
GitHubymsniper/whisper_bully

Whisper_Bully

3段階のBluetooth BDADDR抽出、Fast Pairデバイスに対するDoSおよびハイジャック;CVE-2025-36911の範囲外にある未パッチのプリミティブ(Ubertooth不要)

リポジトリを見る
341102ヶ月前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

Whisper Bully

Bluetooth BDADDR抽出・サービス妨害(DoS)・ハイジャック調査ツール

© 2026 @Ymsniper — 許可を得たセキュリティ研究のみを目的としています。


概要

Whisper Bully は、Google Fast Pair(サービス UUID fe2c)をアドバタイズするデバイスを標的とする 3 段階構成の Bluetooth セキュリティ調査ツールです。CVE-2025-36911 ファームウェアパッチの範囲外となる 2 つの未パッチの攻撃プリミティブを実証します:

  • 未パッチの BDADDR 漏えい — プレーンな BLE 接続経由で恒久的な ID アドレスが開示されます。GATT のやり取りは不要で、完全にパッチ適用済みのデバイスでも機能します
  • リセットウィンドウを介した SMP 認証バイパス — L2CAP フラッド後の BT スタック復旧中に、標準の SMP Just Works を通じて永続的なボンドが確立されます。Fast Pair の GATT ハンドシェイクは一切不要です

⚠️ このツールは Whisper Pair(Fast Pair GATT)プロトコルを実装していません。 Key-Based Pairing キャラクタリスティック(UUID 1236)や Account Key キャラクタリスティック(UUID 1238)への書き込みは一切行いません。ここで説明する攻撃面は、CVE-2025-36911 のペアリングモードチェックパッチでは対処されておらず、別個のものです。


https://github.com/user-attachments/assets/67f2bcb6-38ad-4ba0-80c5-36dbb54f3f11


攻撃段階

ステージ 1 — BDADDR 抽出(未パッチの情報漏えい)

根本原因: BLE 接続が確立されると、Linux BlueZ ホストスタックは LL_CONNECTION_COMPLETE イベントを処理し、デバイスの Resolvable Private Address(RPA)を恒久的な ID アドレスに解決して、BlueZ デバイステーブルにキャッシュします。これは GATT サービスのやり取りより前に、リンク層 / HCI レベルで発生します。Fast Pair プロトコルは関与しません。

コードが実際に行うこと:

  1. Fast Pair サービス UUID fe2c をアドバタイズするデバイスをアクティブ BLE スキャン(BleakScanner)で検出します — ターゲット識別にのみ使用され、プロトコルのやり取りはありません
  2. BleakClient.connect() でプレーンな BLE 接続を確立します — いかなる種類の GATT 書き込みも行いません
  3. ステップ 4 に備えて BlueZ エージェントを NoInputNoOutput に設定します
  4. ターゲットに Fast Pair GATT サービスが存在するか確認します — このチェックは参考のみです。結果に関係なくツールは続行します(wb.py の 452 行目)
  5. bluetoothctl pair <rpa_addr> を実行します — Fast Pair ではなく、標準の Bluetooth SMP ペアリング試行です
  6. bluetoothctl の標準出力で Bonded: yes を監視します。ボンドされたアドレスが含まれる場合があります
  7. 主なフォールバック: bluetoothctl devices を呼び出し、最初の RPA と比較します — 同じデバイス名で異なるアドレスのエントリが、ステップ 2 で BlueZ が漏えいさせた恒久的な ID アドレスです

なぜパッチで修正されないのか:

CVE-2025-36911 のファームウェア修正は、アクセサリ側の Fast Pair GATT Key-Based Pairing キャラクタリスティックハンドラにペアリングモードチェックを追加します。このツールはそのキャラクタリスティックに書き込むことはありません。ID アドレスの漏えいは、攻撃者の Linux ホスト上で BlueZ 自身のデバイスキャッシュを介して発生します — アクセサリのファームウェアの外部で完全に発生します。

重要な動作メモ:

  • bluetoothctl pair ステップが失敗またはタイムアウトしても、抽出は成功し得ます
  • ステップ 4 の FP GATT サービス存在チェックは攻撃を妨げません
  • PIN 確認ウィンドウは表示されません — NoInputNoOutput は Just Works で両側のユーザー操作が不要であることを意味します

ステージ 2 — L2CAP フラッド(EMP バースト再接続モード)

恒久的なアドレスが判明したら、変更版の l2flood を使用して持続的な L2CAP サービス妨害攻撃を任意で実行します。

ツール全体で 2 つのモードが使用されます:

-R フラグ — EMP モード(ステージ 2 フラッド) サイレントな fire-and-forget バースト再接続です。すべてのスレッドが connect → burst → 強制クローズのサイクルを同期させ、ターゲットが吸収できるずらした L2CAP チャネルシャッフルではなく、定期的な ACL 全体のティアダウンを受信するようにします。毎回のクローズで即時の RST ティアダウンに SO_LINGER {1,0} を使用します。通常動作中は stdout に出力しません — 接続エラーは stderr に抑制され、定期的にのみ表示されます。

通常モード(ステージ 3 ハイジャックプローブ) -R なしで使用し、ターゲットがまだ応答しているかをプローブします。このモードも改良されており、再接続を自動処理し、ターゲットが応答を停止すると no response from <addr>: id N を出力します。これが wb.py がハイジャックをトリガーするために監視する出力です。

結果: フラッドがアクティブな間、ターゲットデバイスは通常の接続試行に応答しなくなります。攻撃を停止するとデバイスは完全に復旧します — 永続的な損傷はありません。

マルチスレッド動作:

  • 各バーストサイクル後にスレッドが同期し、圧力がターゲットに同時に加わります
  • 一般的なハードウェアでは最大約 16 スレッドまで効果的です。それ以上は効果が逓減します
  • 圧力を高めるため、複数の HCI アダプタを同時に使用できます

ステージ 3 — リセットウィンドウ中の SMP Just Works によるハイジャック(未パッチの認証バイパス)

根本原因: 持続的な L2CAP フラッドにより、ターゲットデバイスの Bluetooth スタックがクラッシュまたはリセットします。復旧ウィンドウ中 — Fast Pair GATT サービスが再登録される前、かつ Security Manager が完全に再初期化される前 — デバイスは、通常ボンドをゲートする Fast Pair GATT ハンドシェイクを必要とせずに、NoInputNoOutput からの標準的な SMP Just Works ボンドを受け入れます。結果として得られるボンドは永続的です。BT アダプタのリセット後も存続し、bluetoothctl info で Paired: yes / Bonded: yes と表示されます。

なぜこれが CVE-2025-36911 とは別の発見なのか:

CVE-2025-36911 パッチは、FP GATT Key-Based Pairing キャラクタリスティックハンドラでペアリングモードチェックを強制します。ステージ 3 はそのキャラクタリスティックに一切触れません。ボンドは、FP GATT サーバーが再初期化されていないウィンドウ中に SMP 層で確立されるため、Fast Pair セキュリティゲートに到達することすらありません。完全にパッチ適用済みのデバイスでも、パッチはスタック復旧中の SMP 層を認識できないため、この攻撃に対して脆弱なままです。

コードが実際に行うこと:

  1. L2CAP プローブ(l2flood -c -1 -t 2)を送信してデバイスが応答しないことを確認します — 出力の no response from <addr>: id N を探します
  2. 応答なしの状態が確認されたら、再試行ループで bluetoothctl connect <permanent_addr> を実行します
  3. SMP が NoInputNoOutput / NoInputNoOutput → Just Works アソシエーションモデルをネゴシエートし、ボンドが完了します
  4. 成功すると bluetoothctl connect は終了コード 0 を返します
  5. 攻撃停止後もボンドは存続します

デバイスの状態別の成功確率:

デバイスの状態期待される結果
フラッド中 / 応答なし最も高い成功率 — 復旧中はスタックが劣化状態
フラッドからの復旧中高い成功率 — SM 再初期化の一時的なウィンドウ
完全に復旧成功率は低い — 通常のセキュリティが復元済み
電源オフ失敗

CVE-2025-36911 との関連

CVE-2025-36911(WhisperPair)このツール
使用プロトコルFast Pair GATT KBP(UUID 1236 書き込み)なし — プレーンな BLE 接続のみ
BDADDR 漏えい経路暗号化 KBP 通知(BR/EDR アドレス)LL_CONNECTION_COMPLETE 時の BlueZ RPA 解決
認証バイパス経路FP ペアリングモードチェックの欠如BT スタック復旧ウィンドウ中の SMP Just Works
36911 修正でパッチ適用?はいいいえ
パッチ適用済みデバイスで動作?いいえはい
CWECWE-287CWE-200(ステージ 1)+ CWE-362/CWE-287(ステージ 3)

⚠️ 法的警告

これはサービス妨害および不正アクセス調査ツールです。

所有していないデバイス、または明示的な書面による許可がないデバイスに対してこのツールを使用することは、Computer Fraud and Abuse Act(18 U.S.C. § 1030)および他の法域の同等の法律に基づき、禁固刑および罰金が科せられる連邦犯罪です。

このツールは以下のデバイスにのみ使用できます:

  • 自分が個人的に所有するデバイス
  • セキュリティテストの実施について所有者から明示的な書面による許可を得ているデバイス

要件

  • Linux(Ubuntu 20.04+ でテスト済み)
  • ルート権限(bluetoothctl と生の BLE アクセスに必要)
  • bluetoothctl / BlueZ がインストールされ機能していること
  • Python 3.7+
  • ステージ 2/3 用: OpenMP 対応の l2flood — kovmir/l2flood を参照

インストール

システム依存パッケージ

Ubuntu / Debian:

sudo apt update
sudo apt install -y python3 python3-pip libdbus-1-dev libglib2.0-dev bluez

Fedora / RHEL / CentOS:

sudo dnf install -y python3 python3-pip dbus-devel glib2-devel bluez

Arch Linux:

sudo pacman -S python python-pip dbus glib bluez

Alpine Linux:

apk add --no-cache python3 py3-pip dbus-dev glib-dev bluez bluez-openrc

openSUSE:

sudo zypper install -y python3 python3-pip dbus-1-devel glib2-devel bluez

Void Linux:

sudo xbps-install -S python3 python3-pip dbus-devel glib-devel bluez

クローンとインストール

git clone https://github.com/Ymsniper/Whisper_Bully.git
cd Whisper_Bully
pip3 install -r requirements.txt
# Required for Stage 2/3 only:
make
sudo make install

使用方法

ステージ 1: BDADDR 抽出

# Auto-detect and extract all nearby Fast Pair devices
sudo python3 wb.py

# 20 second scan, save results
sudo python3 wb.py -s 20 -o targets.json

# 30 second scan, custom output file
sudo python3 wb.py -s 30 -o extracted.json

注: デバイスが以前にこのツールまたは手動で接続・ペアリングされていた場合、BlueZ はすでにその ID アドレスを把握しています。抽出をクリーンに実行するため、先に削除してください:

sudo bluetoothctl remove <address>

ステージ 2: L2CAP フラッド(任意)

方法 1 — 対話式(抽出後にプロンプト表示)

sudo python3 wb.py -s 20 -o targets.json
# At completion: "Run aggressive L2CAP test... (yes/no)" → yes

方法 2 — フラグ(プロンプトをスキップ)

# Stage 1 + Stage 2 only
sudo python3 wb.py -s 20 -o targets.json --aggressive

# Stage 1 + Stage 2 + Stage 3
sudo python3 wb.py -s 20 -o targets.json --aggressive --hijack

# With duration and thread count
sudo python3 wb.py -s 20 -o targets.json --aggressive --hijack -d 120 -t 8

方法 3 — スタンドアロンのフラッドスクリプト

# Flood from extracted targets file for 120 seconds
sudo python3 aggressive_test.py -f targets.json -d 120 -t 4

# Flood a single known address for 60 seconds
sudo python3 aggressive_test.py AA:BB:CC:DD:EE:FF -d 60

# Flood forever (Ctrl+C to stop)
sudo python3 aggressive_test.py AA:BB:CC:DD:EE:FF -f

ステージ 3: ハイジャック(任意)

# Integrated — extract, flood, then hijack
sudo python3 wb.py -s 20 -o targets.json --aggressive --hijack -d 120

# Manual standalone hijack on known address
sudo python3 wb.py -H AA:BB:CC:DD:EE:FF

3ステージ全体の実行(1コマンド)

sudo python3 wb.py -s 20 -o targets.json --aggressive --hijack -d 120 -t 4

実行フロー:

  1. 20 秒間スキャンして Fast Pair デバイスを検出
  2. 各ターゲットから恒久的な BDADDR を抽出
  3. 4 スレッドを使用して 120 秒間すべてのターゲットをフラッド
  4. 応答なし状態を監視
  5. 復旧ウィンドウ中に各ターゲットへのハイジャックを試行
  6. 結果を targets.json に保存

マルチアダプタ攻撃

ツールをダウンロード