Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
esp32-sniffer — Firmware ESP32 que fareja pacotes PROBE REQUEST enviados por smartphones à procura de conexão Wi-Fi para extrair diferentes tipos de informação | Kitploit
Ferramentas/GitHubGitHub/ets-polito/esp32-sniffer
Segurança de Sistemas EmbarcadosSniffing e Análise de PacotesReconhecimentoAuditoria de Wi-FiSegurança IoTColeta de InformaçõesSegurança Sem FioSegurança de Hardware e IoT
GitHubets-polito/esp32-sniffer

esp32-sniffer

Firmware ESP32 que fareja pacotes PROBE REQUEST enviados por smartphones à procura de conexão Wi-Fi para extrair diferentes tipos de informação

3284054há 2 anosRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
Ver Repositório
Site

ESP32 Sniffer

ETS

Software License Demo Twitter

Este projeto utiliza o Espressif IoT Development Framework (ESP-IDF) e foi testado no módulo ESP-WROOM-32 e no esp-idf v3.2.

Uma visão geral do projeto completo (ou seja, firmware ESP32, servidor e GUI) pode ser encontrada aqui.

Este firmware foi escrito com o propósito de farejar pacotes Probe Request enviados por smartphones que estão procurando conexão Wi-Fi. Quando a conexão Wi-Fi está ativa em um smartphone, ele enviará em broadcast (em todas as frequências de canais) uma mensagem probe request perguntando se há algum Wi-Fi livre ou algum conhecido (ou seja, o smartphone conhece a senha daquele Wi-Fi). O ESP32 irá farejá-la e extrair diferentes tipos de informações.

As seguintes informações são obtidas de cada pacote farejado:

  • MAC do smartphone que enviou a requisição
  • SSID do wifi para o qual a requisição foi enviada
  • O Timestamp de quando a requisição foi enviada
  • Received Signal Strength Indicator (RSSI)
  • Sequence Number (SN)
  • HT Capabilities Info

Após cada minuto essas informações são enviadas para um servidor e processadas. Por fim, é possível ver as informações processadas (localização em tempo real do smartphone, frequência do smartphone, etc.) através de uma GUI.

Demo

Watch the video

Índice

  • Visão Geral do Firmware
  • Configuração do Ambiente ESP-IDF
  • Uso
  • Configuração de Arquivos
    • Configuração de Variáveis
    • Adicionar Menu Personalizado
  • Componentes
  • Recursos

Visão Geral do Firmware

O firmware consiste em duas threads/tarefas principais:

  • Sniffer Task

    • Farejar pacotes Probe Request e salvar as informações descritas acima em um arquivo.
  • Wi-Fi Task

    • A cada minuto, pegar as informações salvas pela Sniffer Task e enviá-las ao servidor.
    • Um lock é usado para gerenciar a seção crítica para operações de I/O no arquivo.

O ESP32 está configurado no modo WIFI_MODE_APSTA: ou seja, ele cria "soft-AP and station control block" e inicia "soft-AP and station". Graças a isso, o ESP32 é capaz de farejar e enviar informações ao servidor ao mesmo tempo, evitando perder informações de pacotes enquanto envia dados.

Aqui está a lista completa dos campos de informação que podem estar em um Probe Request (fonte IEEE 802.11-2012):

cwap-probe-10

E abaixo um pacote farejado com o Wireshark no qual você pode ver, para cada campo, o número de bits e sua posição dentro do pacote:

cwap-probe-03

Configuração do Ambiente ESP-IDF

Esta seção pode estar desatualizada, consulte o site oficial para mais informações e para o guia mais recente sobre como começar com o ESP-IDF.

  1. Configurar Toolchain

    • Windows
    • Linux
    • Mac OS
  2. Obtenha o ESP-IDF

    Além do toolchain (que contém programas para compilar e construir a aplicação), você também precisa das APIs / bibliotecas específicas do ESP32.

    cd ~/esp
    git clone --recursive https://github.com/espressif/esp-idf.git
     
    
  3. Faça checkout para a versão v3.x

    cd esp-idf
    git checkout release/v3.2
     
    
  4. Configure o caminho para o ESP-IDF

    Os programas do toolchain acessam o ESP-IDF usando a variável de ambiente IDF_PATH. Esta variável deve ser configurada no seu PC, caso contrário os projetos não serão compilados.

    • Windows
    • Linux & Mac OS
  5. Instale os Pacotes Python Necessários

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

Uso

  1. Certifique-se de que você exportou o caminho

    export IDF_PATH=~/esp/esp-idf
    export PATH=$PATH:$HOME/esp/xtensa-esp32-elf/bin
    
  2. Clone o repositório

    git clone https://github.com/ETS-PoliTO/esp32-sniffer.git
    cd esp32-sniffer
    
  3. Estabeleça a conexão serial entre o ESP32 e seu PC

    make menuconfig
    

    Vá para Serial flasher config, depois Default serial port e defina a porta na qual o ESP32 está conectado

    Observe que, se você estiver usando uma bridge, provavelmente precisará baixar algum driver:

    • CP210x
    • FTDI

    Isto fornece um guia sobre como estabelecer a conexão serial entre o ESP32 e o PC.

  4. Compile o código e faça o flash do ESP32

    make all && make flash
    
  5. Veja os logs

    make monitor
    

Configuração de Arquivos

O arquivo /main/Kconfig.projbuild contém dois menus diferentes:

  • SPIFFS (SPI Flash File System)

    Ele contém algumas informações importantes sobre a partição SPIFFS:

    • Endereço base do SPIFFS
    • Tamanho do SPIFFS
    • Tamanho do bloco lógico do SPIFFS
    • Tamanho da página lógica do SPIFFS

    SPIFFS é um sistema de arquivos que suporta wear leveling, verificações de consistência do sistema de arquivos e mais.

  • Configurações

    Ele contém diferentes variáveis:

    • ESP32_ID: ID do ESP32
    • WIFI_SSID: SSID do WiFi (nome da rede)
    • WIFI_PASS: senha do WiFi (WPA ou WPA2)
    • BROKER_ADDR: IP do broker MQTT
    • BROKER_PSW: senha do broker MQTT
    • BROKER_PORT: porta do broker MQTT
    • CHANNEL: canal no qual o ESP32 irá sniffar PROBE REQUEST
    • SNIFFING_TIME: tempo de sniffing
    • etc...

Configuração de Variáveis

Para configurar as variáveis acima:

  1. Abra seu terminal dentro da pasta do projeto e execute

    make menuconfig 
    
  2. Selecione o menu que você deseja modificar

  3. Edite as variáveis como quiser

Adicionar Menu Personalizado

Você também pode adicionar menus diferentes com variáveis diferentes:

  1. Abra Kconfig.projbuild
  2. Inicie um novo menu
Baixar ferramenta