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_hydra

Overview

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 bluelog for 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 bluelog pour 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