
Spoofing della geolocalizzazione WiFi con ESP8266
Sarà pubblicato il 15 giugno
SkyLift è un dispositivo di spoofing della geolocalizzazione a basso costo. Attualmente utilizza l'ESP8266 per trasmettere Beacon Frame WiFi al fine di sfruttare una vulnerabilità di lunga data (2008) nei servizi di geolocalizzazione WiFi.
Questa terza versione prototipale di SkyLift è stata ulteriormente sviluppata durante una web residency con Akademie Schloss Solitude e ZKM. Leggi un'intervista sul progetto. Oppure costruiscine uno tuo con le istruzioni qui sotto per meno di 5 $.

SkyLift è stato originariamente sviluppato in collaborazione con Surya Mattu per lo show Welcome to Ecuador! nella stanza Assange di !Mediengruppe Bitnik alla Zoo Galerie di Nantes nel 2016. Lo sviluppo di questa versione aggiornata, V0.3, è iniziato a novembre 2016 ed è stato finalmente rilasciato a maggio 2017 con il supporto di una web residency presso Schloss Solitude. Questa versione apporta diversi miglioramenti rispetto al sistema iniziale (SkyLift V0.1), tra cui:
Per informazioni sullo SkyLift originale (V0.1), vedere https://ahprojects.com/notebook/2016/skylift-geolocation/
SkyLift è un progetto open source mantenuto da Adam Harvey che indaga le vulnerabilità di sicurezza e le opportunità creative nei servizi di geolocalizzazione degli smartphone rivolti ai consumatori.
Se sei interessato a ottenere un dispositivo completo e pronto all'uso, aggiungiti alla mia mailing list all'indirizzo https://undisclosed.cc/.
git clone https://github.com/adamhrv/skylift/arduino/skylift_v03_embassy" carica lo sketch "skylift_v03_embassy.ino"Cosa ti servirà:
Con display OLED (opzionale):
Sia il display OLED che l'ESP8266 NodeMCU possono essere acquistati su eBay a circa metà prezzo se sei disposto ad aspettare 1-2 settimane per la consegna. L'ESP8266 può costare anche solo 3 $.
Arduino/test_single_beacon_frameArduino/test_oled_screenArduino/skylift_v03_embassySuggerimenti per migliorare le prestazioni:
Se ti trovi in un luogo chiuso senza altri router WiFi e SkyLift non funziona, apri una segnalazione di issue includendo quanti più dettagli possibile:
Puoi creare i tuoi dati di posizione SkyLift usando iOS, OSX o l'API Wigle.net. (Le procedure per Android e Linux non sono ancora documentate).
1A) Scansione delle reti WiFi su OSX
python utils/osx_scan_to_json.py -o data/json/my_osx_scan.json
1B) Scansione delle reti WiFi su iOS
Usa la app gratuita AirPort Utility e attiva "Wi-Fi Scanner" in Impostazioni > AirPort Utility. Esegui una scansione WiFi e salvala nelle tue Note sincronizzate o inviala via email a te stesso. Assicurati che ci siano 2 righe prima dei dati CSV. Esempio:
# Make your notes or add title her (saved as your_scan.txt))
SSID, BSS, RSSI, Channel, Time
"", "11:11:11:11:11:11", "-61", "44", "13:17:34"
"", "11:11:11:11:11:11", "-61", "44", "13:17:44"
"freewificonnect", "22:22:22:22:22:22", "-80", "11", "13:17:32"
"freewificonnect", "22:22:22:22:22:22", "-80", "11", "13:17:41"
Salva il tuo file in "data/ios/your_scan.txt" e poi esegui:
python utils/ios_to_json.py -i data/ios/your_scan.txt -o data/json/your_scan.json
1C) Usa l'API Wigle
Registrati su https://wigle.net per ottenere una chiave API e un token API (attualmente è gratuito). I risultati con Wigle possono variare o non funzionare. I loro dati sono crowdsourced e non verificati o potrebbero essere obsoleti. Per i migliori risultati, crea la tua scansione WiFi sul posto.
python utils/wigle_to_json.py --lat 37.484581 --lon -122.147921 --radius 3 -o data/json/wigle_test.json
2) Converti iOS (csv) in JSON
python utils/ios_to_json.py -i data/ios/your_scan.txt -o data/json/your_scan.json
3) Converti (qualsiasi) JSON per lo sketch Arduino
python utils/json_to_arduino.py -i data/ios/your_scan.json -o data/ino/your_scan.txt
Il testo di output sarà simile a:
#define nn 2
char* ssids_str[nn] = {
"74:46:A0:33:00:01",
"74:46:A0:33:00:02"
};
byte bssids[nn][6] = {
{0x74, 0x46, 0xA0, 0x33, 0x00, 0x12},
{0x74, 0x46, 0xA0, 0x33, 0x00, 0x12}
};
char* ssids[nn] = {
"wifi_ssid",
"another_wifi_ssid"
};
#ifdef USE_SCREEN
byte channels[nn] = {6, 6};
#else
byte channels[nn] = {10, 11};
#endif
Quindi, fai una copia di "skylift_v03_embassy" e sostituisci i dati WiFi esistenti con i tuoi dati personalizzati.
Sperimentale: nota le due opzioni per i canali. Se utilizzi lo sketch in modalità standalone (senza schermo), potresti voler cambiare i canali. Per usare SkyLift in una grande stanza, sembra funzionare meglio utilizzare più unità ripetitrici su canali casuali e la versione con schermo sui canali 1, 6 e 11. Se stai usando un solo dispositivo, restare sui canali 1, 6 e 11 tutti insieme ha fornito finora i migliori risultati.
Servizi di geolocalizzazione è un termine ampio che indica l'insieme delle tecnologie utilizzate per determinare la posizione geografica di uno smartphone. Le quattro tecnologie principali utilizzate per i servizi di geolocalizzazione sono (1) GPS, (2) triangolazione cellulare, (3) Bluetooth e (4) posizionamento WiFi. A seconda di quale di questi 4 segnali è disponibile, uno smartphone tenterà di determinare la sua posizione geografica con la massima precisione e il minor tempo di attesa.
SkyLift fa uso di un exploit nei servizi di geolocalizzazione WiFi scoperto per la prima volta nel 2008 dal ricercatore svizzero Srdjan Capkun all'ETH di Zurigo. Nonostante il loro avvertimento anticipato nel 2008, tutte le principali aziende di smartphone hanno continuato a integrare il WiFi come tecnologia di geolocalizzazione fondamentale. La vulnerabilità esisteva ancora nel 2012, quando Bengt Sjölen e Gordan Savicic l'hanno sfruttata creativamente per il loro progetto del 2012 Packetbridge (<- buona documentazione).
La vulnerabilità è difficile da gestire perché le aziende di geolocalizzazione WiFi presumono che il router WiFi di tutti, incluso quello dentro casa tua, faccia parte del loro prodotto commerciale di geolocalizzazione. Che questo sia legale o etico dovrebbe essere dibattuto più apertamente.
Ciò che è certo, ed è già stato dimostrato nel 2008, è che i dati di geolocalizzazione degli smartphone possono essere facilmente falsificati e non dovrebbero essere considerati affidabili. Eppure facciamo affidamento su questa tecnologia per un numero crescente di applicazioni critiche. Ad esempio, l'immagine qui sotto mostra con quanta facilità sono riuscito a ingannare il servizio Find my Phone di Apple facendogli credere che il mio dispositivo si trovasse all'Ambasciata dell'Ecuador a Londra. (Immagine realizzata con il dispositivo effettivamente a Berlino, funziona con dispositivi desktop o mobili).
