Categoria: Aerial Wi-Fi Mapping
Introduzione:
Dopo aver configurato con successo Kismet e GPSD sul mio Raspberry Pi, mi sono spinto oltre, esplorando il potenziale del mapping WiFi in modalità aerea. Mentre le tradizionali esplorazioni via auto, bici o a piedi offrono una buona copertura, spesso non sono ideali per raggiungere zone difficilmente accessibili. Per superare questi limiti, ho optato per una soluzione innovativa: l'uso di un drone. Il DJI Mini 2 SE, equipaggiato con un modulo ESP8266 + OLED + SD Card e alimentato da una batteria di un Baofeng UV-5R, si è rivelato uno strumento eccezionale per il mapping aereo delle reti WiFi, aprendo nuove prospettive nell'esplorazione di aree inesplorate.
"DJI Mini 2 SE in volo utilizzato per il progetto"
Setup iniziale :
Ho scelto di utilizzare componenti che combinassero leggerezza e funzionalità avanzate. Per la scansione continua delle reti Wi-Fi circostanti, ho impiegato un modulo ESP8266 che mi permette di monitorare lo stato delle operazioni in tempo reale e di registrare i dettagli di ogni rete Wi-Fi su una scheda SD collegata direttamente all'ESP.
Per l'alimentazione, ho sperimentato una soluzione funzionante ma con ampi margini di miglioramento: una batteria da 60 grammi di un Baofeng UV5R da 7.2 volts. Nonostante le alternative disponibili, questa batteria si è rivelata la scelta ideale per la sua leggerezza, grande durata e per l'integrazione con il drone DJI Mini 2 SE. Con un peso totale di circa 330 grammi, il drone rimane agile e maneggevole quando c'è calma di vento, ideale per esplorazioni aeree senza sacrificare di molto la durata del volo.
"Prototipo iniziale dell'ESP8266 alimentata dalla batteria Baofeng."
Analisi del Progetto:
Per ottimizzare sia il peso che la memoria, ho deciso di non installare un modulo GPS direttamente sull'ESP8266. Invece, ho scritto il firmware dell'ESP per eseguire scansioni della zona circostante ogni secondo, salvando ogni nuovo SSID scoperto sulla scheda SD, evitando di registrare duplicati. Al momento dell'attivazione, il microcontrollore avvia la funzione millis(), fondamentale per cronometrare i secondi trascorsi dall'inizio. Questo processo è essenziale per correlare ogni WiFi rilevato al momento esatto della sua scoperta, sincronizzando queste informazioni con i tempi di volo del drone. Questo metodo permette di associare ogni rilevazione WiFi alle precise coordinate di localizzazione del drone in quel preciso istante.
Recap:
- ESP8266 con OLED Built-in e Lettore SD: Peso di 20 grammi, integra capacità di comunicazione Wi-Fi e visualizzazione dati senza appesantire il drone.
- Batteria da 7.2 Volt Baofeng: Peso di 60 grammi, fornisce energia sufficiente per molteplici voli mantenendo un basso impatto sul peso totale.
- DJI Mini 2 SE: Peso di 249 grammi, drone ultraleggero perfetto per esplorazioni e monitoraggi in aree difficilmente accessibili.
Peso totale ≈ 329 grammi
Ho creato un programmino in Java che confronta il file csv generato dall'ESP e quello del Drone che permetterà di associare in base al criterio sopra spiegato, ciascun WiFi alle sue coordinate geografiche. Il programma inoltre, genererà un file KML che permetterà di visualizzare su Google Earth o qualsiasi altro programma di mapping, il rilevamento geografico degli access point. Questo post-processing software, permette di risparmiare circa 20 grammi (peso del modulo GPS) e qualche kb di codice!
"Estratto di codice Java che effettua il match millis -> coordinate -> generazione KML."
"Estratto di codice C che mostra l'inizializzazione della variabile static startTime inizializzata con millis()"
Il "Warflying" dimostra che le soluzioni innovative possono superare le barriere tradizionali nell'esplorazione e nella sicurezza delle reti Wi-Fi. L'utilizzo del drone DJI Mini 2 SE, combinato con il modulo ESP8266 e l'approccio creativo alla raccolta dei dati, non solo ha permesso di accedere a zone altrimenti inesplorabili (Wi-Fi abitazioni con piani alti, zone off-limits pedonali), ma ha anche reso il processo di mapping più efficiente.
La visualizzazione dei dati su Google Earth tramite il file KML generato ha fornito un feedback visivo immediato e comprensibile, rendendo tangibili i risultati delle scansioni e offrendo uno strumento prezioso per ulteriori analisi. Questa esplorazione ha stabilito un precedente metodologico per futuri studi e applicazioni nel campo della sicurezza informatica.
"Risultato del primo volo di testing , 5 minuti di flight-time."
Il mapping delle reti Wi-Fi fornisce ai malintenzionati uno strumento efficace per enumerare e analizzare le reti in un determinato quartiere, identificando potenziali punti deboli da sfruttare. Questa pratica consente di scoprire Access Point (AP) che utilizzano protocolli di sicurezza obsoleti, come il WEP (anche se ormai quasi estinto del tutto), notoriamente vulnerabile agli attacchi. Inoltre, AP con nomi di rete personalizzati possono indicare configurazioni fai-da-te, che spesso sono meno sicure rispetto a quelle professionali. Attraverso il mapping, i malintenzionati possono compilare un elenco di reti potenzialmente vulnerabili, selezionando quelle più facili da attaccare per commettere attività illegali come furto di dati, spionaggio o intercettazioni. Questo processo non solo espone le reti a rischi diretti, ma facilita anche la pianificazione di attacchi più sofisticati, aumentando il pericolo per gli utenti e le aziende collegate a tali reti.
Il drone utilizzato nel mio progetto è uno dei più piccoli della sua categoria, immaginate ora di utilizzare un DJI Matrice o un AIR 2S ad esempio i quali, possono sollevare payloads ben più pesanti di un semplice microcontrollore e una batteria dal peso totale di 80 grammi. Con questi droni è possibile far volare un vero e proprio computer! Il setup in questi casi comprenderebbe un Raspberry Pi (idealmente il 4 con 8 gb di ram), una scheda di rete Alfa capace di modalità monitor, ed un modulo internet con sim card per poter controllare Kali tramite un tunnel VPN come ZeroTier.
Con questa configurazione si è in grado di lanciare attacchi mirati da remoto utilizzando il drone come vettore WiFi. Immaginiamo di far volare il velivolo sull'attico di un palazzo molto alto e di effettuare un Recon Airodump osservando dapprima una panoramica generale dei dispositivi connessi, abitudini, domotica, analizzando i mac address per poi poi testare vulnerabilità WPS o effettuare un rapido Evil Twin Attack aereo nel caso in cui ci fosse qualcuno connesso in rete (tempi batteria drone permettendo). Utilizzando script come Airgeddon è possibile sferrare gli attacchi in tempi estremamente rapidi data la natura automatizzata dello script.
Guardate ad esempio il setup di questo YouTuber il quale utilizza una soluzione simile a quella sopra descritta.
* UPDATE! 11/08/2024 V2 *
Eccoci di nuovo, non soddisfato pienamente del risultato, ho collaborato con un amico per ridurre al massimo il peso complessivo ed aumentare l'efficienza generale del drone. Inannzitutto, è stato costruito un case leggero con stampante 3D, ed è stata acquistata una nuova batteria molto più leggera. Inoltre, è stato inserito un modulo step-up per portare i 3.7V della batteria a 5V, necessari per alimentare il modulo SD di cui disponevo in precedenza. Il risultato finale è stato un risparmio singificativo dell ingombro e del peso del modulo WarFlying, dagli 80 grammi complessivi del modulo, siamo scesi a circa 60!
Aumento del guadagno!
Un upgrade significativo è stata l'installazione di un antenna WiFi esterna (la striscia orizzontale nera che vedete in foto) per amplificare notevolmente il RSSI.
Ho pianificato un ulteriore upgrade per rendere il case più aerodinamico e leggero, restate aggiornati!