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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
esp32-sniffer — Wi-Fi接続を探してスマートフォンが送信するPROBE REQUESTパケットをスニッフィングし、さまざまな種類の情報を抽出するESP32ファームウェア | Kitploit
ツール/GitHubGitHub/ets-polito/esp32-sniffer
組み込みシステムセキュリティパケットスニッフィングと分析偵察Wi-Fi監査IoTセキュリティ情報収集ワイヤレスセキュリティハードウェアとIoTセキュリティ
GitHubets-polito/esp32-sniffer

esp32-sniffer

Wi-Fi接続を探してスマートフォンが送信するPROBE REQUESTパケットをスニッフィングし、さまざまな種類の情報を抽出するESP32ファームウェア

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

人気

すべて見る →

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

すべてのツールを探索

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

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

ESP32 Sniffer

ETS

Software License Demo Twitter

このプロジェクトは Espressif IoT Development Framework (ESP-IDF) を使用しており、ESP-WROOM-32 モジュールおよび esp-idf v3.2 でテストされています。

プロジェクト全体(ESP32 ファームウェア、サーバー、GUI)の概要はこちらで確認できます。

このファームウェアは、Wi-Fi 接続を探しているスマートフォンが送信する Probe Request パケットをスニッフィングする目的で書かれています。スマートフォンで Wi-Fi 接続が有効になっていると、ブロードキャスト(すべてのチャネル周波数)でプローブリクエストメッセージを送信し、利用可能な Wi-Fi や既知の Wi-Fi(スマートフォンがその Wi-Fi のパスワードを知っている場合など)があるかどうかを問い合わせます。ESP32 はこれをスニッフィングし、さまざまな種類の情報を抽出します。

スニッフィングされた各パケットから以下の情報が取得されます:

  • リクエストを送信したスマートフォンの MAC
  • リクエストの送信先 Wi-Fi の SSID
  • リクエストが送信されたタイムスタンプ
  • 受信信号強度インジケーター (RSSI)
  • シーケンス番号 (SN)
  • HT Capabilities Info

1 分ごとに、これらの情報はサーバーに送信され、処理されます。最後に、処理された情報(スマートフォンのリアルタイム位置、スマートフォンの周波数など)を GUI を通じて確認できます。

デモ

Watch the video

目次

  • ファームウェアの概要
  • ESP-IDF 環境の設定
  • 使用方法
  • ファイル設定
    • 変数の設定
    • カスタマイズメニューの追加
  • コンポーネント
  • リソース

ファームウェアの概要

ファームウェアは 2 つの主要なスレッド/タスクで構成されています:

  • Sniffer タスク

    • Probe Request パケットをスニッフィングし、上記の情報をファイルに保存します。
  • Wi-Fi タスク

    • 1 分ごとに、Sniffer タスクによって保存された情報を取得し、サーバーに送信します。
    • ファイル内の I/O 操作のクリティカルセクションを管理するために lock が使用されます。

ESP32 は WIFI_MODE_APSTA モードに設定されています。つまり、"soft-AP and station control block" を作成し、"soft-AP and station" を起動します。これにより、ESP32 はデータ送信中にパケット情報を失うことなく、スニッフィングとサーバーへの情報送信を同時に行うことができます。

以下は、Probe Request に含まれる可能性のある情報フィールドの完全なリストです(出典 IEEE 802.11-2012):

cwap-probe-10

そして以下は、Wireshark でスニッフィングされたパケットで、各フィールドのビット数とパケット内での位置を確認できます:

cwap-probe-03

ESP-IDF 環境の設定

このセクションは古くなっている可能性があります。詳細および ESP-IDF を始めるための最新ガイドについては、公式サイトを確認してください。

  1. ツールチェーンのセットアップ

    • Windows
    • Linux
    • Mac OS
  2. ESP-IDF を取得する

    アプリケーションをコンパイル・ビルドするためのプログラムを含むツールチェーンに加えて、ESP32 固有の API / ライブラリも必要です。

    cd ~/esp
    git clone --recursive https://github.com/espressif/esp-idf.git
     
    
  3. バージョン v3.x にチェックアウトする

    cd esp-idf
    git checkout release/v3.2
     
    
  4. ESP-IDF へのパスを設定する

    ツールチェーンのプログラムは、IDF_PATH 環境変数を使用して ESP-IDF にアクセスします。 この変数はお使いの PC 上で設定する必要があり、設定しないとプロジェクトはビルドできません。

    • Windows
    • Linux & Mac OS
  5. 必要な Python パッケージをインストールする

    python -m pip install --user -r $IDF_PATH/requirements.txt
    

使用方法

  1. パスをエクスポートしたことを確認する

    export IDF_PATH=~/esp/esp-idf
    export PATH=$PATH:$HOME/esp/xtensa-esp32-elf/bin
    
  2. リポジトリをクローンする

    git clone https://github.com/ETS-PoliTO/esp32-sniffer.git
    cd esp32-sniffer
    
  3. ESP32 と PC の間にシリアル接続を確立する

    make menuconfig
    

    Serial flasher config に移動し、次に Default serial port に移動して、ESP32 が接続されているポートを設定します

    ブリッジを使用している場合は、おそらくいくつかのドライバをダウンロードする必要があることに注意してください:

    • CP210x
    • FTDI

    こちらに、ESP32 と PC の間にシリアル接続を確立する方法のガイドがあります。

  4. コードをビルドして ESP32 に書き込む

    make all && make flash
    
  5. ログを確認する

    make monitor
    

ファイル設定

ファイル /main/Kconfig.projbuild には 2 つの異なるメニューが含まれています:

  • SPIFFS (SPI Flash File System)

    SPIFFS パーティションに関するいくつかの重要な情報が含まれています:

    • SPIFFS ベースアドレス
    • SPIFFS サイズ
    • SPIFFS 論理ブロックサイズ
    • SPIFFS 論理ページサイズ

    SPIFFS は、ウェアレベリング、ファイルシステム整合性チェックなどをサポートするファイルシステムです。

  • 設定

    さまざまな変数が含まれています:

    • ESP32_ID: ESP32 の ID
    • WIFI_SSID: WiFi の SSID (ネットワーク名)
    • WIFI_PASS: WiFi パスワード (WPA または WPA2)
    • BROKER_ADDR: MQTT ブローカーの IP
    • BROKER_PSW: MQTT ブローカーのパスワード
    • BROKER_PORT: MQTT ブローカーのポート
    • CHANNEL: ESP32 が PROBE REQUEST をスニッフィングするチャネル
    • SNIFFING_TIME: スニッフィングの時間
    • など...

変数の設定

上記の変数を設定するには:

  1. プロジェクトフォルダ内でターミナルを開き、次を実行します

    make menuconfig 
    
  2. 変更したいメニューを選択します

  3. 変数を好きなように編集します

カスタムメニューの追加

異なる変数を持つ異なるメニューを追加することもできます:

  1. Kconfig.projbuild を開きます

  2. 新しいメニューを開始します

    menu YOUR_MENU_NAME
    
  3. 必要な変数を追加します

  4. メニューを終了します

    endmenu
    

コンポーネント

  • SPIFFS

    パーティションテーブルを作成する必要があります。

    SPIFFS コンポーネント

  • ESP32 MQTT

    ESP32 MQTT ライブラリが使用されています。

    MQTT ドキュメント

  • MD5

    一意の識別子を取得するために、スニッフィングされたパケットに使用されるハッシュ関数。

リソース

  • 使用されているデータ構造の例や情報を確認するには、公式の esp-idf git リポジトリ をご覧ください。
  • Espressif IoT Development Framework の最新ドキュメントバージョン。
  • 質問をしたりコミュニティリソースを見つけたりするには、ESP32 フォーラム をご利用ください。
  • モジュール、名前空間、データ構造、ファイルを閲覧できる ESP32-IDF ドキュメント。

ESP32 がどのように動作するかを確認するには、このデモ 動画 もご覧ください。

セネカ

教訓による道は長く、模範による道は短くて効果的である

ツールをダウンロード