
Spoofing de Geolocalização WiFi com o ESP8266
Será publicado em 15 de junho
SkyLift é um dispositivo de falsificação de geolocalização de baixo custo. Atualmente usa o ESP8266 para transmitir quadros de beacon WiFi, explorando uma vulnerabilidade antiga (2008) nos serviços de geolocalização WiFi.
Esta 3ª versão de protótipo do SkyLift foi desenvolvida durante uma residência web com a Akademie Schloss Solitude e o ZKM. Leia uma entrevista sobre o projeto. Ou monte o seu próprio com as instruções abaixo por menos de US$ 5.

O SkyLift foi originalmente desenvolvido em colaboração com Surya Mattu para a mostra Welcome to Ecuador! do !Mediengruppe Bitnik, sala Assange, na Zoo Galerie em Nantes, em 2016. O desenvolvimento desta versão atualizada, V0.3, começou em novembro de 2016 e foi finalmente lançada em maio de 2017 com o apoio de uma residência web no Schloss Solitude. Esta versão traz várias melhorias em relação ao sistema inicial (SkyLift V0.1), incluindo:
Para informações sobre o SkyLift original (V0.1), consulte https://ahprojects.com/notebook/2016/skylift-geolocation/
O SkyLift é um projeto de código aberto mantido por Adam Harvey que investiga vulnerabilidades de segurança e oportunidades criativas nos serviços de geolocalização de smartphones voltados ao consumidor.
Se você tiver interesse em obter um dispositivo completo e pronto para uso, inscreva-se na minha lista de e-mails em https://undisclosed.cc/.
git clone https://github.com/adamhrv/skylift/arduino/skylift_v03_embassy", carregue o sketch "skylift_v03_embassy.ino"O que você vai precisar:
Com display OLED (opcional):
Tanto o display OLED quanto o ESP8266 NodeMCU podem ser comprados pela metade do preço no eBay se você estiver disposto a esperar de 1 a 2 semanas pela entrega. O ESP8266 pode custar a partir de US$ 3.
Arduino/test_single_beacon_frameArduino/test_oled_screenArduino/skylift_v03_embassyDicas para melhorar o desempenho:
Se você estiver em um local fechado sem outros roteadores WiFi e o SkyLift não funcionar, abra um relatório de problema e inclua o máximo de detalhes que puder:
Você pode criar seus próprios dados de localização do SkyLift usando iOS, OSX ou a API do Wigle.net. (Os processos para Android e Linux ainda não foram documentados).
1A) Escanear redes WiFi no OSX
python utils/osx_scan_to_json.py -o data/json/my_osx_scan.json
1B) Escanear redes WiFi no iOS
Use o aplicativo gratuito AirPort Utility e ative o "Wi-Fi Scanner" em Ajustes > AirPort Utility. Faça uma varredura WiFi e salve-a em suas Notas sincronizadas ou envie-a por e-mail para você mesmo. Certifique-se de que haja 2 linhas antes dos dados CSV. Exemplo:
# 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"
Salve seu arquivo em "data/ios/your_scan.txt" e então execute:
python utils/ios_to_json.py -i data/ios/your_scan.txt -o data/json/your_scan.json
1C) Usar a API Wigle
Registre-se em https://wigle.net para obter uma API Key e um API Token (atualmente é gratuito). Os resultados com o Wigle podem variar ou podem não funcionar. Os dados deles são crowdsourced e não verificados, ou podem estar desatualizados. Para obter os melhores resultados, crie sua própria varredura WiFi no local.
python utils/wigle_to_json.py --lat 37.484581 --lon -122.147921 --radius 3 -o data/json/wigle_test.json
2) Converter iOS (csv) para JSON
python utils/ios_to_json.py -i data/ios/your_scan.txt -o data/json/your_scan.json
3) Converter (qualquer) JSON para o sketch Arduino
python utils/json_to_arduino.py -i data/ios/your_scan.json -o data/ino/your_scan.txt
A saída de texto será algo como:
#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
Em seguida, faça uma cópia de "skylift_v03_embassy" e substitua os dados WiFi existentes pelos seus dados personalizados.
Experimental: observe as duas opções para os canais. Se você estiver usando o sketch no modo autônomo (sem tela), talvez queira alterar os canais. Para usar o SkyLift em uma sala grande, parece funcionar melhor usar múltiplas unidades repetidoras em canais aleatórios e a versão com tela nos canais 1, 6 e 11. Se você estiver usando apenas um dispositivo, continuar usando os canais 1, 6 e 11 juntos tem fornecido os melhores resultados até agora.
Serviços de Geolocalização é um termo amplo para o conjunto de tecnologias usadas para determinar a localização geográfica de um smartphone. As quatro tecnologias principais usadas para serviços de geolocalização são (1) GPS, (2) triangulação celular, (3) Bluetooth e (4) posicionamento WiFi. Dependendo de quais desses 4 sinais estão disponíveis, um smartphone tentará determinar sua localização geográfica com a maior precisão e o menor tempo de espera.
O SkyLift utiliza uma exploração dos serviços de geolocalização WiFi que foi descoberta pela primeira vez em 2008 pelo pesquisador suíço Srdjan Capkun no ETH Zurique. Apesar do alerta feito em 2008, todas as grandes empresas de smartphones continuaram a integrar o WiFi como tecnologia central de geolocalização. A vulnerabilidade ainda existia em 2012, quando Bengt Sjölen e Gordan Savicic a exploraram criativamente em seu projeto de 2012 Packetbridge (<- boa documentação).
A vulnerabilidade é difícil de resolver porque as empresas de geolocalização WiFi presumem que o roteador WiFi de todos, incluindo o da sua casa, faz parte de seu produto comercial de geolocalização. Se isso é legal ou ético deveria ser debatido mais abertamente.
O que é certo, e já foi comprovado em 2008, é que os dados de geolocalização de smartphones podem ser facilmente falsificados e não deveriam ser confiáveis. No entanto, dependemos dessa tecnologia para um número cada vez maior de aplicações críticas. Por exemplo, a imagem abaixo mostra como foi fácil enganar o serviço Encontre meu iPhone da Apple para que pensasse que meu dispositivo estava na Embaixada do Equador em Londres. (Imagem feita com o dispositivo realmente em Berlim; funciona com desktop ou dispositivo móvel).
