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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
esp32_bluetooth_classic_sniffer — どのESP32ボードでも実現できる限り安価な、アクティブBluetooth BR/EDRスニファ/インジェクタ。Scapyで動作します ;-) | Kitploit
ツール/GitHubGitHub/matheus-garbelini/esp32_bluetooth_classic_sniffer
組み込みシステムセキュリティパケットスニッフィングと分析Bluetoothセキュリティエクスプロイトワイヤレスセキュリティハードウェアハッキング
GitHubmatheus-garbelini/esp32_bluetooth_classic_sniffer

esp32_bluetooth_classic_sniffer

どのESP32ボードでも実現できる限り安価な、アクティブBluetooth BR/EDRスニファ/インジェクタ。Scapyで動作します ;-)

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有
リポジトリを見る
5987753年前Kitploit レビュー済み

BrakTooth ESP32 BR/EDR アクティブスニファ/インジェクタ

Bluetooth Classic向けのシンプルな「モニターモード」。ESP32 BT接続においてBR/EDRベースバンドパケットをスニッフィングまたはインジェクションします。

これはリバースエンジニアリングされたアクティブBR/EDRスニファであり、ESP32パッチ適用フレームワークです。ESP32コントローラとリモートターゲット間のBluetooth(BT)BR/EDR相互作用を調査するために使用できます。

BTネットワーク(ピコネット)と相互作用しないパッシブスニファとは異なり、アクティブスニファはリモートBTデバイス(BR/EDRターゲット)に自身を接続し、blue-kitchen などのBTホストスタックにガイドされながら、ベースバンド層までのBTプロトコルをテストできます。BrakToothスニファは、ESP32-DOIT($4)や ESP32-DevKitC($10)などの安価なボードをサポートします。

目次
  • 簡易セットアップ概要
  • 1) インストール
    • A. Linux要件のインストール(Ubuntu 18.04 / 20.04)
    • B. ESP32へのカスタムファームウェアの書き込み
  • 2) 使用方法
    • 例1 - リモートターゲットに接続(マスターロール)
    • 例2 - BT接続の待機(スレーブロール)
    • 例3 - HCIブリッジモード(他のBTホストスタックと接続)
  • 3) ソースからファームウェアをコンパイル(ESP32パッチ適用フレームワーク)
  • 4) BTホストプログラムのカスタマイズ(プロファイル)
  • BrakToothスニファのソフトウェアアーキテクチャ
  • 機能概要
  • 謝辞

簡易セットアップ概要

poc_setup

1) インストール

A. Linux要件のインストール(Ubuntu 18.04 / 20.04)
root@kitploit:~
git clone https://github.com/Matheus-Garbelini/esp32_bluetooth_classic_sniffer
cd esp32_bluetooth_classic_sniffer
./requirements.sh # (sudo required) Installs latest wireshark and standalone python3 runtime
./build.sh 		  # Build BT Host programs and Wireshark h4bcm dissector
B. ESP32へのカスタムファームウェアの書き込み

BrakToothスニファを使用し始める前に、ESP32ボードにカスタムファームウェアをアップロードする必要があります:

root@kitploit:~
sudo chown $USER:$USER /dev/ttyUSB0 # Give user permission to serial port to avoid using sudo
./firmware.py flash /dev/ttyUSB0 # Change ttyUSB0 to match your port name
# Note: ESP-WROVER-KIT or ESP-ETHERNET-KIT uses /dev/ttyUSB1 instead as the first port is for the FTDI JTAG circuit.

重要:一部のボードでは、ESP32をフラッシュモードにするためにBOOTボタンを押し続ける必要があります。

2) 使用方法

root@kitploit:~
Usage: BTSnifferBREDR.py [OPTIONS]
Options:
  --port TEXT       Serial port name (/dev/ttyUSBx for Linux)
  --host TEXT       BDAddress of local host (default: E0:D4:E8:19:C7:68)
  --target TEXT     BDAddress of remote target (ex: a8:96:75:25:c2:ac)
  --live-wireshark  Opens Wireshark live session
  --live-terminal   Show a summary of each packet on terminal
  --bridge-only     Starts the HCI bridge without connecting any BT Host stack
  --help            Show this message and exit.

スニファはマスターロールまたはスレーブロールのどちらかで起動できます。--target引数を追加すると、スニファはリモートターゲットへの接続を試みます。それ以外の場合は、誰かが接続してくるのを待ちます。

最後に、--bridge-only はHCI疑似端末(/dev/pts/x)を作成するだけで、ESP32が標準のHCI BTコントローラとして動作できるようにします。この機能を使用すると、他の任意のBTホストスタックをESP32に接続できます。

例1 - リモートターゲットに接続(マスターロール)
root@kitploit:~
./BTSnifferBREDR.py --port=/dev/ttyUSB0 --target=E0:D4:E8:19:C7:69 --live-terminal --live-wireshark

mode_master

例2 - BT接続の待機(スレーブロール)
root@kitploit:~
./BTSnifferBREDR.py --port=/dev/ttyUSB0 --live-terminal --live-wireshark
例3 - HCIブリッジモード(他のBTホストスタックと接続)
root@kitploit:~
./BTSnifferBREDR.py --port=/dev/ttyUSB0 --bridge-only --live-terminal --live-wireshark

mode_bridge_only

3) ソースからファームウェアをコンパイル(ESP32パッチ適用フレームワーク)

ソースコードは、ESP32 Firmware Patching Framework リポジトリから直接ビルドできます:

root@kitploit:~
cd firmware
./build_from_source.sh # clone submodule & build firmware with platformio environment 'sniffer-serial'
./firmware.py flash <serial port> # flash built firmware to ESP32 via serial port

ビルドが成功すると、ESP32ファームウェアのバイナリ(firmware.bin、bootloader.bin、partitions.bin)がfirmwareフォルダにコピーされます。その後、手順1.B) の説明に従ってファームウェアをフラッシュできます。

4) BTホストプログラムのカスタマイズ(プロファイル)

BrakToothスニファは接続をガイドするためにBTホストスタックを使用するため、次の変更されたBlueKitchenの例が使用されます:

  • host_stack/sdp_rfcomm_query - このプログラムはスレーブデバイスとの接続を開始し、SDPスキャンとペアリングを試みます。
  • host_stack/spp_counter - このプログラムは接続を待機し、マスターデバイスとのSPP(シリアルポート)接続を確立します。

現在のプログラムにBTプロファイルを変更または追加するには、BlueKitchen の公式ドキュメントに従ってください。host_stack/bluekitchen/example/フォルダには、すでにいくつかのプロファイル例が含まれていることに注意してください。

BrakToothスニファのソフトウェアアーキテクチャ

arch

カスタムESP32 BR/EDRスニファ/インジェクタファームウェアは、USBシリアルポートを介してホストシステムと通信し、カスタムコマンドまたはHCIコマンドの受信を待ちます。起動時には、BrakToothカスタムプロトコルをESP32から送受信される標準HCIコマンドから分離するためにHCIブリッジが作成されます。ESP32ファームウェアで「RX/TXスニファ」機能が有効になると、ベースバンドパケットは*BTSnifferBREDR.py*スクリプトに直接転送されます。このスクリプトは、カスタムプロトコルを介してスニッフィングされたパケットをデコードし、Scapyで表示したり、ライブキャプチャでWiresharkにダンプしたり、logsフォルダに保存したりします。

機能概要

firmware_design

  • RX/TXスニファ: ベースバンドパケットをダンプし、ホストに転送します。サポートされているパケット:
    • ベースバンドヘッダー
    • リモートターゲットからのNULL/POLL
    • FHS(現時点ではScapyレイヤーなし)
    • EIR(現時点では解析なし)
    • ACLヘッダー
    • LMP
  • TXインターセプション: ホストPCが、ESP32からの無線送信の前にTXパケットをリアルタイムで変更できるようにします。ただし、ESP-PROG や ESP-WROVER-KIT のような高速USBを備えたESP32ボードが必要です。どちらもFTD2232H USB-UARTコントローラを搭載しており、USBポーリングレイテンシを125usに低減できます。 (現時点では無効です。申し訳ありません)。
  • TXインジェクタ: ホストが、BTページング手順の直後、およびすべての送信スロット(つまり1.25msごと)でBR/EDRパケットをインジェクトできるようにします。ESP32内部のLMPキューに何かがある場合は待機が発生します。 (現時点では無効です。申し訳ありません)。
  • RX/TXバイパス: ページング手順の後、ESP32 BTスタックがLMPパケットを受信または送信するのを効果的に「盲目」にします。これを使用すると、ホスト上でScapyを使ってスタンドアロンのLMPステートマシンを構築できます 🙂。この機能により、SweynTooth nRF52ドングル で行われたことと同様のことをBR/EDRで実現できる可能性があります。
  • ROMパッチャー: ファームウェア内部からROMフックをインストールします。
  • HCI IN/OUT: BTホストスタックとの標準通信インターフェース。bluekitchen などのサードパーティスタック。

謝辞

ベースバンドパケットの解析は、InternalBlue Broadcom Wireshark Dissector を拡張したものです。 具体的には、h4bcm Wiresharkプラグインを拡張して、さらにいくつかのBTレイヤーと独自のESP32メタデータヘッダーをサポートしています。 @jiska2342 に感謝します。

以下のすべてのオープンソースプロジェクトに感謝します:

  • @Ebiroll による Ghidra用Xtensaモジュール のメンテナンスに特に感謝します。
  • 優れたオープンソース BlueKitchen BT Host Stack を提供してくれた @mringwal に感謝します。
  • InternalBlueプロジェクト
  • Scapyパケット操作ライブラリ
  • Wiresharkプロジェクト
ツールをダウンロード