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

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

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

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

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

Категории

Все категории
Loading categories
esp32_bluetooth_classic_sniffer — Активный сниффер/инжектор Bluetooth BR/EDR — настолько дёшев, насколько это вообще возможно на плате ESP32. Работает со Scapy ;-) | Kitploit
Инструменты/GitHubGitHub/matheus-garbelini
/esp32_bluetooth_classic_sniffer
Безопасность встроенных системСниффинг и анализ пакетовБезопасность BluetoothЭксплуатацияБезопасность беспроводных сетейАппаратный Хакинг
GitHubmatheus-garbelini/esp32_bluetooth_classic_sniffer

esp32_bluetooth_classic_sniffer

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

Репозиторий
598773 лет назадПроверено 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
    Скачать инструмент