Blue Hydra
Démon de découverte d'appareils Bluetooth et BLE qui scanne et suit en continu les appareils proches, classiques et low-energy. Bluetooth and BLE device discovery daemon that continuously scans for and tracks nearby devices, classic and low-energy.
↗ https://github.com/pwnieexpress/blue_hydraOverview
Blue Hydra is a Ruby-based Bluetooth device discovery service built on top of bluez, ubertooth tooling, and BlueZ’s hcitool/hcidump. It runs continuously in the background, detecting both classic Bluetooth and BLE devices, logging metadata (name, address, vendor, RSSI, first/last seen) into a local SQLite database — useful for physical/wireless recon and building an inventory of Bluetooth devices in range over time.
Common Usage
Run interactively (curses UI showing live device discovery)
sudo blue_hydra
Run as a daemon in the background
sudo blue_hydra -d
Query the local device database after a scan session
sqlite3 blue_hydra.db "SELECT address, name, vendor, last_seen FROM blue_hydra_devices;"
Typical Workflow
Step 1: Start a scan session and leave it running during a site visit
sudo blue_hydra
Step 2 (from another terminal): tail discovered devices live
tail -f blue_hydra.log
Step 3: Export results for reporting
sqlite3 -header -csv blue_hydra.db "SELECT * FROM blue_hydra_devices;" > devices.csv
Tips
- Works with a plain onboard/USB Bluetooth adapter for BLE; classic Bluetooth device-name resolution benefits from an Ubertooth One if available
- Good for a long-running “site survey” during a physical assessment — leave it scanning for the duration of an on-site visit
- Combine with
bluelogfor a lighter-weight classic-only survey when BLE tracking isn’t needed
Help / Man page
Usage: blue_hydra [options]
Options:
-d, --daemonize Run as a background daemon (no curses UI)
-q, --quiet Suppress UI, log only
-k, --kill Kill any running blue_hydra process
-c, --config FILE Use alternate config file
-h, --help Show this help
Data is stored in blue_hydra.db (SQLite) in the working directory.
Fields: address, uuid, name, vendor, le_features, classic_features,
company, first_seen, last_seen, strongest_rssi
Vue d’ensemble
Blue Hydra est un service de découverte d’appareils Bluetooth écrit en Ruby, bâti par-dessus bluez, l’outillage ubertooth, et les hcitool/hcidump de BlueZ. Il tourne en continu en arrière-plan, détecte à la fois le Bluetooth classique et le BLE, et journalise les métadonnées (nom, adresse, constructeur, RSSI, première/dernière détection) dans une base SQLite locale : utile pour la recon physique/sans-fil et pour constituer, dans le temps, un inventaire des appareils Bluetooth à portée.
Utilisation courante
# Lancer en interactif (UI curses montrant la découverte d'appareils en direct)
sudo blue_hydra
# Lancer comme démon en arrière-plan
sudo blue_hydra -d
# Interroger la base d'appareils locale après une session de scan
sqlite3 blue_hydra.db "SELECT address, name, vendor, last_seen FROM blue_hydra_devices;"
Workflow typique
# Étape 1 : démarrer une session de scan et la laisser tourner pendant une visite de site
sudo blue_hydra
# Étape 2 (depuis un autre terminal) : suivre les appareils découverts en direct
tail -f blue_hydra.log
# Étape 3 : exporter les résultats pour le rapport
sqlite3 -header -csv blue_hydra.db "SELECT * FROM blue_hydra_devices;" > devices.csv
Conseils
- Fonctionne avec un simple adaptateur Bluetooth intégré ou USB pour le BLE ; la résolution des noms d’appareils Bluetooth classiques bénéficie d’un Ubertooth One si disponible
- Idéal pour un “site survey” de longue durée pendant une évaluation physique : laissez-le scanner pour toute la durée d’une visite sur site
- Combinez avec
bluelogpour un relevé plus léger, uniquement classique, quand le suivi BLE n’est pas nécessaire
Aide / Page de manuel
Usage: blue_hydra [options]
Options:
-d, --daemonize Run as a background daemon (no curses UI)
-q, --quiet Suppress UI, log only
-k, --kill Kill any running blue_hydra process
-c, --config FILE Use alternate config file
-h, --help Show this help
Data is stored in blue_hydra.db (SQLite) in the working directory.
Fields: address, uuid, name, vendor, le_features, classic_features,
company, first_seen, last_seen, strongest_rssi