
モジュール式の Bluetooth Classic(BR/EDR)脆弱性テストフレームワーク。偵察機能、43件の公開攻撃/CVE に対応するエクスプロイトモジュール、構造化された JSON レポートを備えています。
ドキュメント • インストール • 使用方法 • エクスプロイト • ハードウェア • TODO • 自動車評価 • Bluetooth リソース • ライセンス
BlueToolkit は、Bluetooth Classic (BR/EDR) および Bluetooth Low Energy (BLE) 向けのモジュール式ブラックボックス Bluetooth セキュリティテストフレームワークです。半自動テストをサポートし、次の3つの主要モジュールを備えています:
私たちは、異なるベンダーの22台の車両 (Audi, BMW, Chevrolet, Honda, Hyundai, Mercedes-Benz, Mini, Opel, Polestar, Renault, Skoda, Toyota, VW, Tesla) で BlueToolkit を評価し、128件の脆弱性 を発見しました。
さらに、既に確立された接続または MitM の位置で MAP を介してオンラインアカウントを乗っ取る 方法を示します。
この研究は、WOOT 25' で採択された研究論文につながりました: リンクは後日追加します
BlueToolkit は、ベアメタルの Ubuntu/Debian システム (推奨) または仮想マシンを使用してインストールできます。どちらの場合も、インストーラーは特定のハードウェアデバイスが利用可能で接続されている必要がある Braktooth および BluetoothAssistant 用の特定モジュールのインストールを促します。 スタンドアロンモジュールのインストールも、インストーラーを再度実行することで個別に行うことができます。
前提条件:
sh
git clone https://github.com/sgxgsx/BlueToolkit --recurse-submodules
cd BlueToolkit/vagrant
vagrant upインストール後:
* USB経由で仮想マシンがBluetoothモジュールや追加ハードウェアにアクセスできるようにする必要があります。そのためには、次の操作が必要です:
* USBサポートはすでに有効になっているので、VirtualBoxを開いてください
* 実行中の仮想マシンを見つけて、「Show」をクリックします
* 「Devices」→「USB」をクリックします
* 仮想マシンに対して有効にできる複数のデバイスが表示されます
* 必要なデバイス(Bluetoothモジュール、ハードウェア、電話)にチェックを付けるか、確実にするためにすべてのデバイスにチェックを付けてください。
</details>
### 使用方法
`bluekit -h` を実行すると、BlueToolkit の使用情報が表示されます:```console
usage: bluekit [-h] [-t TARGET] [-l] [-c] [-ct] [-ch] [-v VERBOSITY] [-ex EXCLUDEEXPLOITS [EXCLUDEEXPLOITS ...]] [-e EXPLOITS [EXPLOITS ...]] [-r] [-re] [-rej] [-hh HARDWARE [HARDWARE ...]] ...
positional arguments:
rest
options:
-h, --help show this help message and exit
-t TARGET, --target TARGET
target MAC address
-l, --listexploits List exploits or not
-c, --checksetup Check whether Braktooth is available and setup
-ct, --checktarget Check connectivity and availability of the target
-ch, --checkpoint Start from a checkpoint
-v VERBOSITY, --verbosity VERBOSITY
Verbosity level
-ex EXCLUDEEXPLOITS [EXCLUDEEXPLOITS ...], --excludeexploits EXCLUDEEXPLOITS [EXCLUDEEXPLOITS ...]
Exclude exploits, example --exclude exploit1, exploit2
-e EXPLOITS [EXPLOITS ...], --exploits EXPLOITS [EXPLOITS ...]
Scan only for provided --exploits exploit1, exploit2; --exclude is not taken into account
-r, --recon Run a recon script
-re, --report Create a report for a target device
-rej, --reportjson Create a report for a target device
-hh HARDWARE [HARDWARE ...], --hardware HARDWARE [HARDWARE ...]
Scan only for provided exploits based on hardware --hardware hardware1 hardware2; --exclude and --exploit are not taken into account
使用例は次のとおりです:
利用可能なすべてのエクスプロイトを一覧表示(root は不要):
bluekit -l
偵察(recon)を実行:
sudo bluekit -t AA:BB:CC:DD:EE:FF -r
接続性をテスト:
sudo bluekit -t AA:BB:CC:DD:EE:FF -ct
1つ以上のエクスプロイトをテスト(スペース区切り):
sudo bluekit -t AA:BB:CC:DD:EE:FF -e invalid_max_slot au_rand_flooding internalblue_knob
詳細なドキュメントは私たちのwikiで入手できます。
一部の攻撃には特定のハードウェアが必要です:
BlueToolkit はすべての脆弱性テンプレートとハードウェアテンプレートを自動的にダウンロードします。BlueToolkit templates リポジトリには、すぐに使えるテンプレートの完全なリストが用意されています。 さらに、BlueToolkit のテンプレート作成ガイドに従って、独自のテンプレートやチェックを作成したり、新しいハードウェアを追加したりできます。 YAML 参照構文はこちらで入手できます。
私たちは、Bluetooth の脆弱性を「Awesome Bluetooth Security」の流儀で収集・分類しました。使用した情報源は次のとおりです - ACM、IEEE SP、Blackhat、DEFCON、Car Hacking Village、NDSS、Google Scholars。Google、Baidu、Yandex、Bing などの検索エンジンで次のキーワードを検索しました - Bluetooth security toolkit、Bluetooth exploits github、Bluetooth security framework、bluetooth pentesting toolkit。また、次のパラメータに基づいてすべての Github リポジトリを解析しました - topic:bluetooth topic:exploit、topic:bluetooth topic:security。
手動攻撃については、ドキュメントを参照してください。