Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
esp32_bluetooth_classic_sniffer — 값싼 ESP32 보드로 가능한 수준의 저렴한 가격에 구현한 능동형 Bluetooth BR/EDR 스니퍼/인젝터. Scapy와 함께 동작합니다 ;-) | Kitploit
도구/GitHubGitHub/matheus-garbelini/esp32_bluetooth_classic_sniffer
Embedded Systems SecurityPacket Sniffing & AnalysisBluetooth SecurityExploitationWireless SecurityHardware Hacking
GitHubmatheus-garbelini/esp32_bluetooth_classic_sniffer

esp32_bluetooth_classic_sniffer

값싼 ESP32 보드로 가능한 수준의 저렴한 가격에 구현한 능동형 Bluetooth BR/EDR 스니퍼/인젝터. Scapy와 함께 동작합니다 ;-)

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
저장소 보기
5987753년 전Kitploit 검토 완료

BrakTooth ESP32 BR/EDR 능동형 스니퍼/인젝터

Bluetooth Classic용 간단한 "모니터 모드". ESP32 BT 연결에서 BR/EDR Baseband 패킷을 스니핑하거나 주입합니다.

이것은 리버스 엔지니어링된 능동형(active) BR/EDR 스니퍼이자 ESP32 패치 프레임워크로, ESP32 컨트롤러와 원격 대상 간의 Bluetooth(BT) BR/EDR 상호작용을 탐구하는 데 사용할 수 있습니다.

BT 네트워크(피코넷)와 상호작용하지 않는 수동형(passive) 스니퍼와 달리, 능동형(active) 스니퍼는 원격 BT 장치(BR/EDR 대상)에 스스로 연결하여 **blue-kitchen**과 같은 BT 호스트 스택의 안내를 받으며 Baseband 계층까지 BT 프로토콜을 테스트할 수 있습니다. BrakTooth 스니퍼는 ESP32-DOIT ($4) 또는 ESP32-DevKitC ($10)과 같은 저렴한 보드를 지원합니다.

목차
  • 간략한 설정 개요
  • 1) 설치
    • A. Linux 요구 사항 설치 (Ubuntu 18.04 / 20.04)
    • B. ESP32에 커스텀 펌웨어 플래시
  • 2) 사용 방법
    • 예 1 - 원격 대상에 연결 (마스터 역할)
    • 예 2 - BT 연결 대기 (슬레이브 역할)
    • 예 3 - HCI 브리지 모드 (다른 BT 호스트 스택과 연결)
  • 3) 소스에서 펌웨어 컴파일 (ESP32 Patching Framework)
  • 4) BT 호스트 프로그램 커스터마이징 (프로필)
  • 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.

중요: 일부 보드는 ESP32를 플래시 모드로 제대로 전환하려면 BOOT 버튼을 누르고 있어야 합니다.

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.

스니퍼를 마스터 또는 슬레이브 역할로 시작할 수 있습니다. --target 인수를 추가하면 스니퍼가 원격 대상에 연결을 시도합니다. 그렇지 않으면 누군가 연결하기를 기다립니다.

마지막으로, --bridge-only는 HCI 의사 터미널(/dev/pts/x)만 생성하므로 ESP32가 표준 HCI BT 컨트롤러로 작동할 수 있습니다. 이 기능을 사용하여 다른 BT 호스트 스택을 ESP32에 연결할 수 있습니다.

예 1 - 원격 대상에 연결 (마스터 역할)
root@kitploit:~
./BTSnifferBREDR.py --port=/dev/ttyUSB0 --target=E0:D4:E8:19:C7:69 --live-terminal --live-wireshark

mode_master

예 2 - BT 연결 대기 (슬레이브 역할)
root@kitploit:~
./BTSnifferBREDR.py --port=/dev/ttyUSB0 --live-terminal --live-wireshark
예 3 - HCI 브리지 모드 (다른 BT 호스트 스택과 연결)
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 호스트 프로그램 커스터마이징 (프로필)

BrakTooth 스니퍼는 연결을 안내하기 위해 BT 호스트 스택을 사용하므로, 다음의 수정된 BlueKitchen 예제가 사용됩니다:

  • host_stack/sdp_rfcomm_query - 이 프로그램은 슬레이브 장치와의 연결을 시작하고 SDP 스캔 및 페어링을 시도합니다.
  • host_stack/spp_counter - 이 프로그램은 연결을 대기하고 마스터 장치와 SPP(시리얼 포트) 연결을 설정합니다.

*BlueKitchen*의 공식 문서를 따라 현재 프로그램에 BT 프로필을 수정하거나 추가할 수 있습니다. 참고: host_stack/bluekitchen/example/ 폴더에는 이미 몇 가지 프로필 예제가 포함되어 있습니다.

BrakTooth 스니퍼의 소프트웨어 아키텍처

arch

커스텀 ESP32 BR/EDR 스니퍼/인젝터 펌웨어는 USB 시리얼 포트를 통해 호스트 시스템과 통신하며 커스텀 명령 또는 HCI 명령을 받을 때까지 대기합니다. 시작 시 HCI 브리지가 생성되어 BrakTooth 커스텀 프로토콜을 ESP32에서 송수신되는 표준 HCI 명령과 분리합니다. ESP32 펌웨어에서 "RX/TX Sniffer" 기능이 활성화되면 Baseband 패킷은 BTSnifferBREDR.py 스크립트로 직접 전달되며, 이 스크립트는 커스텀 프로토콜을 통해 스니핑된 패킷을 디코딩하여 Scapy로 출력하거나 라이브 캡처로 Wireshark에 덤프하고 logs 폴더에도 저장합니다.

기능 개요

firmware_design

  • RX/TX Sniffer: Baseband 패킷을 덤프하여 호스트로 전달합니다. 지원되는 패킷:
    • Baseband Header
    • 원격 대상의 NULL/POLL
    • FHS (현재 scapy 레이어 없음)
    • EIR (현재 디섹션 없음)
    • ACL Header
    • LMP
  • TX Interception: 호스트 PC가 ESP32에서 무선으로 전송되기 전에 TX 패킷을 실시간으로 수정할 수 있게 합니다. 단, ESP-PROG 또는 ESP-WROVER-KIT와 같은 고속 USB를 지원하는 ESP32 보드가 필요합니다. 두 보드 모두 FTD2232H USB-UART 컨트롤러를 갖추고 있어 USB 폴링 지연 시간을 125us로 줄일 수 있습니다. (현재는 비활성화되어 있습니다. 죄송합니다).
  • TX Injector: 호스트가 BT 페이징 절차 직후와 모든 전송 슬롯(즉, 매 1.25ms)에서 BR/EDR 패킷을 주입할 수 있게 합니다. ESP32 내부 LMP 큐에 내용이 있으면 대기가 적용됩니다. (현재는 비활성화되어 있습니다. 죄송합니다).
  • RX/TX Bypass: 페이징 절차 후 ESP32 BT 스택이 LMP 패킷을 수신하거나 전송하지 못하도록 효과적으로 '차단'합니다. 이를 통해 호스트에서 Scapy로 독립형 LMP 상태 머신을 구성할 수 있습니다 🙂. 이 기능은 SweynTooth nRF52 dongle에서 수행된 것과 유사한 작업을 BR/EDR에 대해 가능하게 할 수 있습니다.
  • ROM Patcher: 펌웨어 내부에서 ROM 훅을 설치합니다.
  • HCI IN/OUT: BT 호스트 스택과의 표준 통신 인터페이스입니다. bluekitchen과 같은 타사 스택.

감사의 말

Baseband 패킷 디섹션은 InternalBlue Broadcom Wireshark Dissector를 확장한 것입니다. 구체적으로, 해당 디섹션은 h4bcm Wireshark 플러그인을 확장하여 몇 가지 추가 BT 레이어와 당사의 커스텀 ESP32 메타데이터 헤더를 지원합니다. @jiska2342님께 감사드립니다.

다음의 모든 오픈소스 프로젝트에 감사드립니다:

  • @Ebiroll님께 Ghidra용 Xtensa 모듈을 유지 관리해 주셔서 특별히 감사드립니다.
  • 훌륭한 오픈소스 BlueKitchen BT Host Stack을 만들어 주신 @mringwal님께 감사드립니다.
  • InternalBlue 프로젝트
  • Scapy 패킷 조작 라이브러리
  • Wireshark 프로젝트
도구 다운로드