All Projects → adamhrv → Skylift

adamhrv / Skylift

Licence: mit
Wi-Fi Geolocation Spoofing with the ESP8266

Projects that are alternatives of or similar to Skylift

Blynk Server
Blynk is an Internet of Things Platform aimed to simplify building mobile and web applications for the Internet of Things. Easily connect 400+ hardware models like Arduino, ESP8266, ESP32, Raspberry Pi and similar MCUs and drag-n-drop IOT mobile apps for iOS and Android in 5 minutes
Stars: ✭ 8 (-96.41%)
Mutual labels:  arduino, esp8266
Awot
Arduino web server library.
Stars: ✭ 200 (-10.31%)
Mutual labels:  arduino, esp8266
Onewirehub
OneWire slave device emulator
Stars: ✭ 195 (-12.56%)
Mutual labels:  arduino, esp8266
Openmqttgateway
MQTT gateway for ESP8266, ESP32, Sonoff RF Bridge or Arduino with bidirectional 433mhz/315mhz/868mhz, Infrared communications, BLE, Bluetooth, beacons detection, mi flora, mi jia, LYWSD02, LYWSD03MMC, Mi Scale, TPMS, BBQ thermometer compatibility, SMS & LORA.
Stars: ✭ 2,413 (+982.06%)
Mutual labels:  arduino, esp8266
Platform Espressif8266
Espressif 8266: development platform for PlatformIO
Stars: ✭ 206 (-7.62%)
Mutual labels:  arduino, esp8266
React Geolocated
React Higher-Order Component for using Geolocation API
Stars: ✭ 185 (-17.04%)
Mutual labels:  gps, geolocation
Blog
A set of various projects based on ESP8266, ESP32, ATtiny13, ATtiny85, ATtiny2313, ATmega8, ATmega328, ATmega32, STM32 and more.
Stars: ✭ 198 (-11.21%)
Mutual labels:  arduino, esp8266
Socket.io Client
A socket.io-client implementation for ESP8266 and Arduino
Stars: ✭ 170 (-23.77%)
Mutual labels:  arduino, esp8266
Geolocation
Flutter geolocation plugin for Android and iOS.
Stars: ✭ 205 (-8.07%)
Mutual labels:  gps, geolocation
Logic Analyzer
Logic Analyzer, for Arduino, AVR, ESP8266 and STM32 with a very nice working processing interface, you could run it also on any Android device.
Stars: ✭ 203 (-8.97%)
Mutual labels:  arduino, esp8266
Wirehome.core
Wirehome.Core is a home automation system written in C# targeting .NET Core. It runs on Linux, Windows and macOS.
Stars: ✭ 180 (-19.28%)
Mutual labels:  arduino, esp8266
Arduinowebsockets
A library for writing modern websockets applications with Arduino (ESP8266 and ESP32)
Stars: ✭ 213 (-4.48%)
Mutual labels:  arduino, esp8266
Arduino Applemidi Library
Send and receive MIDI messages over Ethernet (rtpMIDI or AppleMIDI)
Stars: ✭ 177 (-20.63%)
Mutual labels:  arduino, esp8266
Easybutton
Arduino library for debouncing momentary contact switches, detect press, release, long press and sequences with event definitions and callbacks.
Stars: ✭ 187 (-16.14%)
Mutual labels:  arduino, esp8266
Opengarage Firmware
OpenGarage: open-source WiFi-enabled garage door opener
Stars: ✭ 175 (-21.52%)
Mutual labels:  arduino, esp8266
Jled
Non-blocking LED controlling library for Arduino and friends.
Stars: ✭ 197 (-11.66%)
Mutual labels:  arduino, esp8266
Espmqttclient
Wifi and MQTT handling for ESP8266 and ESP32
Stars: ✭ 169 (-24.22%)
Mutual labels:  arduino, esp8266
Make
📖📖📖📖📖 写给软件工程师看的硬件编程指南
Stars: ✭ 170 (-23.77%)
Mutual labels:  arduino, esp8266
Dsckeybusinterface
An Arduino/esp8266/esp32 library to directly interface with DSC security systems.
Stars: ✭ 202 (-9.42%)
Mutual labels:  arduino, esp8266
Awesome Esp
📶 A curated list of awesome ESP8266/32 projects and code
Stars: ✭ 212 (-4.93%)
Mutual labels:  arduino, esp8266

SkyLift

TODO April 2020

  • [ ] improve CLI interface and data paths
  • [ ] fix errors in JSON meta structure
  • [ ] provide more examples for getting started
  • [ ] add original SMD gerbers
  • [ ] change data paths and clean up job file format
  • [ ] add emoji SSID example 🙃

About

SkyLift is a low-cost Wi-Fi geolocation spoofing device. It uses the ESP8266 to broadcast Wi-Fi Beacon Frames that exploit a longstanding (2008) vulnerability in Wi-Fi geolocation services. Using SkyLift you can trick your phone to appearing almost anywhere in the connected world. Locations can be collected on-site or remotely using the Wigle.net API.

SkyLift DataPools edition with the location of Mark Zuckerberg's pool

SkyLift has been used and tested for art exhibitions at galleries (Zoo Galerie, FACT, Eigen Lab), a museum show (La Gaîté Lyrique), and at events and performances (Transmediale, Cryptoraves, CCC).

How Well Does it Work?

In environments where cellular strength is poor and there are few Wi-Fi networks (less than 5) SkyLift works well, sometimes perfectly spoofing everyone's location. In dense urban environments where there are dozens of Wi-Fi networks SkyLift may have little or no ability to spoof locations. In such cases using multiple devices has shown slight improvements. Multiple devices can be used with multiple scan sources to cover larger areas.

Ideal locations are generally where Wi-Fi, GPS, and cellular signals are attenuated either by the building or by bodies. Parties and conference can work well, especially when rooms are located away from roads. Basements also work well because cellular and GPS signals are typically attenuated from metal in the floors, walls, or ceilings. Outdoor street-level areas with dozens of Wi-Fi networks and strong cellular signals tend to not work at all. Locations, such as open parks, with strong overhead GPS but weak/moderate cellular signal and minimal Wi-Fi networks sometimes works well. Basically, crowded indoor areas away from streets will yield better results. This is partially due to people (60% water) acting as Wi-Fi absorbers at 2.4GHz (the resonant frequency of H2O molecules).

Quick Start: Arduino

A geolocation demo is provided in arduino/skylift_demo. To run the firmware:

  • get a ESP8266 NodeMCU 12E (≈$5)
  • Add http://arduino.esp8266.com/stable/package_esp8266com_index.json to boards manager
  • Select board profile: NodeMCU 1.0 (ESP12-E Module)
  • Open arduino/skylift_demo in Arduino and upload sketch
  • ensure wifi_tx_status = 1; to enable Wi-Fi
  • On a standalone ESP8266 NodeMCU 12E you won't be able to navigate the locations or toggle the Wi-Fi On/Off but you can still change the location in the code by editing place_idx_cur = 1; to you preferred starting location

Quick Start: Python

  • git clone https://github.com/adamhrv/skylift
  • cd skylift
  • Get Wi-Fi data from Wigle: python skylift/cli_jobs.py wigle_api --wigle_api_name [your_username] --wigle_api_key [your_api_key] --jobs data/jobs/wigle_api.csv
  • Convert networks into Arduino sketch: python skylift/cli_jobs.py arduino --jobs data/jobs/arduino.csv
  • open the Arduino sketch and upload to your ESP12E
  • the demo sketch should start broadcasting the networks around Facebook's corporate office in Menlo Park. The data was obtained from Wigle.net
  • get full list of commands by running python skylift/cli_jobs.py

Setting up SkyLift

You can run SkyLift using only the minimal NodeMCU Lua ESP8266 12E device (for less than $5). The OLED, PCB, switches, and case are all optional though recommended if you want to run multiple locations. For either option there are three main parts to setting up SkyLift:

  • Getting Wi-Fi scan data remotely or on-site
  • Process scanned data with Python scripts to create Arduino firmware
  • Upload firmware to your ESP8266/Arduino micro-controller

Follow the guides (in progress) to setup each step:

You can also build your own PCBs

Or read up on more of the research on how Beacon Frames and Wi-Fi geolocation works

TODO

  • add lasercut files for case
  • add BOM for board and case
  • improve board (move drill holes, update text)
  • improve guides for collecting and processing data
  • add more examples

SkyLift at Exhibitions:

SkyLift Credits

Original concept developed for and in collaboration with !Mediengruppe Bitnik and Surya Mattu for "Welcome to Ecuador" installation (2016) curated by Aude Launay for Zoo Galerie. Initial technical advisement from Julian Oliver, development research contributions from Leon Eckert, and beacon broadcasting code (for ESP8266) by https://github.com/kripthor/WiFiBeaconJam.

Development support from Schloss Solitude Web Residency and tropeztropez.de

Disclaimer

  • Use at your own risk
  • This code is for security and privacy research and artistic invention in consensual environments
  • After a sustained duration of broadcasting, BSSIDs may be blacklisted or even become associated with another location (this happened at FACT Liverpool, which could reveal your location to other users, or be used creatively for a Bermuda Triangle effect.
  • SkyLift is not a GPS spoofing device. For 1.5GHz GPS spoofing, see Spoof GPS location with low cost TX SDRs or Software-Defined GPS Signal Simulator
  • SkyLift is currently a 2.4GHz only device
  • In controlled environments where cellular signal is weak and there are few Wi-Fi networks SkyLift may work 100% but in busy urban areas with many Wi-Fi signals it may not work at all
  • Check local Wi-Fi regulations before using

Further Reading

History

SkyLift began as an experiment trying to use a Raspberry Pi with a USB Wi-Fi dongle to spoof Wi-Fi access points to reproduce the research from PacketBrücke and Spoofing WiFi Geolocation services. After much frustration using an entire Linux computer for the highly-specialized task of only broadcasting Beacon Frames, the code from https://github.com/kripthor/WiFiBeaconJam provided a neat opportunity to try spoofing geolocation services with the ESP8266 and it actually worked. After comparing all other ESP Wi-Fi modules the NodeMCU 12E was chosen for this project because it has the lowest entry-level price for the highest functionality (USB serial converters, on-board LED, no assembly required, mass produced / easy to source). The antennae isn't as strong as the newer ESP modules but it is possible to cut the antennae's GND/PWR traces and solder in an antennae connector if you really need a long-range amplifier.

Earlier versions of SkyLift

SkyLift is open source project developed and maintained by Adam Harvey

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].