Categoria: WiFI 3D Mapping
Introduzione:
WifiBall è un tool che permette di visualizzare i dati WiFi in tempo reale in un ambiente tridimensionale. Utilizza Babylon.js per creare una rappresentazione 3D e una connessione WebSocket per ricevere i dati dal giroscopio di un dispositivo Android. Il sistema raccoglie i dati dai punti di accesso WiFi rilevati con airodump-ng, mostrando informazioni come la potenza del segnale, l’orientamento del dispositivo e molto altro.
"Logo di WiFi Ball"
Funzionalità Principali
- Visualizzazione in Tempo Reale: I punti di accesso (AP) vengono visualizzati man mano che vengono rilevati, posizionati nello spazio 3D in base alla potenza del segnale.
- Integrazione con il Giroscopio: L’orientamento del dispositivo Android montato sull’antenna direzionale viene utilizzato per determinare la posizione dei punti di accesso nello spazio.
- Tooltip Dinamici: Passando il mouse sopra un AP, appaiono dettagli come ESSID, BSSID, canale, potenza del segnale, privacy, cifratura e metodo di autenticazione.
- Colorazione Dinamica: I punti di accesso vengono colorati in base alla potenza del segnale:
- Verde: 0 a -45 dBm (segnale forte)
- Giallo: -45 a -70 dBm (segnale medio)
- Rosso: Inferiore a -70 dBm (segnale debole)
- Sidebar Interattiva: Un menu laterale elenca tutti i punti di accesso rilevati, con la possibilità di visualizzare stazioni associate o dispositivi non associati.
Prerequisiti
Hardware Necessario
- Antenna Direttiva: Per una rilevazione più accurata del segnale WiFi.
- Scheda WiFi in Modalità Monitor: Un esempio è l'Alfa AWUS036NHA.
- Dispositivo Android: Dotato di sensore giroscopico, montato sull'antenna per tracciare l'orientamento.
- Tripod: Per stabilizzare l’antenna e il dispositivo durante la scansione.
Software Necessario
- Ambiente Linux: Il progetto è stato sviluppato su Debian.
- Java 21+: L'applicazione è una SpringBoot basata su Java 21.
- Suite aircrack-ng: Necessaria per il monitoraggio del traffico WiFi.
Installazione
1. Clona il Repository:
git clone https://github.com/emp3r0r7/WifiBall.git
2. Installa le Dipendenze:
sudo apt install aircrack-ng
3. Compila ed Esegui l'Applicazione:
cd wifiball
./mvnw clean package
sudo java -jar /your/desired/location/WifiBall-0.0.1-Alpha.jar
4. Configura l’App Android: Installa e avvia l'app GyroScope sul tuo dispositivo Android.
5. Configura la Scheda di Rete: Modifica il file di configurazione per impostare la scheda di rete in modalità monitor:
sudo nano /root/.wifiball/config.properties
6. Accedi all’Applicazione: Apri il browser e naviga su http://localhost:8011/realtime-data per vedere la visualizzazione in tempo reale.
Utilizzo
- Movimenti Graduali: Mentre ruoti l'antenna, fallo in modo lento e uniforme. Il sistema ha una frequenza di aggiornamento di un secondo, quindi movimenti bruschi non migliorano la precisione.
- Controllo della Camera: Utilizza il mouse per ruotare, zoomare e muoverti nella scena 3D.
- Dettagli dei Punti di Accesso: Passa il mouse sopra un AP per visualizzare i dettagli relativi al segnale.
- Toggle della Sidebar: Clicca sul pulsante "Mostra Lista AP" per vedere tutti i punti di accesso e le stazioni associate.
"Dettaglio del dispositivo Android installato sull'antenna direttiva."
Obiettivo del Progetto
WiFiBall è stato sviluppato con l'intento di fornire una soluzione per localizzare gli access point (AP) e le stations associate (e non) nello spazio tridimensionale con una ragionevole accuratezza. Grazie all'utilizzo dell'antenna direttiva, dei dati provenienti dal giroscopio e dall'elaborazione in tempo reale della potenza del segnale WiFi, è possibile tracciare la posizione relativa degli AP. Questo approccio permette di identificare non solo la presenza di un segnale, ma anche di dedurre da quale direzione proviene, consentendo agli operatori di ottenere una mappatura più o meno precisa (WIP) della rete WiFi circostante. Tale funzionalità è particolarmente utile per attività di auditing di sicurezza delle reti wireless, consentendo di individuare potenziali vulnerabilità nella copertura o di identificare la posizione di AP non autorizzati.