Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@
- Fixed BLE scanning not being reliable
- Added AirTag RSSI update logging so existing tags report RSSI changes every few seconds
- Add vendor board support and images to documentation - @tototo31
- Added detectors for Apple, Samsung, Google, Tile, Axon, Taser, and Flock devices - @tototo31
- Fixed an issue that would cause Chameleon Ultra to recover less keys than a PN532
- Route evil portal HTML requests through the UART HTML buffer when active instead of the SD-backed file handler.

Expand Down
14 changes: 14 additions & 0 deletions docs/hugo docs/content/latest/ble/scanning.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,20 @@ Discover nearby BLE devices and gather information about them.
- While scanning, RSSI for already discovered AirTags is logged every few seconds to help you see proximity changes over time.
- Use **List AirTags** to see discovered devices, or **Select AirTag** to prepare for spoofing.

### BLE Device Detectors
- **UI**: Menu → Bluetooth → Detectors → [Detector]
- **CLI**: `blescan -apple|-samsung|-google|-tile|-axon|-taser|-flock`
- Runs brand- and device-specific detectors that watch for vendor beacons and trackers, logging MAC address, name (when available), device type, and RSSI.

**Available detectors:**
- **Apple Device Detector** (`blescan -apple`) — Detects nearby Apple Continuity / Find My devices (AirPods, iPhones, iPads, Macs, Apple TV, HomePod, AirTags, etc.).
- **Samsung Device Detector** (`blescan -samsung`) — Detects Samsung phones, watches, and accessories using Samsung BLE services.
- **Google Device Detector** (`blescan -google`) — Detects Google / Android gear (Pixel phones and buds, Nest devices, Eddystone / Fast Pair style beacons).
- **Tile Tracker Detector** (`blescan -tile`) — Detects Tile BLE trackers and compatible tags.
- **Axon Camera Detector** (`blescan -axon`) — Detects Axon body cameras using known vendor MAC prefixes.
- **Taser Device Detector** (`blescan -taser`) — Detects Taser devices using known vendor MAC prefixes.
- **Flock Device Detector** (`blescan -flock`) — Detects Flock-style ALPR / camera devices using their manufacturer identifier.

### BLE Skimmer Detection
- **UI**: Menu → Bluetooth → BLE Skimmer Detect
- **CLI**: `capture -skimmer`
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ toc: true

### Discovery

- **`blescan [-f|-ds|-a|-r|-s]`** — Scan for BLE devices, Flippers, spam detectors, or raw advertising; `-s` stops.
- **`blescan [-f|-ds|-a|-r|-apple|-samsung|-google|-tile|-axon|-taser|-flock|-s]`** — Scan for BLE devices: Flippers (`-f`), BLE spam detector (`-ds`), AirTag scanner (`-a`), raw advertising (`-r`), or brand/device detectors (`-apple|-samsung|-google|-tile|-axon|-taser|-flock`); `-s` stops.
- **`blewardriving [-s]`** — Log BLE beacons with GPS metadata.

### Spoofing
Expand Down
2 changes: 1 addition & 1 deletion docs/hugo docs/public/index.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/hugo docs/public/latest/ble/index.json

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions docs/hugo docs/public/latest/ble/scanning/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -39,14 +39,14 @@
<a href=/latest/nfc/supported/ class=sidebar__sublink>Supported Tags</a></div></div><div class=sidebar__group><button class="sidebar__group-toggle collapsed" type=button data-bs-toggle=collapse data-bs-target=#collapse-latestdevelopment aria-expanded=false aria-controls=collapse-latestdevelopment>
<span>Development</span>
<span class=sidebar__group-icon aria-hidden=true></span></button><div class="collapse sidebar__group-items" id=collapse-latestdevelopment><a href=/latest/development/ class=sidebar__sublink>Overview</a>
<a href=/latest/development/build-py-kconfig/ class=sidebar__sublink>Adjusting build options</a></div></div></nav></aside><div class=content><main class=content__body><article class=doc><header><h1>Scanning</h1><p>Discover and analyze nearby Bluetooth Low Energy devices.</p></header><aside class=doc__toc><h2>On this page</h2><nav id=TableOfContents><ul><li><a href=#prerequisites>Prerequisites</a></li><li><a href=#scanning-for-devices>Scanning for devices</a><ul><li><a href=#on-device-ui>On-device UI</a></li><li><a href=#command-line>Command line</a></li></ul></li><li><a href=#scanning-modes>Scanning modes</a><ul><li><a href=#find-flippers>Find Flippers</a></li><li><a href=#airtag-scanner>AirTag Scanner</a></li><li><a href=#ble-skimmer-detection>BLE Skimmer Detection</a></li></ul></li><li><a href=#listing-and-selecting-devices>Listing and selecting devices</a><ul><li><a href=#list-discovered-devices>List discovered devices</a></li><li><a href=#select-a-device-for-further-action>Select a device for further action</a></li></ul></li><li><a href=#notes>Notes</a></li><li><a href=#troubleshooting>Troubleshooting</a></li></ul></nav></aside><p>Discover nearby BLE devices and gather information about them.</p><blockquote><p><strong>Wi-Fi impact:</strong> Starting any BLE scan temporarily suspends the GhostNet access point. Wi-Fi services resume automatically once you stop scanning (for example by running <code>stop</code> or pressing <strong>Back</strong> in the UI).</p></blockquote><h2 id=prerequisites>Prerequisites
<a href=/latest/development/build-py-kconfig/ class=sidebar__sublink>Adjusting build options</a></div></div></nav></aside><div class=content><main class=content__body><article class=doc><header><h1>Scanning</h1><p>Discover and analyze nearby Bluetooth Low Energy devices.</p></header><aside class=doc__toc><h2>On this page</h2><nav id=TableOfContents><ul><li><a href=#prerequisites>Prerequisites</a></li><li><a href=#scanning-for-devices>Scanning for devices</a><ul><li><a href=#on-device-ui>On-device UI</a></li><li><a href=#command-line>Command line</a></li></ul></li><li><a href=#scanning-modes>Scanning modes</a><ul><li><a href=#find-flippers>Find Flippers</a></li><li><a href=#airtag-scanner>AirTag Scanner</a></li><li><a href=#ble-device-detectors>BLE Device Detectors</a></li><li><a href=#ble-skimmer-detection>BLE Skimmer Detection</a></li></ul></li><li><a href=#listing-and-selecting-devices>Listing and selecting devices</a><ul><li><a href=#list-discovered-devices>List discovered devices</a></li><li><a href=#select-a-device-for-further-action>Select a device for further action</a></li></ul></li><li><a href=#notes>Notes</a></li><li><a href=#troubleshooting>Troubleshooting</a></li></ul></nav></aside><p>Discover nearby BLE devices and gather information about them.</p><blockquote><p><strong>Wi-Fi impact:</strong> Starting any BLE scan temporarily suspends the GhostNet access point. Wi-Fi services resume automatically once you stop scanning (for example by running <code>stop</code> or pressing <strong>Back</strong> in the UI).</p></blockquote><h2 id=prerequisites>Prerequisites
<a class=heading-anchor href=#prerequisites aria-label="Copy link to this section"><svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><g stroke="currentColor" stroke-width="1.2" stroke-linecap="round" fill="none" transform="rotate(45 12 12)"><path d="M14 12c0 2.761-2.239 5-5 5H7A5 5 0 117 7h.5"/><path d="M10 12c0-2.761 2.239-5 5-5h2a5 5 0 010 10h-.5"/></g></svg></a></h2><ul><li>GhostESP flashed device, powered on with a wireless antenna.</li><li>Device must support Bluetooth (not available on ESP32-S2).</li></ul><h2 id=scanning-for-devices>Scanning for devices
<a class=heading-anchor href=#scanning-for-devices aria-label="Copy link to this section"><svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><g stroke="currentColor" stroke-width="1.2" stroke-linecap="round" fill="none" transform="rotate(45 12 12)"><path d="M14 12c0 2.761-2.239 5-5 5H7A5 5 0 117 7h.5"/><path d="M10 12c0-2.761 2.239-5 5-5h2a5 5 0 010 10h-.5"/></g></svg></a></h2><h3 id=on-device-ui>On-device UI</h3><ol><li>Open <strong>Menu → Bluetooth</strong>.</li><li>Choose a scanning mode from the options below.
The device will start scanning. Leave it running until you have enough data.</li><li>Back out of the terminal view to stop scanning.
The device will show a summary of discovered devices.</li></ol><h3 id=command-line>Command line</h3><ol><li>Open the GhostESP terminal.</li><li>Run <code>blescan [OPTION]</code> where the option is one of the modes below (for example, <code>blescan -f</code>).
The device will start scanning.</li><li>Run <code>blescan -s</code> when you&rsquo;re done.
The device will stop scanning and show a summary.</li></ol><h2 id=scanning-modes>Scanning modes
<a class=heading-anchor href=#scanning-modes aria-label="Copy link to this section"><svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><g stroke="currentColor" stroke-width="1.2" stroke-linecap="round" fill="none" transform="rotate(45 12 12)"><path d="M14 12c0 2.761-2.239 5-5 5H7A5 5 0 117 7h.5"/><path d="M10 12c0-2.761 2.239-5 5-5h2a5 5 0 010 10h-.5"/></g></svg></a></h2><h3 id=find-flippers>Find Flippers</h3><ul><li><strong>UI</strong>: Menu → Bluetooth → Find Flippers</li><li><strong>CLI</strong>: <code>blescan -f</code></li><li>Scans for nearby Flipper Zero devices and displays their names and signal strength.</li><li>After scanning, use <strong>Select Flipper</strong> to track a specific device&rsquo;s RSSI (signal strength) in real time as you move around.</li></ul><h3 id=airtag-scanner>AirTag Scanner</h3><ul><li><strong>UI</strong>: Menu → Bluetooth → Start AirTag Scanner</li><li><strong>CLI</strong>: <code>blescan -a</code></li><li>Scans for Apple AirTags and other Find My devices using active scanning with aggressive parameters to maximize detection.</li><li>Allows duplicate advertisements to be reported for better tracking.</li><li>While scanning, RSSI for already discovered AirTags is logged every few seconds to help you see proximity changes over time.</li><li>Use <strong>List AirTags</strong> to see discovered devices, or <strong>Select AirTag</strong> to prepare for spoofing.</li></ul><h3 id=ble-skimmer-detection>BLE Skimmer Detection</h3><ul><li><strong>UI</strong>: Menu → Bluetooth → BLE Skimmer Detect</li><li><strong>CLI</strong>: <code>capture -skimmer</code></li><li>Scans for payment terminal skimmers that use BLE to exfiltrate card data.</li><li>Logs detected skimmers to a PCAP file for analysis.</li></ul><h2 id=listing-and-selecting-devices>Listing and selecting devices
<a class=heading-anchor href=#scanning-modes aria-label="Copy link to this section"><svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><g stroke="currentColor" stroke-width="1.2" stroke-linecap="round" fill="none" transform="rotate(45 12 12)"><path d="M14 12c0 2.761-2.239 5-5 5H7A5 5 0 117 7h.5"/><path d="M10 12c0-2.761 2.239-5 5-5h2a5 5 0 010 10h-.5"/></g></svg></a></h2><h3 id=find-flippers>Find Flippers</h3><ul><li><strong>UI</strong>: Menu → Bluetooth → Find Flippers</li><li><strong>CLI</strong>: <code>blescan -f</code></li><li>Scans for nearby Flipper Zero devices and displays their names and signal strength.</li><li>After scanning, use <strong>Select Flipper</strong> to track a specific device&rsquo;s RSSI (signal strength) in real time as you move around.</li></ul><h3 id=airtag-scanner>AirTag Scanner</h3><ul><li><strong>UI</strong>: Menu → Bluetooth → Start AirTag Scanner</li><li><strong>CLI</strong>: <code>blescan -a</code></li><li>Scans for Apple AirTags and other Find My devices using active scanning with aggressive parameters to maximize detection.</li><li>Allows duplicate advertisements to be reported for better tracking.</li><li>While scanning, RSSI for already discovered AirTags is logged every few seconds to help you see proximity changes over time.</li><li>Use <strong>List AirTags</strong> to see discovered devices, or <strong>Select AirTag</strong> to prepare for spoofing.</li></ul><h3 id=ble-device-detectors>BLE Device Detectors</h3><ul><li><strong>UI</strong>: Menu → Bluetooth → Detectors → [Detector]</li><li><strong>CLI</strong>: <code>blescan -apple|-samsung|-google|-tile|-axon|-taser|-flock</code></li><li>Runs brand- and device-specific detectors that watch for vendor beacons and trackers, logging MAC address, name (when available), device type, and RSSI.</li></ul><p><strong>Available detectors:</strong></p><ul><li><strong>Apple Device Detector</strong> (<code>blescan -apple</code>) — Detects nearby Apple Continuity / Find My devices (AirPods, iPhones, iPads, Macs, Apple TV, HomePod, AirTags, etc.).</li><li><strong>Samsung Device Detector</strong> (<code>blescan -samsung</code>) — Detects Samsung phones, watches, and accessories using Samsung BLE services.</li><li><strong>Google Device Detector</strong> (<code>blescan -google</code>) — Detects Google / Android gear (Pixel phones and buds, Nest devices, Eddystone / Fast Pair style beacons).</li><li><strong>Tile Tracker Detector</strong> (<code>blescan -tile</code>) — Detects Tile BLE trackers and compatible tags.</li><li><strong>Axon Camera Detector</strong> (<code>blescan -axon</code>) — Detects Axon body cameras using known vendor MAC prefixes.</li><li><strong>Taser Device Detector</strong> (<code>blescan -taser</code>) — Detects Taser devices using known vendor MAC prefixes.</li><li><strong>Flock Device Detector</strong> (<code>blescan -flock</code>) — Detects Flock-style ALPR / camera devices using their manufacturer identifier.</li></ul><h3 id=ble-skimmer-detection>BLE Skimmer Detection</h3><ul><li><strong>UI</strong>: Menu → Bluetooth → BLE Skimmer Detect</li><li><strong>CLI</strong>: <code>capture -skimmer</code></li><li>Scans for payment terminal skimmers that use BLE to exfiltrate card data.</li><li>Logs detected skimmers to a PCAP file for analysis.</li></ul><h2 id=listing-and-selecting-devices>Listing and selecting devices
<a class=heading-anchor href=#listing-and-selecting-devices aria-label="Copy link to this section"><svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><g stroke="currentColor" stroke-width="1.2" stroke-linecap="round" fill="none" transform="rotate(45 12 12)"><path d="M14 12c0 2.761-2.239 5-5 5H7A5 5 0 117 7h.5"/><path d="M10 12c0-2.761 2.239-5 5-5h2a5 5 0 010 10h-.5"/></g></svg></a></h2><p>After scanning, you can interact with discovered devices:</p><h3 id=list-discovered-devices>List discovered devices</h3><ul><li><strong>Flippers</strong>: Menu → Bluetooth → List Flippers or CLI: <code>listflippers</code></li><li><strong>AirTags</strong>: Menu → Bluetooth → List AirTags or CLI: <code>list -airtags</code></li></ul><h3 id=select-a-device-for-further-action>Select a device for further action</h3><ul><li><strong>Flipper</strong>: Menu → Bluetooth → Select Flipper<ul><li>Once selected, the device will continuously track and display the Flipper&rsquo;s RSSI (signal strength).</li><li>Use this to locate the Flipper by moving around and watching the signal strength change.</li></ul></li><li><strong>AirTag</strong>: Menu → Bluetooth → Select AirTag (prepares for spoofing)</li></ul><h2 id=notes>Notes
<a class=heading-anchor href=#notes aria-label="Copy link to this section"><svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><g stroke="currentColor" stroke-width="1.2" stroke-linecap="round" fill="none" transform="rotate(45 12 12)"><path d="M14 12c0 2.761-2.239 5-5 5H7A5 5 0 117 7h.5"/><path d="M10 12c0-2.761 2.239-5 5-5h2a5 5 0 010 10h-.5"/></g></svg></a></h2><ul><li>BLE scanning is not available on ESP32-S2 devices.</li><li>Scanning modes are mutually exclusive; starting a new scan will stop the previous one.</li><li>Signal strength (RSSI) is displayed in dBm; higher values (closer to 0) indicate stronger signals.</li><li>Some devices may not respond to all scanning modes depending on their BLE implementation.</li></ul><h2 id=troubleshooting>Troubleshooting
<a class=heading-anchor href=#troubleshooting aria-label="Copy link to this section"><svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><g stroke="currentColor" stroke-width="1.2" stroke-linecap="round" fill="none" transform="rotate(45 12 12)"><path d="M14 12c0 2.761-2.239 5-5 5H7A5 5 0 117 7h.5"/><path d="M10 12c0-2.761 2.239-5 5-5h2a5 5 0 010 10h-.5"/></g></svg></a></h2><ul><li><strong>No devices found</strong>: Move closer to BLE devices and try scanning again.</li><li><strong>Scanning stops immediately</strong>: Check that your device has Bluetooth enabled. Remember that the AP pauses during scans—wait a moment after stopping for Wi-Fi to return.</li><li><strong>Device not responding</strong>: Some devices may be in sleep mode or have BLE disabled. Try scanning again or move closer.</li><li><strong>Bluetooth not supported</strong>: Ensure you&rsquo;re using a device other than ESP32-S2, which does not have Bluetooth support.</li></ul><nav class=doc__nav aria-label="Document navigation"><a class="doc__nav-link doc__nav-link--next" href=/latest/ble/attacks/><span>Next →</span>
Expand Down
Loading