Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/matheus-garbelini/esp32_bluetooth_classic_sniffer
Безопасность встроенных системСниффинг и анализ пакетовБезопасность BluetoothЭксплуатацияБезопасность беспроводных сетейАппаратный Хакинг
GitHubmatheus-garbelini/esp32_bluetooth_classic_sniffer

esp32_bluetooth_classic_sniffer

Активный сниффер/инжектор Bluetooth BR/EDR — настолько дёшев, насколько это вообще возможно на плате ESP32. Работает со Scapy ;-)

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
Репозиторий
5987753 лет назадПроверено Kitploit

BrakTooth ESP32 BR/EDR активный сниффер/инжектор

Простой «режим монитора» для Bluetooth Classic. Перехватывайте или внедряйте пакеты BR/EDR на уровне Baseband в BT-соединениях ESP32.

Это реверс-инженерный активный BR/EDR-сниффер и фреймворк для патчинга ESP32, которые можно использовать для исследования BR/EDR-взаимодействия Bluetooth (BT) между контроллером ESP32 и удалённым целевым устройством.

В отличие от пассивных снифферов, которые не взаимодействуют с BT-сетью (пикосетью), активный сниффер сам подключается к удалённому BT-устройству (BR/EDR-цели) и позволяет тестировать протокол BT вплоть до уровня Baseband под управлением BT-host-стека, например blue-kitchen. Сниффер BrakTooth поддерживает недорогие платы, такие как ESP32-DOIT (4 долл.) или ESP32-DevKitC (10 долл.).

Оглавление
  • Обзор упрощённой настройки
  • 1) Установка
    • A. Установка зависимостей Linux (Ubuntu 18.04 / 20.04)
    • B. Загрузка кастомной прошивки на ESP32
  • 2) Инструкции по использованию
    • Пример 1 — Подключение к удалённому устройству (роль Master)
    • Пример 2 — Ожидание BT-подключения (роль Slave)
    • Пример 3 — Режим HCI-моста (подключение к другому BT-host-стеку)
  • 3) Сборка прошивки из исходного кода (ESP32 Patching Framework)
  • 4) Настройка программ BT Host (профили)
  • Программная архитектура сниффера 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.

Важно: на некоторых платах необходимо удерживать кнопку BOOT, чтобы ESP32 корректно перешёл в режим прошивки.

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.

Сниффер можно запускать в роли мастера (master) или ведомого (slave). Если добавить аргумент --target, сниффер попытается подключиться к удалённому устройству. В противном случае он будет просто ждать, пока кто-то подключится к нему.

Наконец, режим --bridge-only создаёт только HCI-псевдотерминал (/dev/pts/x), позволяя ESP32 работать в качестве стандартного HCI BT-контроллера. Эту функцию можно использовать для подключения к ESP32 любого другого BT-host-стека.

Пример 1 — Подключение к удалённому устройству (роль Master)
root@kitploit:~
./BTSnifferBREDR.py --port=/dev/ttyUSB0 --target=E0:D4:E8:19:C7:69 --live-terminal --live-wireshark

mode_master

Пример 2 — Ожидание BT-подключения (роль Slave)
root@kitploit:~
./BTSnifferBREDR.py --port=/dev/ttyUSB0 --live-terminal --live-wireshark
Пример 3 — Режим HCI-моста (подключение к другому BT-host-стеку)
root@kitploit:~
./BTSnifferBREDR.py --port=/dev/ttyUSB0 --bridge-only --live-terminal --live-wireshark

mode_bridge_only

3) Сборка прошивки из исходного кода (ESP32 Patching Framework)

Исходный код можно собрать напрямую из репозитория 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 Host (профили)

Поскольку сниффер BrakTooth использует BT-host-стек для управления подключением, используются следующие модифицированные примеры BlueKitchen:

  • host_stack/sdp_rfcomm_query — Эта программа инициирует подключение к ведомому устройству и пытается выполнить SDP-сканирование и сопряжение.
  • host_stack/spp_counter — Эта программа ожидает подключения и устанавливает SPP-соединение (последовательный порт) с ведущим устройством.

Вы можете изменять или добавлять BT-профили в существующие программы, следуя официальной документации BlueKitchen. Обратите внимание, что папка host_stack/bluekitchen/example/ уже содержит несколько примеров профилей.

Программная архитектура сниффера BrakTooth

arch

Кастомная прошивка сниффера/инжектора BR/EDR для ESP32 взаимодействует с хост-системой через USB-порт и ожидает приёма кастомных или HCI-команд. При запуске создаётся HCI-мост для разделения собственного протокола BrakTooth и стандартных HCI-команд, отправляемых на ESP32 или принимаемых от него. Когда на прошивке ESP32 включена функция «RX/TX Sniffer», пакеты Baseband напрямую пересылаются в скрипт BTSnifferBREDR.py, который просто декодирует перехваченные пакеты через кастомный протокол и выводит их с помощью Scapy и/или передаёт в Wireshark в режиме захвата в реальном времени, а также сохраняет в папку logs.

Обзор возможностей

firmware_design

  • RX/TX Sniffer: Сохраняет пакеты Baseband и пересылает их на хост. Поддерживаемые пакеты:
    • Заголовок Baseband
    • NULL/POLL от удалённого устройства
    • FHS (пока нет слоя в Scapy)
    • EIR (пока нет разбора)
    • Заголовок ACL
    • LMP
  • TX Interception: Позволяет хост-ПК изменять TX-пакеты в реальном времени перед их передачей по воздуху с ESP32. Однако для этого требуется плата ESP32 с высокоскоростным USB, например ESP-PROG или ESP-WROVER-KIT. Обе они имеют контроллер FTD2232H USB-to-UART, позволяющий снизить задержку опроса USB до 125us. (пока отключено, извините).
  • TX Injector: Позволяет хосту внедрять пакеты BR/EDR сразу после процедуры пейджинга BT и в каждом временном слоте передачи (т.е. каждые 1.25ms) с ожиданием, если во внутренней очереди LMP ESP32 есть данные. (пока отключено, извините).
  • RX/TX Bypass: Фактически «ослепляет» BT-стек ESP32, не позволяя ему принимать или передавать LMP-пакеты после процедуры пейджинга. Это можно использовать для создания автономного LMP-конечного автомата на хосте вместе со Scapy 🙂. Эта функция может позволить реализовать нечто похожее на SweynTooth nRF52 dongle, но для BR/EDR.
  • ROM Patcher: Устанавливает ROM-хуки из прошивки.
  • HCI IN/OUT: Стандартный интерфейс взаимодействия с BT-host-стеком. Можно использовать сторонний стек, например bluekitchen.

Благодарности

Разбор пакетов Baseband расширяет InternalBlue Broadcom Wireshark Dissector. В частности, разбор расширяет плагин h4bcm для Wireshark, чтобы поддерживать ещё несколько BT-уровней и наш собственный заголовок метаданных ESP32. Спасибо @jiska2342.

Спасибо всем следующим проектам с открытым исходным кодом:

  • Особая благодарность @Ebiroll за поддержку Xtensa Module for Ghidra
  • @mringwal за отличный открытый BlueKitchen BT Host Stack
  • Проект InternalBlue
  • Библиотека для работы с пакетами Scapy
  • Проект Wireshark
Скачать инструмент