February 28, 2024

Получаем карту WiFi точек любого города (с данными авторизации)

🧑‍💻В этой статье расскажу о том, как можно получить карту своего города с отмеченными на ней WiFi точками. Причем для каждой такой точки будут доступны данные для подключения, звучит круто? — Погнали!

Нам понадобятся:

  1. IP диапазоны любого города
  2. RouterScan, собственно, для получения данных о сетях WiFi
  3. BSSID Finder - программа, находящая местоположение точек по их BSSID (mac-адресу)

Получаем IP диапазоны города.

Заходим на https://4it.me/getlistip, вводим желаемый город, и копируем весь список диапазонов.

Настройка и использование RouterScan.

RouterScan - это программа для «массового тестирования на проникновение беспроводных устройств, подключенных к всемирной или локальной сети с использованием протокола TCP/IP с включённым веб-интерфейсом администрирования по протоколу HTTP» — так утверждает разработчик.
Фактически, программа проходится по каждому IP из указанного диапазона, в надежде обнаружить там роутер и войти в его панель управления, и если у нее это получается, мы получаем достаточно много информации, а именно:

  1. Собственно, сам IP адрес роутера
  2. Данные для авторизации в панели управления
  3. Имя устройства/модель роутера
  4. BSSID (mac-адрес или серийный номер устройства)
  5. SSID и пароль (данные для подключения к WiFi сети)
  6. Локальный IP адрес, различные IP маски и т.д.

Самое интересное, что программа сохраняет в гуды не только роутеры, но и вообще все девайсы/сервера, где есть авторизация. То есть, если программе попадется сервер с авторизацией, к которому она сможет подобрать пароль, он окажется в списке гудов.
Как по мне это плюс, потому что помимо роутеров можно найти много интересных вещей. Я, например, натыкался на IP-камеры и панель управления умным домом.

Но давайте ближе к делу. Открываем RouterScan, вставляем диапазоны, и жмем «Start scan». Все. Просто ждем окончания сканирования. Программа, кстати, показывает, сколько времени займет сканирование, и сколько прошло с момента его начала.

После окончания сканирования переходим на вкладку «Good Results», экспортируем таблицу, нажав Ctrl + S, или открываем меню на правую кнопку, и выбираем пункт «Export scan table».

🥳Теперь у нас есть данные о WiFi точках, осталось только сформировать карту, на которой они будут отмечены.

Использование BSSID Finder и формирование карты с точками.

Перед началом следующего пункта, хотелось бы рассказать небольшую предысторию, и то, благодаря чему вообще появилась данная статья.
В меню RouterScan есть возможность найти точку доступа по BSSID. И это действительно работает, программа находит местоположение желаемой точки. Не без погрешности, конечно, но она очень небольшая. Можно понять даже в каком именно подъезде дома находится роутер.

Мне стало очень интересно, каким образом все это реализовано. Позже выяснилось, что используется то ли баг, то ли уязвимость в API сервисов Яндекса, либо они это уязвимостью вообще не считают. Короче говоря: есть определенный запрос к API, в параметрах которого указывается BSSID устройства. В ответ на этот запрос API возвращает некоторую информацию, в которой содержится координаты точки в виде координат широты и долготы. После всего этого в голову пришла идея: написать программу, которая парсит экспортированную из RouterScan таблицу, находит координаты для каждой точки и добавляет их на карту. Результат - программа BSSID Finder.

Скачать ее можно здесь: https://t.me/temsik_doc/17

Заходим в программу, вводим путь или перетаскиваем в окно консоли файл, экспортированный из RouterScan, и нажимаем Enter.

Дожидаемся результатов сканирования. После окончания сканирования программа покажет статистику и предложит открыть карту.

Соглашаемся, и видим вот такой результат: