
Scanner Bluetooth Low Energy (BLE) con risoluzione degli indirizzi privati risolvibili (RPA) mediante Identity Resolving Keys (IRKs)
Scansione Bluetooth Low Energy (BLE) con risoluzione avanzata degli Indirizzi Privati Risolvibili (RPA). Scopri i dispositivi BLE nelle vicinanze, traccia un dispositivo specifico tramite indirizzo MAC o risolvi gli indirizzi randomizzati per la privacy utilizzando una chiave di risoluzione dell'identità (IRK).
Scritto da: David Kennedy (@HackingDave) Azienda: TrustedSec
-o -)La marcatura della posizione GPS richiede che il daemon gpsd sia in esecuzione con un ricevitore GPS collegato. Se gpsd non è in esecuzione, btrpa-scan continua normalmente senza GPS.
| Piattaforma | Installazione | Avvio |
|---|---|---|
| macOS | brew install gpsd | gpsd -n /dev/tty.usbserial-* |
| Debian/Ubuntu | sudo apt install gpsd gpsd-clients | sudo systemctl start gpsd |
| Fedora/RHEL | sudo dnf install gpsd gpsd-clients | sudo systemctl start gpsd |
| Arch | sudo pacman -S gpsd | sudo systemctl start gpsd |
| Windows | Usa gpsd tramite WSL o MSYS2 | Vedi le istruzioni WSL sopra |
Per verificare che gpsd funzioni:
# Controlla che gpsd sia in ascolto
gpspipe -w -n 5
# Oppure usa il monitor curses
cgps
| Piattaforma | Note |
|---|---|
| macOS | Usa CoreBluetooth. La modalità IRK sfrutta un'API non documentata per recuperare i veri indirizzi Bluetooth invece degli UUID. --active non ha effetto: CoreBluetooth esegue sempre scansioni attive. |
| Linux | Può richiedere la capacità root o CAP_NET_ADMIN per la scansione. |
| Windows | API Bluetooth WinRT nativa: i veri indirizzi MAC sono disponibili in modo nativo. La TUI richiede pip install windows-curses. |
Questo progetto usa pyproject.toml (PEP 621), lo standard moderno di packaging Python. Definisce il progetto come pacchetto installabile con un comando CLI registrato: non è necessario eseguire i file .py direttamente.
uvx btrpa-scan --all
uvx --from git+https://github.com/hackingdave/btrpa-scan.git btrpa-scan --all
uv tool install btrpa-scan
Oppure direttamente da GitHub:
uv tool install git+https://github.com/hackingdave/btrpa-scan.git
pip install btrpa-scan
Per il supporto GUI (interfaccia radar basata su Flask):
pip install btrpa-scan[gui]
git clone https://github.com/hackingdave/btrpa-scan.git
cd btrpa-scan
pip install .
usage: btrpa-scan [-h] [-a] [--irk HEX] [--irk-file PATH] [-t TIMEOUT]
[--output {csv,json,jsonl}] [-o FILE] [--log FILE]
[-v | -q] [--min-rssi DBM] [--rssi-window N] [--active]
[--environment {free_space,indoor,outdoor}]
[--ref-rssi DBM] [--name-filter PATTERN]
[--alert-within METERS] [--tui] [--gui] [--gui-port PORT]
[--no-gps] [--adapters LIST] [mac]
BLE Scanner — scopri tutti i dispositivi o cerca uno specifico
positional arguments:
mac Indirizzo MAC del dispositivo da cercare (ometti per scansionare tutto)