Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
esp32-sniffer — Firmware ESP32 che intercetta i pacchetti PROBE REQUEST inviati dagli smartphone in cerca di connessione Wi-Fi per estrarre diversi tipi di informazioni | Kitploit
Strumenti/GitHubGitHub/ets-polito/esp32-sniffer
Sicurezza Sistemi EmbeddedSniffing e Analisi dei PacchettiRicognizioneAuditing Wi-FiSicurezza IoTRaccolta InformazioniSicurezza WirelessSicurezza Hardware e IoT
GitHubets-polito/esp32-sniffer

esp32-sniffer

Firmware ESP32 che intercetta i pacchetti PROBE REQUEST inviati dagli smartphone in cerca di connessione Wi-Fi per estrarre diversi tipi di informazioni

32840542 anni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Vedi Repository
Sito web

ESP32 Sniffer

ETS

Software License Demo Twitter

Questo progetto utilizza Espressif IoT Development Framework (ESP-IDF) ed è stato testato sul modulo ESP-WROOM-32 e su esp-idf v3.2.

Una panoramica dell'intero progetto (ovvero firmware ESP32, server e GUI) è disponibile qui.

Questo firmware è scritto con lo scopo di intercettare i pacchetti Probe Request inviati dagli smartphone che cercano una connessione Wi-Fi. Quando la connessione Wi-Fi è attiva su uno smartphone, questo invierà in broadcast (su tutte le frequenze dei canali) un messaggio di probe request chiedendo se ci sono reti Wi-Fi libere o alcune conosciute (ovvero quelle per cui lo smartphone conosce la password). L'ESP32 lo intercetterà ed estrarrà diversi tipi di informazioni.

Le seguenti informazioni vengono ricavate da ciascun pacchetto intercettato:

  • MAC dello smartphone che ha inviato la richiesta
  • SSID della rete wifi a cui è inviata la richiesta
  • Il Timestamp di quando la richiesta è stata inviata
  • Received Signal Strength Indicator (RSSI)
  • Sequence Number (SN)
  • HT Capabilities Info

Ogni minuto queste informazioni vengono inviate a un server ed elaborate. Infine, è possibile visualizzare le informazioni elaborate (posizione in tempo reale degli smartphone, frequenza degli smartphone, ecc.) tramite una GUI.

Demo

Watch the video

Indice

  • Panoramica del firmware
  • Configurazione dell'ambiente ESP-IDF
  • Utilizzo
  • Configurazione dei file
    • Configurazione delle variabili
    • Aggiungere un menu personalizzato
  • Componenti
  • Risorse

Panoramica del firmware

Il firmware è composto da due thread/task principali:

  • Sniffer Task

    • Intercetta i pacchetti Probe Request e salva le informazioni descritte sopra in un file.
  • Wi-Fi Task

    • Ogni minuto, prende le informazioni salvate dallo Sniffer Task e le invia al server.
    • Viene utilizzato un lock per gestire la sezione critica per le operazioni di I/O sul file.

L'ESP32 è configurato in modalità WIFI_MODE_APSTA: ovvero crea il "soft-AP and station control block" e avvia "soft-AP and station". Grazie a ciò, l'ESP32 è in grado di intercettare e inviare informazioni al server contemporaneamente, evitando di perdere le informazioni dei pacchetti durante l'invio dei dati.

Di seguito è riportato l'elenco completo dei campi informativi che possono essere presenti in un Probe Request (fonte IEEE 802.11-2012):

cwap-probe-10

E qui sotto un pacchetto intercettato con Wireshark in cui è possibile vedere, per ciascun campo, il numero di bit e la loro posizione all'interno del pacchetto:

cwap-probe-03

Configurazione dell'ambiente ESP-IDF

Questa sezione potrebbe essere obsoleta, consulta il sito ufficiale per maggiori informazioni e per la guida più recente su come iniziare con ESP-IDF.

  1. Configurazione del Toolchain

    • Windows
    • Linux
    • Mac OS
  2. Ottenere ESP-IDF

    Oltre alla toolchain (che contiene i programmi per compilare e creare l'applicazione), sono necessarie anche le API / librerie specifiche per ESP32.

    cd ~/esp
    git clone --recursive https://github.com/espressif/esp-idf.git
     
    
  3. Passare alla versione v3.x

    cd esp-idf
    git checkout release/v3.2
     
    
  4. Configurare il percorso per ESP-IDF

    I programmi della toolchain accedono a ESP-IDF tramite la variabile d'ambiente IDF_PATH. Questa variabile deve essere impostata sul tuo PC, altrimenti i progetti non verranno compilati.

    • Windows
    • Linux & Mac OS
  5. Installare i pacchetti Python richiesti

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

Utilizzo

  1. Assicurati di aver esportato il percorso

    export IDF_PATH=~/esp/esp-idf
    export PATH=$PATH:$HOME/esp/xtensa-esp32-elf/bin
    
  2. Clonare il repository

    git clone https://github.com/ETS-PoliTO/esp32-sniffer.git
    cd esp32-sniffer
    
  3. Stabilire la connessione seriale tra ESP32 e il tuo PC

    make menuconfig
    

    Vai su Serial flasher config, poi su Default serial port e imposta la porta a cui è connesso ESP32

    Nota che, se stai usando un bridge, probabilmente devi scaricare qualche driver:

    • CP210x
    • FTDI

    Questa fornisce una guida su come stabilire la connessione seriale tra ESP32 e PC.

  4. Compilare il codice e flashare l'ESP32

    make all && make flash
    
  5. Visualizzare i log

    make monitor
    

Configurazione dei file

Il file /main/Kconfig.projbuild contiene due menu diversi:

  • SPIFFS (SPI Flash File System)

    Contiene alcune informazioni importanti sulla partizione SPIFFS:

    • Indirizzo base SPIFFS
    • Dimensione SPIFFS
    • Dimensione del blocco logico SPIFFS
    • Dimensione della pagina logica SPIFFS

    SPIFFS è un file system che supporta il wear leveling, i controlli di consistenza del file system e altro ancora.

  • Configurazioni

    Contiene diverse variabili:

    • ESP32_ID: ID dell'ESP32
    • WIFI_SSID: SSID del WiFi (nome della rete)
    • WIFI_PASS: password WiFi (WPA o WPA2)
    • BROKER_ADDR: IP del broker MQTT
    • BROKER_PSW: password del broker MQTT
    • BROKER_PORT: porta del broker MQTT
    • CHANNEL: canale in cui ESP32 intercetterà le PROBE REQUEST
    • SNIFFING_TIME: durata dello sniffing
    • ecc...

Configurazione delle variabili

Per configurare le variabili sopra elencate:

Scarica lo strumento