
ESP8266을 이용한 WiFi 지리적 위치 스푸핑
6월 15일에 게시될 예정입니다
SkyLift는 저비용 지리적 위치 스푸핑 장치입니다. 현재 ESP8266을 사용하여 WiFi 비콘 프레임(Beacon Frames)을 브로드캐스트함으로써 WiFi 지리적 위치 서비스의 오랜 기간(2008년) 존재해 온 취약점을 악용합니다.
SkyLift의 이 3번째 프로토타입 버전은 Akademie Schloss Solitude 및 ZKM과의 웹 레지던시 기간 동안 더욱 개발되었습니다. 프로젝트에 대한 인터뷰를 읽어보세요. 또는 아래 지침에 따라 $5 미만으로 직접 제작할 수 있습니다.

SkyLift는 원래 2016년 낭트의 Zoo Galerie에서 열린 !Mediengruppe Bitnik의 Assange 룸 "Welcome to Ecuador!" 쇼를 위해 Surya Mattu와 공동으로 개발되었습니다. 이 업데이트 버전(V0.3)의 개발은 2016년 11월에 시작되어 Schloss Solitude의 웹 레지던시 지원을 받아 2017년 5월에 최종 출시되었습니다. 이 버전은 초기 시스템(SkyLift V0.1)에 비해 다음과 같은 여러 가지 개선 사항을 포함합니다:
원래 SkyLift(V0.1)에 대한 정보는 https://ahprojects.com/notebook/2016/skylift-geolocation/을 참조하세요.
SkyLift는 소비자용 스마트폰 지리적 위치 서비스의 보안 취약점과 창의적 활용 가능성을 연구하는 Adam Harvey가 유지 관리하는 오픈 소스 프로젝트입니다.
완성된 즉시 사용 가능한 장치를 구하려면 https://undisclosed.cc/에서 제 메일링 리스트에 가입하세요.
git clone https://github.com/adamhrv/skylift/arduino/skylift_v03_embassy"에서 스케치 "skylift_v03_embassy.ino"를 업로드하세요.필요한 것:
OLED 디스플레이 사용 시(선택 사항):
OLED 디스플레이와 ESP8266 NodeMCU는 모두 배송을 1~2주 기다릴 의향이 있다면 eBay에서 약 절반 가격에 구매할 수 있습니다. ESP8266은 최저 $3까지도 가능합니다.
Arduino/test_single_beacon_frame 스케치로 테스트하세요.Arduino/test_oled_screen 스케치를 업로드하세요.Arduino/skylift_v03_embassy 스케치를 업로드하세요.성능 향상을 위한 팁:
다른 WiFi 라우터가 없는 실내에 있는데도 SkyLift가 작동하지 않으면 가능한 한 많은 세부 정보를 포함하여 이슈 보고서를 제출해 주세요:
iOS, OSX 또는 Wigle.net API를 사용하여 나만의 SkyLift 위치 데이터를 만들 수 있습니다. (Android 및 Linux 프로세스는 아직 문서화되지 않음).
1A) OSX에서 WiFi 네트워크 스캔
python utils/osx_scan_to_json.py -o data/json/my_osx_scan.json
1B) iOS에서 WiFi 네트워크 스캔
무료 AirPort Utility 앱을 사용하고 설정(Settings) > AirPort Utility에서 "Wi-Fi 스캐너"를 활성화하세요. WiFi 스캔을 수행하고 동기화된 메모(Notes)에 저장하거나 자신에게 이메일로 보내세요. CSV 데이터 앞에 2줄이 있어야 합니다. 예:
# 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"
파일을 "data/ios/your_scan.txt"에 저장한 후 다음을 실행하세요:
python utils/ios_to_json.py -i data/ios/your_scan.txt -o data/json/your_scan.json
1C) Wigle API 사용
API 키와 API 토큰을 얻으려면 https://wigle.net에 등록하세요(현재 무료). Wigle의 결과는 다양하거나 작동하지 않을 수 있습니다. 그들의 데이터는 크라우드소싱되어 검증되지 않았거나 오래되었을 수 있습니다. 최상의 결과를 얻으려면 현장에서 직접 WiFi 스캔을 만드세요.
python utils/wigle_to_json.py --lat 37.484581 --lon -122.147921 --radius 3 -o data/json/wigle_test.json
2) iOS(csv)를 JSON으로 변환
python utils/ios_to_json.py -i data/ios/your_scan.txt -o data/json/your_scan.json
3) (임의의) JSON을 Arduino 스케치용으로 변환
python utils/json_to_arduino.py -i data/ios/your_scan.json -o data/ino/your_scan.txt
출력 텍스트는 다음과 비슷할 것입니다:
#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
그런 다음 "skylift_v03_embassy"의 사본을 만들고 기존 WiFi 데이터를 사용자 지정 데이터로 교체하세요.