Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
sweyntooth_bluetooth_low_energy_attacks — Sweyntooth Bluetooth Low Energy (BLE) 脆弱性の概念実証 (Proof of Concept)。 | Kitploit
ツール/GitHubGitHub/matheus-garbelini/sweyntooth_bluetooth_low_energy_attacks
Bluetoothセキュリティペイロード生成脆弱性分析エクスプロイトファジングワイヤレスセキュリティペネトレーションテストハードウェアとIoTセキュリティ

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有
GitHub
matheus-garbelini/sweyntooth_bluetooth_low_energy_attacks

sweyntooth_bluetooth_low_energy_attacks

Sweyntooth Bluetooth Low Energy (BLE) 脆弱性の概念実証 (Proof of Concept)。

リポジトリを見る
3327774年前Kitploit レビュー済み

SweynTooth - Bluetooth Low Energy 上で大混乱を解き放つ

このリポジトリは、ASSET Research Group による研究成果の一部です。 attack_logo

SweynTooth は、6 つの主要なシステムオンチップ (SoC) ベンダーのさまざまな Bluetooth Low Energy (BLE) ソフトウェア開発キット (SDK) にわたる 18 個の脆弱性 群を対象としています。これらの脆弱性は、特定の BLE SoC 実装の欠陥を露呈するもので、電波範囲内の攻撃者が状況に応じてデッドロック、クラッシュ、バッファオーバーフローを引き起こしたり、セキュリティを完全にバイパスしたりすることを可能にします。(更新) BLE KNOB 亜種に対するデバイスチェック用のテストスクリプトも追加しました。

脆弱性の詳細、利用可能なパッチ、影響を受けるデバイスについては、ASSET Research Group SweynTooth 開示ウェブサイト をご覧ください。

Fitbit、August Smart Lock、Eve Energy、CubiTag などの「スマート」デバイスが影響を受けます。

  • Fitbit Inspire のクラッシュ & CubiTag のデッドロック - https://www.youtube.com/watch?v=Iw8sIBLWE_w
  • Eve Energy & August Smart Lock のクラッシュ - https://www.youtube.com/watch?v=rge1XeJVpag&t=6s

この PoC に含まれるライブラリ

この PoC は、Scapy や Colorama などのよくメンテナンスされたライブラリを使用しています。BLE パケットの生成と解析は、カスタマイズされた Scapy プロトコルレイヤー (bluetooth4LE と bluetooth.py) を介して行われます。Scapy のメインリポジトリに追加機能を含めるための マージが進行中 です。

はじめに (インストール)

まず、システムに Python2.7 と、requirements.txt ファイルに記載されている Python パッケージがインストールされていることを確認する必要があります。 Ubuntu を使用している場合は、次のコマンドを実行してください:

root@kitploit:~
sudo apt-get install python2.7
sudo pip install -r requirements.txt

次に、SweynTooth は Nordic nRF52840 Dongle を使用して、脆弱なペリフェラルとの間でリンク層の生パケットを無線で送受信します。Python 2.7 スクリプトを開始する前に、ボードにドライバファームウェアを書き込む必要があります。

ファームウェアコードのバイナリは nRF52_driver_firmware.zip ファイル内にあります。ボードにファームウェアを書き込むには、nrfutil ツールをインストールする必要があります。書き込む前に nRF52840 を DFU モードにしてください (USB ドングルを PC に接続した状態で、小さなリセットボタンを押してリセットします)。

dongle_reset_button

次のコマンドで Python の依存関係をインストールし、ファームウェアを書き込むことができます:

root@kitploit:~
python -m pip install nrfutil pyserial pycryptodome
nrfutil dfu usb-serial -p COM_PORT -pkg nRF52_driver_firmware.zip

スクリプトは Linux または Windows で動作します。COM_PORT パラメータを nRF52840 のポート名に合わせて変更するだけです。

(代替の nRF52 ドライバ書き込み方法)

前述の書き込み方法が機能しない場合は、nRF Connect App for Desktop を使用してファームウェアを書き込むこともできます。このアプリは hex ファームウェア (nRF52_driver_firmware.hex) を書き込むための便利なインターフェースを提供します。

概念実証 (PoC) スクリプトの実行

要件がインストールされたら、次のコマンドを実行してエクスプロイトスクリプトを実行できます:

root@kitploit:~
python Telink_key_size_overflow.py COM7 A4:C1:38:D8:AD:A9

最初の引数はシリアルポート名 (通常 Linux では /dev/ttyACM0) で、2 番目の引数は脆弱な BLE デバイスのアドレスです。このアドレスを見つけるには、任意の BLE スキャナまたは nRF Connect App を使用できます。

例として Key Size Overflow 脆弱性を取り上げると、脆弱なデバイスがクラッシュ後にハングした場合、スクリプトは次のような出力を返します:

attack_logo

Linux 用 Docker イメージ (オプション)

Python の依存関係のインストールを避けるために Docker イメージで SweynTooth を使用したい場合は、docker.sh ヘルパースクリプトを使用して Docker インスタンスをビルドおよび実行するか、リリースページで利用可能なプレビルド Docker イメージ (リンク) をダウンロードできます。docker.sh の使用方法は以下のとおりです。

root@kitploit:~
---------  HELP -------------
sudo ./docker run <script_name> <serial_port> <ble_target_address> - Start any sweyntooth script by its name (<script_name>)
sudo ./docker build                                                - Build docker container
sudo ./docker build release                                        - Build docker container and create compressed image for release
sudo ./docker shell                                                - Start docker container shell
---------- EXAMPLE ----------
./docker.sh run extras/Microchip_and_others_non_compliant_connection.py /dev/ttyACM0 f0:f8:f2:da:09:63

利用可能な BLE エクスプロイト

各エクスプロイトスクリプトは 1 つの欠陥に対応しています。次の概要表は、影響を受ける SoC 上の脆弱性と、その脆弱性を悪用するスクリプトとの対応関係を示しています。

一般に、影響を受ける SoC を使用する製品は、障害発生時に BLE SoC を自動再起動するウォッチドッグを採用しているため、すべての製品をデッドロックさせられるわけではありません。それでも、製品がクラッシュして再起動した場合、何らかの視覚的または音声による表示が得られる可能性があります。

Zero LTK インストール (CVE-2019-19194)

最も重大な SweynTooth の脆弱性は Zero LTK インストールで、ゼロで埋められた LTK による暗号化セットアップ手順を強制することで、攻撃者が最新の Bluetooth ペアリング手順 (セキュアコネクション) を完全にバイパスすることを可能にします。この脆弱性に対してデバイスをテストするには、デバイスがペアリング方法としてセキュアコネクションを受け入れるかサポートしている必要があります。PoC は次のように実行できます:

root@kitploit:~
python Telink_zero_ltk_installation.py COM7 A4:C1:38:D8:AD:A9

引数 COM7 と A4:C1:38:D8:AD:A9 は、セットアップによって異なることに注意してください。デバイスが脆弱な場合、PoC は次の出力を返します:

zero_ltk

LLID デッドロック (CVE-2019-17060/1)

LLID デッドロックスクリプトは、ペリフェラルとの再接続のたびに、バージョン要求またはペアリング要求を交互に送信する際に LLID フィールドをクリアします。これは、NXP と Cypress の両方の脆弱な SoC でこの脆弱性をトリガーするために行われます。脆弱な KW41Z に対してスクリプトを実行すると、スタックがデッドロックし、順序が乱れた Link Layer パケットを送信します。スクリプトはスタックがデッドロックしたことを検出しようとし、脆弱な KW41Z デバイスに対して次の出力を返します:

zero_ltk

脆弱な Cypress デバイスは、攻撃後に一般にアドバタイズメントを無効にします。したがって、クラッシュが検出されたことを示すエラーメッセージが表示されるはずです。脆弱な Fitbit Inspire に対してこのスクリプトをテストすると、スマートウォッチは即座にクラッシュするか、一時的にアドバタイズメントを無効にします。このデバイスに対して断続的に攻撃を行うと、BLE が恒久的に誤動作する可能性があり、ユーザーは Fitbit Inspire を手動で再起動する必要があります。

KNOB テスター (Bluetooth Low Energy 亜種)

KNOB は主に、キーサイズが 1 バイトに縮小された Bluetooth Classic デバイスに影響を与えましたが、SMP ペアリング手順中に Bluetooth Low Energy デバイスのキーエントロピーを 7 バイト (準拠可能な最小キーサイズ) に減らすことも依然として可能です。このような準拠した BLE エントロピー削減の影響は、"Low Entropy Key Negotiation Attacks on Bluetooth and Bluetooth Low Energy" by Antonioli, Daniele et. al で議論されています。

BLE ペリフェラルデバイスがどのキーサイズを受け入れるかを確認するための簡単なスクリプトを提供しています。BLE KNOB テスターは次のように実行できます:

root@kitploit:~
# Windows
python extras\knob_tester_ble.py COM6 a4:c1:38:d8:ad:a9
# Linux
python extras/knob_tester_ble.py /dev/ttyACM0 a4:c1:38:d8:ad:a9

COM6 と a4:c1:38:d8:ad:a9 は、nRF52 ドングルのシリアルポート (通常 Linux では /dev/ttyACM0) とテスト対象の BLE デバイスのアドレスに応じて変更することを忘れないでください。ツールがペリフェラルが 16 バイト以外のキーサイズを受け入れることを検出した場合、以下のようにリスト表示されます:

zero_ltk

キャプチャ

captures フォルダには、各脆弱性のサンプルキャプチャがいくつか含まれています。一部の SoC で検出された非準拠のケースも追加しています。

エクストラ

extras フォルダ には、非準拠と一部の SweynTooth 亜種に関連する追加スクリプトが含まれています。詳細については、extras/README.md のエクストラスクリプトの表を確認してください。

謝辞

この研究は Keysight Technologies によって一部支援されました。

  • Scapy - パケット操作ライブラリ。
  • Colorama - Python におけるクロスプラットフォームの色付きターミナルテキスト。
ツールをダウンロード
脆弱性CVE(s)ベンダースクリプトファイル
リンク層長さオーバーフローCVE-2019-16336
CVE-2019-17519
Cypress
NXP
link_layer_length_overflow.py
LLID デッドロックCVE-2019-17061
CVE-2019-17060
Cypress
NXP
llid_dealock.py
切り詰められた L2CAPCVE-2019-17517DialogDA14580_exploit_att_crash.py
サイレント長さオーバーフローCVE-2019-17518DialogDA14680_exploit_silent_overflow.py
公開鍵クラッシュCVE-2019-17520Texas InstrumentsCC2640R2_public_key_crash.py
無効な接続要求CVE-2019-19193Texas InstrumentsCC_connection_req_crash.py
無効な L2CAP フラグメントCVE-2019-19195MicrochipMicrochip_invalid_lcap_fragment.py
シーケンシャル ATT デッドロックCVE-2019-19192STMicroelectronicssequential_att_deadlock.py
キーサイズオーバーフローCVE-2019-19196TelinkTelink_key_size_overflow.py
Zero LTK インストールCVE-2019-19194TelinkTelink_zero_ltk_installation.py
DHCheck スキップCVE-2020-13593Texas Instrumentsnon_compliance_dhcheck_skip.py
ESP32 HCI デシンクCVE-2020-13595Espressif Systemsesp32_hci_desync.py
Zephyr 無効シーケンスCVE-2020-10061Zephyr Projectzephyr_invalid_sequence.py
無効なチャネルマップCVE-2020-10069
CVE-2020-13594
Zephyr Project
Espressif Systems
Microchip
invalid_channel_map.py