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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
blur — BLURtooth: Bluetooth ClassicおよびBluetooth Low Energyにおけるクロストランスポートキー導出の悪用 [CVE-2020-15802] [CVE-2022-20361] | Kitploit
ツール/GitHubGitHub/francozappa/blur
Bluetoothセキュリティ脆弱性分析エクスプロイトワイヤレスセキュリティ論文と研究学習と教育
GitHubfrancozappa/blur

blur

BLURtooth: Bluetooth ClassicおよびBluetooth Low Energyにおけるクロストランスポートキー導出の悪用 [CVE-2020-15802] [CVE-2022-20361]

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

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有
ウェブサイト

README

AsiaCCS'22で発表されたBLUR攻撃に関するリポジトリです。論文タイトル: BLURtooth: Bluetooth ClassicおよびBluetooth Low Energyにおけるクロストランスポート鍵導出の悪用

便利なリンク: pdf, video, slides, website.

BibTexエントリ:

root@kitploit:~
@inproceedings{antonioli22blur,
    author={Antonioli, Daniele and Tippenhauer, Nils Ole and Rasmussen, Kasper
    and Payer, Mathias},
    title={{BLURtooth: Exploiting Cross-Transport Key Derivation in
    Bluetooth Classic and Bluetooth Low Energy}},
    booktitle={Proceedings of the  Asia conference on computer and
    communications security (ASIACCS)},
    month={May},
    year={2022}
}

BLUR攻撃には CVE-2020-15802 と CVE-2022-20361 が割り当てられています。

初期化

このREADMEの残りの部分では、Bluetooth Classic (別名 BR/EDR) を BT、Bluetooth Low Energy を BLE、Cross-Transport Key Derivation を CTKD と表記します。また、攻撃デバイスと被害者はBT、BLE、CTKDをサポートしていると仮定します。これは、デバイスがBluetooth 4.2+とBT/BLE Secure Connectionsをサポートしていることを意味します。

攻撃を実行する最も簡単な方法は、1台のデバイスを被害者と攻撃デバイスの両方として使用することです。例えば、LinuxノートPCを被害者/攻撃デバイスとして使用し、他の任意のデバイスをもう一方の被害者として使用することをお勧めします。

私たちはbluezとbluez toolsを実行しているLinuxマシンを使用しています。btmgmtツールに依存しており、そのソースコードをざっと読むと役立つかもしれません。特に、pairサブコマンドを使用します。これは、任意の入出力機能を宣言しながら、BT/BLE経由で任意のペアリング要求を送信できるようにするものです。

root@kitploit:~
Usage: pair [-c cap] [-t type] <remote address>

論文で提示された正確な攻撃シナリオを再現したい場合は、追加の作業が必要です。具体的には、BIAS攻撃で提示されたセットアップを再現する必要があります。セットアップが完了したら、開発ボードをBT/BLEコントローラとして、LinuxノートPCをホストとして使用できるようになります。さらに、ホストからのリンク層パケット(例:BT LMPトラフィック)を傍受し、internalblueを使用して開発ボードのファームウェアを実行時に動的にパッチできるようになります。

BLUR攻撃の実行

NoInputNoOutput機能のハードコード(MitMフラグを解除せずに)

この手順はオプションであり、独自のLinuxカーネルにパッチを当てる必要があります。

btmgmt -c 3を使用すると、bluezは自動的にMitM保護フラグを解除します。例えば、AuthReqバイトを0x03ではなく0x02に設定します。しかし、BLUR攻撃ではこのフラグを解除する必要はなく、リモートデバイスが入出力機能をサポートしている場合にNoInputNoOutput機能を宣言するだけで済みます。このトリックにより、MitMフラグを解除せずにペアリング手順がJust Worksにダウングレードされます。

このセットアップを実装するには、Linuxカーネルを最小限に変更する必要があります。具体的には、/net/bluetooth/hci_event.cで以下のように変更します:

root@kitploit:~
cp.authentication = conn->auth_type;

to:

root@kitploit:~
cp.authentication = 0x03;

これにより、宣言する入出力機能に関係なく、AuthReqフラグを0x03にハードコードします。

正当なペアリング

通常通り被害者デバイスをペアリングします。例えば、スマートフォンを標的にする場合は、ラップトップ(被害者と攻撃デバイスの両方として機能)とペアリングします。ペアリングの一部として、ユーザー操作が必要になる場合があります(例:Numeric Comparison)。

btmgmtシェルを開く

  • 被害者のBluetoothアドレス(REMOTE-BTADDと表記)をメモします
  • ターミナルを開きます
  • hciconfigを実行し、hciインデックス(例:0)をメモします
  • sudo btmgmt -i 0を実行します
  • [hci0] #を含む青色のターミナルプロンプトが表示されるはずです

BLE経由のCentral Impersonation攻撃、BTペアリングキーの[上書き]書き込み

ここでは、被害者がパブリックBLEアドレスを使用していると仮定しています。ランダムアドレスを使用している場合は、-tオプションを2に変更してください。

btmgmt CLIから以下を実行:

root@kitploit:~
pair -t 1 REMOTE-BTADD

アソシエーションをJust Worksにダウングレードする必要がある場合は、以下を実行:

root@kitploit:~
pair -c 3 -t 1 REMOTE-BTADD

-cフラグは攻撃者の入出力機能を設定し、値0x3はNoInputNoOutputに対応します。一方、ラップトップ/スマートフォンのデフォルト値は0x1でDisplay Yes/Noに対応します。

BT経由のPeripheral Impersonation攻撃、BLEペアリングキーの[上書き]書き込み

この場合、BLEペリフェラルをなりすましても、セントラルとしてBT経由でペアリングします。

btmgmt CLIから以下を実行:

root@kitploit:~
pair -t 0 REMOTE-BTADD

アソシエーションをJust Worksにダウングレードする必要がある場合は、以下を実行:

root@kitploit:~
pair -c 3 -t 0 REMOTE-BTADD

意図しないセッション攻撃

被害者にとって現在未知の(つまり、ペアリングされていない)デバイスをなりすましながら、上記の攻撃を繰り返します。

Q&A(Bluetooth、CTKD、Linux、bluez、Wireshark)

BT/BLEデバイスを発見可能/接続可能/ペアリング可能に設定するにはどうすればよいですか?

bluetoothctl CLIからは、discoverableをonまたはoffに設定し、pairableを設定できます。btmgmt CLIからは、connectableフラグも設定できます。

デバイスが発見可能である時間を制御するにはどうすればよいですか?

bluetoothctlでは、discoverable-timeoutを使用して発見可能タイムアウトを制御できます。例えば、0に設定するとデバイスは常に発見可能になります。

BT/BLEデバイスがペアリングをサポートしているか、ペアリング可能かを確認するにはどうすればよいですか?

BTの場合、セントラルまたはペリフェラルとしてリモートデバイスとペアリング中に、次のLMPパケットを受信します: LMP not accepted ext (opcode: 0x02) with pairing not allowed (error code: 0x18)

BLEの場合、セントラルまたはペリフェラルとしてリモートデバイスとペアリング中に、次のSMPパケットを受信します: SMP Pairing Failed Command (opcode 0x05) with Pairing Not Supported (reason 0x05)。

BT/BLEデバイスがSecure Connectionsをサポートしているかを確認するにはどうすればよいですか?

BTの場合、リモートデバイスとペアリング中に、LMPフィーチャーパッケージ内のホストとコントローラのSecure Connectionsサポートを確認します。例: 次のWireshark表示フィルタを使用: btbrlmp.efeat.scc or btbrlmp.efeat.sch。

BLEの場合、リモートデバイスとペアリング中に、SMP Pairing RequestまたはResponse内のSecure Connectionフラグを含むAuthReqバイトを確認します。例: 次のWireshark表示フィルタを使用: btsmp.sc_flag == 1。

BT/BLEデバイスがCTKDをサポートしているかを確認するにはどうすればよいですか?

BTの場合、リモートデバイスとペアリング中に、BLE SMPトラフィックはL2CAP上でトンネリングされます。したがって、btl2cap.payload Wiresharkフィルタを使用すると、ペイロードが0x01で始まる(SMP Pairing Request)セントラルからペリフェラルへの1つのパケットと、ペイロードが0x02で始まる(SMP Pairing Response)逆方向の別のパケットが表示されるはずです。さらに、SMP鍵配布フェーズをエンコードする他の生のL2CAPパケットも表示されるはずです。

BLEの場合、リモートデバイスとペアリング中に、SMP Pairing RequestまたはResponseで、セントラルとペリフェラルの両方がSMP鍵配布中にリンクキーを送受信する意思があるかどうかを確認します。例: 次のWiresharkフィルタを使用: btsmp.key_dist_linkkey or btsmp.key_dist_linkkey。

ツールをダウンロード