Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
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.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
esp32_bluetooth_classic_sniffer — Sniffer/Injetor Bluetooth BR/EDR ativo tão barato quanto qualquer placa ESP32 pode ser. Funciona com Scapy ;-) | Kitploit
Ferramentas/GitHubGitHub/matheus-garbelini/esp32_bluetooth_classic_sniffer
Segurança de Sistemas EmbarcadosSniffing e Análise de PacotesSegurança BluetoothExploraçãoSegurança Sem FioHacking de Hardware
GitHubmatheus-garbelini/esp32_bluetooth_classic_sniffer

esp32_bluetooth_classic_sniffer

Sniffer/Injetor Bluetooth BR/EDR ativo tão barato quanto qualquer placa ESP32 pode ser. Funciona com Scapy ;-)

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
598775há 3 anosRevisado pelo Kitploit

BrakTooth Sniffer/Injetor BR/EDR Ativo para ESP32

Modo "monitor" simples para Bluetooth Classic. Capture ou injete pacotes Baseband BR/EDR em conexões BT do ESP32.

Este é um sniffer BR/EDR ativo de engenharia reversa e um ESP32 patching framework, que pode ser usado para explorar a interação Bluetooth (BT) BR/EDR entre o controlador ESP32 e um alvo remoto.

Diferentemente de sniffers passivos, que não interagem com a rede BT (piconet), o sniffer ativo conecta-se ao dispositivo BT remoto (alvo BR/EDR) e permite testar o protocolo BT até a camada Baseband enquanto é guiado por uma pilha de host BT, como blue-kitchen. O sniffer BrakTooth suporta placas baratas como ESP32-DOIT ($4) ou ESP32-DevKitC ($10).

Índice
  • Visão Geral da Configuração Simplificada
  • 1) Instalação
    • A. Instalar requisitos Linux (Ubuntu 18.04 / 20.04)
    • B. Gravar firmware personalizado no ESP32
  • 2) Instruções de Uso
    • Exemplo 1 - Conectar ao alvo remoto (Papel de Mestre)
    • Exemplo 2 - Aguardar conexão BT (Papel de Escravo)
    • Exemplo 3 - Modo Ponte HCI (conectar com outra pilha de host BT)
  • 3) Compilar firmware a partir do código-fonte (ESP32 Patching Framework)
  • 4) Personalizando programas de host BT (Perfis)
  • Arquitetura de Software do Sniffer BrakTooth
  • Visão Geral dos Recursos
  • Agradecimentos

Visão Geral da Configuração Simplificada

poc_setup

1) Instalação

A. Instalar requisitos 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. Gravar firmware personalizado no ESP32

Antes de começar a usar o BrakTooth Sniffer, você precisa carregar um firmware personalizado na sua placa 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.

Importante: Algumas placas exigem que você mantenha pressionado o botão BOOT para colocar o ESP32 corretamente em modo de gravação.

2) Instruções de Uso

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.

Você pode iniciar o sniffer no papel de mestre ou escravo. Se você usar o argumento --target, o sniffer tentará uma conexão com o seu alvo remoto. Caso contrário, ele apenas aguardará que alguém se conecte a ele.

Por fim, o --bridge-only apenas cria o pseudo terminal HCI (/dev/pts/x) para que o ESP32 possa operar como um controlador BT HCI padrão. Você pode usar esse recurso para conectar qualquer outra pilha de host BT ao ESP32.

Exemplo 1 - Conectar ao alvo remoto (Papel de Mestre)
root@kitploit:~
./BTSnifferBREDR.py --port=/dev/ttyUSB0 --target=E0:D4:E8:19:C7:69 --live-terminal --live-wireshark

mode_master

Exemplo 2 - Aguardar conexão BT (Papel de Escravo)
root@kitploit:~
./BTSnifferBREDR.py --port=/dev/ttyUSB0 --live-terminal --live-wireshark
Exemplo 3 - Modo Ponte HCI (conectar com outra pilha de host BT)
root@kitploit:~
./BTSnifferBREDR.py --port=/dev/ttyUSB0 --bridge-only --live-terminal --live-wireshark

mode_bridge_only

3) Compilar firmware a partir do código-fonte (ESP32 Patching Framework)

O código-fonte pode ser compilado diretamente do repositório ESP32 Firmware Patching Framework da seguinte forma:

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

Os binários do firmware ESP32 (firmware.bin, bootloader.bin, partitions.bin) são copiados para a pasta firmware após a compilação bem-sucedida. Em seguida, você pode prosseguir com a gravação do firmware conforme descrito na etapa 1.B).

4) Personalizando programas de host BT (Perfis)

Como o sniffer BrakTooth usa uma pilha de host BT para orientar a conectividade, os seguintes exemplos modificados do BlueKitchen são usados:

  • host_stack/sdp_rfcomm_query - Este programa inicia a conexão com o dispositivo escravo e tenta realizar a varredura SDP e o emparelhamento.
  • host_stack/spp_counter - Este programa aguarda conexões e estabelece uma conexão spp (porta serial) com o dispositivo mestre.

Você pode modificar ou adicionar perfis BT aos programas atuais seguindo a documentação oficial do BlueKitchen. Observe que a pasta host_stack/bluekitchen/example/ já contém alguns exemplos de perfis.

Arquitetura de Software do Sniffer BrakTooth

arch

O firmware personalizado do Sniffer/Injetor BR/EDR ESP32 comunica-se com o sistema host por meio de uma porta serial USB e aguarda receber comandos personalizados ou comandos HCI. Na inicialização, uma ponte HCI é criada para separar o protocolo personalizado do BrakTooth dos comandos HCI padrão enviados ou recebidos pelo ESP32. Quando o recurso "RX/TX Sniffer" está habilitado no firmware do ESP32, os pacotes Baseband são diretamente encaminhados para o script BTSnifferBREDR.py, que simplesmente decodifica os pacotes capturados por meio do protocolo personalizado e os imprime via Scapy e/ou os despeja no Wireshark por meio de captura ao vivo e na pasta logs.

Visão Geral dos Recursos

firmware_design

  • Sniffer RX/TX: Despeja pacotes Baseband e os encaminha para o host. Pacotes suportados:
    • Cabeçalho Baseband
    • NULL/POLL do alvo remoto
    • FHS (sem camada Scapy por enquanto)
    • EIR (sem dissecção por enquanto)
    • Cabeçalho ACL
    • LMP
  • Interceptação de TX: Isso permite que o PC host modifique pacotes TX em tempo real antes da transmissão over-the-air do ESP32. No entanto, requer uma placa ESP32 com USB de alta velocidade, como ESP-PROG ou ESP-WROVER-KIT. Ambas possuem um controlador FTD2232H USB para UART, o que permite reduzir a latência de polling USB de 125us. (desabilitado por enquanto, desculpe).
  • Injetor de TX: Isso permite que o host injete pacotes BR/EDR imediatamente após o procedimento de paging BT e em cada slot de transmissão (ou seja, a cada 1,25 ms), sujeito a esperas se houver algo na fila LMP interna do ESP32. (desabilitado por enquanto, desculpe).
  • Bypass RX/TX: Efetivamente "cega" a pilha BT do ESP32 para receber ou transmitir pacotes LMP após o procedimento de paging. Pode-se usar isso para construir uma máquina de estado LMP independente no host e com Scapy 🙂. Este recurso pode permitir algo semelhante ao que foi feito no SweynTooth nRF52 dongle, mas para BR/EDR.
  • Patcher de ROM: Instala hooks ROM de dentro do firmware.
  • HCI IN/OUT: Interface de comunicação padrão com a pilha de host BT. Uma pilha de terceiros, como bluekitchen.

Agradecimentos

A dissecção dos pacotes Baseband estende o InternalBlue Broadcom Wireshark Dissector. Especificamente, a dissecção estendeu o plugin h4bcm do Wireshark para suportar mais algumas camadas BT e o nosso cabeçalho de metadados personalizado do ESP32. Obrigado @jiska2342.

Obrigado a todos os seguintes projetos de código aberto:

  • Agradecimento especial a @Ebiroll pela manutenção do Xtensa Module for Ghidra
  • @mringwal pelo excelente BlueKitchen BT Host Stack de código aberto
  • InternalBlue Project
  • Scapy Packet Manipulation Library
  • Wireshark Project
Baixar ferramenta