Skip to content

Auxiliary (14)

Auto-generated from modules/auxiliary/.
Load any module with use auxiliary/<name>.

Authorization required

Use only against equipment you own or have explicit written authorization to test. The authors disclaim liability for misuse.


Module index

Module Severity CVE Description
auxiliary/ble_fuzzer 🟡 MEDIUM - Fuzz BLE ATT/GATT/SMP layers to find crashes and vulnerabilities
auxiliary/ble_rpa_deanon 🟡 MEDIUM CVE-2020-35473 Exploit BLE RPA response side-channel to track and de-anonymize devices acros…
auxiliary/btlejack_capture 🟠 HIGH - BTLEJack BLE connection following, hijacking, and injection
auxiliary/btsnoop_collect ℹ️ INFO - Enable, pull, or watch Android's Bluetooth HCI snoop log via ADB
auxiliary/crypto/irk_entropy ℹ️ INFO - Analyze a 16-byte IRK for entropy + run the Core Spec ah resolution against…
auxiliary/crypto/key_quality ℹ️ INFO - Statistical quality analysis of a hex-encoded BLE key blob (LTK, IRK, link ke…
auxiliary/crypto/passkey_check ℹ️ INFO - Audit a 6-digit BLE Passkey for weak / sequential / repeated patterns
auxiliary/hw_detect ℹ️ INFO - Detect connected Bluetooth testing hardware and check dependencies
auxiliary/incoming_monitor ℹ️ INFO - Print incoming BR/EDR + BLE connection attempts from nearby devices
auxiliary/local_spoof ℹ️ INFO - Spoof local adapter hostname, alias, Class of Device, or BD_ADDR
auxiliary/mesh/mesh_pdu_decode ℹ️ INFO - Offline decoder for a captured Bluetooth Mesh Network PDU using K2 and AES-CCM
auxiliary/nrf_sniffer ℹ️ INFO - nRF52840 dongle BLE passive sniffer wrapper
auxiliary/stealtooth_breaktooth 🟠 HIGH - Infer BT session state via l2ping RTT timing without pairing; auto-trigger re…
auxiliary/ubertooth_sniff ℹ️ INFO - Ubertooth One BLE/Classic passive sniffing wrapper

Modules

auxiliary/ble_fuzzer

BLE Protocol Fuzzer

Fuzz BLE ATT/GATT/SMP layers to find crashes and vulnerabilities

Severity: 🟡 MEDIUM · Protocol: BLE

Option Required Default Description
target Target BLE device MAC address
protocol att Protocol layer to fuzz: att, smp, l2cap, all
strategy smart Fuzzing strategy: random, smart, overflow, boundary
iterations 100 Number of fuzz iterations
delay 0.1 Delay between fuzz packets in seconds
seed Random seed for reproducible fuzzing
log_file Log file for fuzz results
crash_detect true Attempt to detect target crashes via reconnect (true/false)

References: - https://asset-group.github.io/disclosures/sweyntooth/ - https://dl.acm.org/doi/10.1145/3395351.3399355


auxiliary/ble_rpa_deanon

BLE RPA De-anonymization (CVE-2020-35473)

Exploit BLE RPA response side-channel to track and de-anonymize devices across address rotations without knowing their IRK

Severity: 🟡 MEDIUM · Protocol: BLE · CVE: CVE-2020-35473

Option Required Default Description
mode observe Mode: observe, probe, correlate
duration 120 Observation/probe duration in seconds
output_file rpa_database.json JSON database file to save/load RPA fingerprints
interface hci0 HCI adapter
target_fingerprint Known fingerprint string to track (correlate mode)
min_appearances 2 Min RPA appearances to include in analysis

References: - https://www.bluetooth.com/learn-about-bluetooth/key-attributes/bluetooth-security/report-vulnerability/ - https://arxiv.org/abs/2004.11196 - https://petsymposium.org/2021/files/papers/issue3/popets-2021-0036.pdf


auxiliary/btlejack_capture

BTLEJack Capture

BTLEJack BLE connection following, hijacking, and injection

Severity: 🟠 HIGH · Protocol: BLE

Option Required Default Description
mode scan Mode: scan, follow, hijack, inject
target Target BLE MAC or access address
access_address BLE connection access address (hex)
duration 30 Capture duration in seconds
pcap_file PCAP output file
inject_data Hex data to inject (for inject mode)
channel_map Channel map for connection following (hex)

References: - https://github.com/virtualabs/btlejack - https://www.youtube.com/watch?v=wIGiZKiBmbg


auxiliary/btsnoop_collect

Android btsnoop Collector

Enable, pull, or watch Android's Bluetooth HCI snoop log via ADB

Severity: ℹ️ INFO · Protocol: DUAL

Option Required Default Description
mode full Mode: enable, disable, pull, full, watch
device ADB serial (default: first connected device)
output /tmp/btsnoop_hci.log Local output PCAP/log path
remote_path Override remote snoop path (auto-detect if empty)
capture_seconds 30 Wait time after enable before pull (full mode)

auxiliary/crypto/irk_entropy

IRK Entropy + RPA Resolution

Analyze a 16-byte IRK for entropy + run the Core Spec ah resolution against observed Resolvable Private Addresses

Severity: ℹ️ INFO · Protocol: BLE

Option Required Default Description
irk 16-byte IRK as hex (colons / 0x prefix accepted)
byte_order msb IRK byte order: msb (spec text) or lsb (over-the-air, common in btsnoop)
rpas Comma-separated RPA list to test resolution against. Empty = use hosts from the workspace.

References: - https://www.bluetooth.com/specifications/specs/core-specification-6-0/


auxiliary/crypto/key_quality

Key Quality Analyzer

Statistical quality analysis of a hex-encoded BLE key blob (LTK, IRK, link key, CSRK)

Severity: ℹ️ INFO · Protocol: DUAL

Option Required Default Description
key Key bytes as hex (with or without colons / 0x prefix)
expected_length Expected byte length (e.g. 16 for AES-128 keys). Empty = accept any length.

References: - https://www.bluetooth.com/specifications/specs/core-specification-6-0/ - https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-22r1a.pdf


auxiliary/crypto/passkey_check

Passkey Quality Check

Audit a 6-digit BLE Passkey for weak / sequential / repeated patterns

Severity: ℹ️ INFO · Protocol: BLE

Option Required Default Description
passkey 6-digit passkey to audit (digits only)

References: - https://www.bluetooth.com/specifications/specs/core-specification-6-0/ - https://www.usenix.org/conference/woot13/workshop-program/presentation/ryan


auxiliary/hw_detect

Detect connected Bluetooth testing hardware and check dependencies

Severity: ℹ️ INFO · Protocol: DUAL

Option Required Default Description
verbose True Show detailed info including install hints
check_deps True Check system tools and Python packages for each device

References: - https://ubertooth.readthedocs.io/ - https://www.nordicsemi.com/Software-and-tools/Development-Tools/nRF-Sniffer-for-Bluetooth-LE - https://github.com/virtualabs/btlejack


auxiliary/incoming_monitor

Incoming Connection Monitor

Print incoming BR/EDR + BLE connection attempts from nearby devices

Severity: ℹ️ INFO · Protocol: DUAL

Option Required Default Description
interface hci0 HCI adapter to monitor
duration 0 Monitor window in seconds (0 = run until Ctrl+C)
discoverable true Make adapter discoverable + connectable to attract probes
auto_reject true Auto-reject incoming BR/EDR connections (passive listen)

auxiliary/local_spoof

Local Adapter Spoof

Spoof local adapter hostname, alias, Class of Device, or BD_ADDR

Severity: ℹ️ INFO · Protocol: DUAL

Option Required Default Description
mode hostname What to spoof: hostname, alias, cod, bdaddr
value New value (string for hostname/alias, hex for CoD, MAC for bdaddr)
interface hci0 HCI adapter
restart true Restart the adapter after spoof (true/false)

auxiliary/mesh/mesh_pdu_decode

Mesh Network PDU Decoder

Offline decoder for a captured Bluetooth Mesh Network PDU using K2 and AES-CCM

Severity: ℹ️ INFO · Protocol: BLE

Option Required Default Description
pdu Encrypted Mesh Network PDU as hex (IVI || NID || obfuscated header || encrypted DST/TransportPDU || NetMIC)
netkey 16-byte NetKey as hex
iv_index 0x12345678 32-bit IV Index (hex or decimal). Defaults to 0x12345678.

References: - https://www.bluetooth.com/specifications/specs/mesh-protocol/


auxiliary/nrf_sniffer

nRF52840 Sniffer

nRF52840 dongle BLE passive sniffer wrapper

Severity: ℹ️ INFO · Protocol: BLE

Option Required Default Description
mode scan Mode: scan, follow, capture
target Target BLE MAC to follow (AA:BB:CC:DD:EE:FF)
serial_port nRF Sniffer serial port (e.g., /dev/ttyACM0)
duration 30 Capture duration in seconds
pcap_file PCAP output file for Wireshark
channel all BLE channel to scan (37-39 for adv, 0-36 for data, 'all' for hopping)
rssi_filter Minimum RSSI to report (e.g., -60)

References: - https://www.nordicsemi.com/Products/Development-tools/nrf-sniffer-for-bluetooth-le - https://infocenter.nordicsemi.com/topic/ug_sniffer_ble/UG/sniffer_ble/intro.html


auxiliary/stealtooth_breaktooth

Stealtooth + Breaktooth

Infer BT session state via l2ping RTT timing without pairing; auto-trigger re-pair injection on state drop (arxiv 2507.00847)

Severity: 🟠 HIGH · Protocol: CLASSIC

Option Required Default Description
mode monitor Mode: monitor, trigger, breaktooth
target Target Bluetooth BD_ADDR to monitor
duration 300 Monitoring duration in seconds (0 = indefinite)
probe_interval_ms 500 Interval between l2ping probes in milliseconds
window_size 8 RTT samples per state classification window
trigger_state disconnected State transition that fires the trigger (e.g. 'disconnected', 'idle')
impersonate_addr BD_ADDR to spoof when re-pair fires (breaktooth mode)
interface hci0 Local HCI adapter (for breaktooth re-pair)
output_file JSONL log of state transitions

References: - https://arxiv.org/html/2507.00847v1 - https://www.scitepress.org/Papers/2024/128457/128457.pdf


auxiliary/ubertooth_sniff

Ubertooth Sniffer

Ubertooth One BLE/Classic passive sniffing wrapper

Severity: ℹ️ INFO · Protocol: DUAL

Option Required Default Description
mode ble Sniff mode: ble, classic, follow, spectrum
target Target MAC for follow mode (AA:BB:CC:DD:EE:FF)
channel 37 BLE advertising channel (37, 38, 39) or Classic channel (0-78)
duration 30 Capture duration in seconds (0 = indefinite)
pcap_file PCAP output file for captured packets
ubertooth_device 0 Ubertooth device number (for multiple dongles)
access_address BLE access address to follow (hex, e.g. 8e89bed6)

References: - https://ubertooth.sourceforge.net/ - https://github.com/greatscottgadgets/ubertooth