Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
skylift — Спуфинг геолокации WiFi с помощью ESP8266 | Kitploit
Инструменты/GitHubGitHub/awesome-pentest-gadgets/skylift
Безопасность встроенных системАудит Wi-FiЭксплуатацияБезопасность беспроводных сетейБезопасность оборудования и IoTRed Teaming
GitHubawesome-pentest-gadgets/skylift

skylift

Спуфинг геолокации WiFi с помощью ESP8266

Репозиторий
83698 лет назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
Сайт

SkyLift V0.4

Будет опубликовано 15 июня

  • python3
  • click
  • упрощённый рабочий процесс CLI-парсера
  • исправление временных меток

SkyLift V0.3

SkyLift — это недорогое устройство для подмены геолокации. В настоящее время он использует ESP8266 для передачи WiFi Beacon Frames, чтобы эксплуатировать давнюю (2008 года) уязвимость в сервисах WiFi-геолокации.

Эта третья прототипная версия SkyLift была доработана во время веб-резиденции в Akademie Schloss Solitude и ZKM. Прочитайте интервью о проекте. Или соберите свой собственный по инструкциям ниже менее чем за $5.

Обновления

  • 13 мая 2017: добавлено новое сканирование с выступления Джона Кириаку (разоблачитель ЦРУ) в Gruener Salon в Берлине

SkyLift изначально был разработан в сотрудничестве с Surya Mattu для выставки «Assange room Welcome to Ecuador!» от !Mediengruppe Bitnik в Zoo Galerie в Нанте в 2016 году. Разработка этой обновлённой версии, V0.3, началась в ноябре 2016 года и была окончательно выпущена в мае 2017 года при поддержке веб-резиденции в Schloss Solitude. Эта версия содержит несколько улучшений по сравнению с исходной системой (SkyLift V0.1), в том числе:

  • снижение стоимости сборки с $50 до примерно $5
  • сокращение времени настройки базовой технологии с нескольких часов до примерно 15 минут
  • упрощена работа пользователя (достаточно подать питание по USB)
  • повышение производительности за счёт переключения каналов
  • улучшена структура пакетов (добавлен байт интервала временных меток)
  • добавлена опция скрытого (null) SSID "\x00"
  • добавлены вспомогательные скрипты для создания пользовательских локаций
  • технология изолирована в одном устройстве
  • добавлен опциональный OLED-дисплей

За информацией об оригинальном SkyLift (V0.1) обращайтесь по адресу https://ahprojects.com/notebook/2016/skylift-geolocation/

SkyLift — это проект с открытым исходным кодом, поддерживаемый Adam Harvey, который исследует уязвимости безопасности и творческие возможности в потребительских сервисах геолокации для смартфонов.

Если вы заинтересованы в получении готового и полностью рабочего устройства, добавьте себя в мой список рассылки на https://undisclosed.cc/.

Быстрый старт

  • Приобретите ESP8266 NodeMCU 12 или 12E | eBay (дешевле) или Amazon.com (быстрее)
  • git clone https://github.com/adamhrv/skylift/
  • Из "arduino/skylift_v03_embassy" загрузите скетч "skylift_v03_embassy.ino"
  • Убедитесь, что служба WiFi-геолокации на вашем смартфоне включена
  • Расположите ESP8266 на расстоянии 1–2 м от телефона (0,25–0,5 м в зонах с плотной WiFi-сетью)
  • Полная настройка и устранение неполадок ниже

Настройка

Что вам понадобится:

  • Arduino 1.6.12+
  • ESP8266 NodeMCU 12 или 12E | eBay, Amazon.com, Adafruit Huzzah
  • USB-micro кабель для программирования
  • USB-аккумулятор 5 В (опционально)

С OLED-дисплеем (опционально):

  • OLED-дисплей | eBay, Amazon.com
  • Печатная плата 3x7 см (только если используется OLED-дисплей) | Amazon.com
  • Паяльник
  • Библиотека OLED Adafruit_SSD1306
  • Библиотеки ESP8266: "http://arduino.esp8266.com/stable/package_esp8266com_index.json"
  • Кусачки для обрезки выводов после пайки

И OLED-дисплей, и ESP8266 NodeMCU можно купить примерно за полцены на eBay, если вы готовы подождать доставку 1–2 недели. ESP8266 можно найти всего за $3.

Тестовые скрипты

Тест WiFi

  • Убедитесь, что вы используете свежую версию Arduino (для сборки использовалась версия 1.6.12)
  • Убедитесь, что у вас установлены платы ESP8266. В Preferences > Additional Boards добавьте "http://arduino.esp8266.com/stable/package_esp8266com_index.json"
  • В Tools > Board выберите "NodeMCU 0.9 (ESP12 Module)" или 12E
  • Протестируйте со скетчем Arduino/test_single_beacon_frame
  • Проверьте свои WiFi-сети. Имя Network1 должно быть видно на канале 1.

Тест OLED-экрана

  • Припаяйте OLED к ESP8266 на обратной стороне платы
  • Снимите чёрный пластик с разъёмов для уменьшения профиля
  • Подключите контакт D2 ESP8266 к контакту SDA OLED
  • Подключите контакт D3 ESP8266 к контакту SCL OLED
  • Подключите PWR (3,3 В)
  • Подключите GND
  • Загрузите скетч Arduino/test_oled_screen
  • Текст "Scrolling Text Demo 123 456" должен появиться, прокручиваясь по экрану

Посольство Эквадора

Тест SkyLift с локацией посольства Эквадора

  • Загрузите скетч Arduino/skylift_v03_embassy
  • Убедитесь, что на телефоне включены службы определения местоположения по WiFi
  • Убедитесь, что у вас есть активное подключение к передаче данных (сотовая связь или WiFi. Ваш IP-адрес не имеет значения)
  • Откройте предпочитаемое картографическое приложение (или любое приложение, использующее ваше местоположение)
  • Если это не работает, есть несколько причин. Скорее всего, слишком много находящихся рядом маршрутизаторов мешают показателю достоверности, возвращаемому WiFi-API геолокации
  • Если рядом несколько сетей с уровнем от -60 до -40 дБ, маловероятно, что SkyLift вернёт новую геолокацию

Советы по улучшению производительности:

  • Уменьшите количество ближайших WiFi-сигналов до менее 5 сетей с уровнем ниже -80 дБ
  • Должен по-прежнему работать при 10+ сетях, если их уровень сигнала ниже -80 дБ
  • Отслеживайте ближайшие сети с помощью NetSpot (бесплатная пробная версия) и по возможности удаляйтесь от существующих WiFi-маршрутизаторов
  • Отходите от окон, где сигнал спутникового GPS сильнее
  • Держите телефон близко к ESP8266 (в идеале на расстоянии 0,1–1 м в зонах с интенсивным WiFi, 1–2 м в зонах со средней плотностью WiFi, до 10 м в зонах с низкой плотностью WiFi) и подальше от ближайших маршрутизаторов
  • Для расстояний более 10 м можно перерезать печатную антенну на PCB и припаять SMA-разъём для подключения антенны с усилением +7 дБ или WiFi-усилителя либо, проще, добавить несколько устройств SkyLift в качестве повторителей
  • Металлические крыши и конструкции ослабляют ближайшие WiFi-сигналы
  • Гипсокартон, дерево и бетон проницаемы для WiFi и не будут заметно ослаблять сигнал
  • Люди, состоящие примерно на 65% из воды, являются естественными поглотителями WiFi (2,4 ГГц — резонансная частота воды) и будут ослаблять ближайшие WiFi-сигналы в людных местах, что улучшает результаты подмены геолокации в переполненных районах
  • Рекомендуемые места для оптимальной производительности — бункеры, бары и другие зоны, где сигналы GPS, сотовой связи и WiFi ослаблены. Но не стесняйтесь экспериментировать где угодно
  • Лучшие результаты на данный момент были достигнуты в подвале La Gaîté Lyrique, на концертах и в контролируемой (разумеется) тестовой среде
  • Примечание: SkyLift — не гарантированное решение. Если поблизости слишком много конкурирующих WiFi-сигналов, API службы определения местоположения вернёт низкий показатель достоверности и переключится на сотовую триангуляцию или спутниковый GPS

Если вы находитесь в помещении без других WiFi-маршрутизаторов, и SkyLift не работает, пожалуйста, создайте отчёт об ошибке и включите как можно больше деталей:

  • Результаты сканирования NetSpot или другого приложения
  • Каналы, используемые вашим ESP8266
  • Расстояние от SkyLift до смартфона
  • Есть ли активное подключение к передаче данных на телефоне
  • Доступное подключение к передаче данных (LTE, 4G, 3G, EDGE, GPRS)
  • iOS или Android и, если не возражаете, модель телефона

Пользовательские локации

Вы можете создать собственные данные о местоположении SkyLift с помощью iOS, OSX или API Wigle.net. (Процессы для Android и Linux пока не документированы).

1A) Сканирование WiFi-сетей в OSX

python utils/osx_scan_to_json.py -o data/json/my_osx_scan.json

1B) Сканирование WiFi-сетей в iOS

Используйте бесплатное приложение AirPort Utility и включите "Wi-Fi Scanner" в Settings > AirPort Utility. Выполните WiFi-сканирование и сохраните его в синхронизированные заметки или отправьте себе по электронной почте. Убедитесь, что перед CSV-данными есть 2 строки. Пример:

root@kitploit:~
# 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

Зарегистрируйтесь на https://wigle.net, чтобы получить API Key и API Token (сейчас это бесплатно). Результаты с 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

Выходной текст будет выглядеть примерно так:

root@kitploit:~
#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-данные своими собственными.

Экспериментально: обратите внимание на два варианта каналов. Если вы используете скетч в автономном режиме (без экрана), возможно, вы захотите изменить каналы. Для использования SkyLift в большом помещении, похоже, лучше работают несколько повторителей на случайных каналах, а версия с экраном — на каналах 1, 6 и 11. Если вы используете только одно устройство, использование каналов 1, 6 и 11 вместе дало наилучшие результаты на данный момент.


О WiFi-геолокационных службах

Геолокационные службы — это широкий термин для совокупности технологий, используемых для определения географического местоположения смартфона. Четыре основные технологии, используемые для геолокации: (1) GPS, (2) сотовая триангуляция, (3) Bluetooth и (4) WiFi-позиционирование. В зависимости от того, какие из этих 4 сигналов доступны, смартфон попытается определить своё географическое местоположение с максимальной точностью и минимальным временем ожидания.

SkyLift использует эксплойт для WiFi-геолокационных служб, впервые обнаруженный в 2008 году швейцарским исследователем Srdjan Capkun из ETH Zurich, который продемонстрировал это. Несмотря на их раннее предупреждение в 2008 году, все крупные производители смартфонов продолжают использовать WiFi как основную технологию геолокации. Уязвимость всё ещё существовала в 2012 году, когда Bengt Sjölen и Gordan Savicic творчески использовали её в своём проекте 2012 года Packetbridge (<- хорошая документация).

С этой уязвимостью трудно бороться, потому что компании, занимающиеся WiFi-геолокацией, предполагают, что роутер каждого человека, включая домашний, является частью их коммерческого геолокационного продукта. Легально это или этично — этот вопрос должен обсуждаться более открыто.

Что точно известно и уже было доказано в 2008 году, так это то, что данные геолокации смартфона можно легко подделать, и им нельзя доверять. Тем не менее мы полагаемся на эту технологию во всё большем числе критически важных приложений. Например, изображение ниже показывает, как легко мне удалось обмануть сервис Apple "Find my Phone", заставив его думать, что моё устройство находится в посольстве Эквадора в Лондоне. (Изображение сделано при реально находящемся в Берлине устройстве; работает с настольным или мобильным устройством).

Find my Phone at Ecuadorian Embassy

Дополнительное чтение

  • Обзор Beacon Frame
  • Пакет Beacon Frame более подробно
  • Подмена WiFi-геолокационных служб на Hackaday
  • Не доверяйте геолокации
  • Device-to-Identity Linking Attack Using Targeted Wi-Fi Geolocation Spoofing
  • Пост о SkyLift V0.1 с использованием MDK3 + Raspberry Pi

Отказ от ответственности

  • Игроки в Pokémon и другие, используйте на свой страх и риск
  • В настоящее время предназначен только для исследовательских и художественных целей
  • Проверяйте местные правила использования WiFi перед применением
  • После продолжительного вещания BSSID могут быть занесены в чёрный список или даже привязаны к другому местоположению (так произошло в FACT Liverpool, что может раскрыть ваше местоположение другим пользователям или быть творчески использовано для эффекта Бермудского треугольника
  • SkyLift — не устройство для подмены GPS. Для подмены GPS на 1,5 ГГц см. Подмена GPS-местоположения с помощью недорогих TX SDR или Программно-определяемый симулятор GPS-сигнала
  • SkyLift в настоящее время работает только на частоте 2,4 ГГц
  • SkyLift — не гарантированное решение

SkyLift на выставках:

  • Dark Technology Dark Web. Spektrum. Берлин. 2017.
  • How Much of This is Fiction. FACT. Ливерпуль. 2017.
  • Lanceurs d'alerte . La Gaîté Lyrique. Париж. 2017.
  • *Welcome to Ecuador. Zoo Galerie. 2016. I

SkyLift: создатели

  • Изначальная концепция разработана в сотрудничестве с !Mediengruppe Bitnik (DE)
  • SkyLift V0.1 разработан в сотрудничестве с Surya Mattu (US)
  • Техническая консультация от Julian Oliver (DE)
  • Помощь в исследованиях и вклад в разработку на Python: Leon Eckert (US/DE)
  • Инсталляция "Welcome to Ecuador" (2016), куратор Aude Launay для Zoo Galerie
  • ESP8266 proof-of-concept код Beacon Frame от https://github.com/kripthor/WiFiBeaconJam
  • Веб-резиденция Schloss Solitude
Скачать инструмент