Jak znaleźć fizyczny adres routera na podstawie BSSID za pomocą geowifi
Za każdym razem, gdy smartfon szuka znajomej sieci, skanuje fale radiowe i widzi dziesiątki routerów wokół. Duże firmy, takie jak Google i Apple, zbierają te dane w połączeniu ze współrzędnymi GPS od lat, aby określać lokalizację urządzeń w gęsto zaludnionych obszarach miejskich bez czekania na satelity.
W rezultacie wokół nas uformowała się ogromna mapa wszystkich punktów dostępowych w domach i biurach. Jeśli zdobędziesz adres MAC routera (BSSID) lub rzadką nazwę sieci (SSID), możesz w kilka sekund pobrać jego fizyczne współrzędne.

Narzędzie geowifi automatyzuje tę rutinę. Zamiast ręcznie sprawdzać tuzin rozproszonych serwisów, wysyła zapytania do wszystkich dostępnych baz danych geolokalizacji Wi-Fi jednocześnie.
Dlaczego łączyć wszystkie bazy danych w jeden skrypt
Każda baza danych zbiera współrzędne własną metodą. Serwis Wigle polega na entuzjastach, którzy jeżdżą po miastach z włączonymi skanerami. Baza Apple jest zasilana przez smartfony z iOS, a Google przez urządzenia z Androidem.
Jeśli szukasz punktu tylko w jednym miejscu, istnieje duże prawdopodobieństwo, że nie znajdziesz nic. Punkty dostępowe się przemieszczają, pojawiają się w nowych inwestycjach lub znikają z publicznych list. Narzędzie geowifi wysyła zapytania do otwartych i częściowo zamkniętych źródeł:
- Wigle
- Apple Geolocation Services
- Google Geolocation API
- Mylnikov (mylnikov.org)
- WifiDB
- Combain
- Freifunk Carte
Ciekawy szczegół: zapytania do Apple tutaj działają bez rejestracji i płatnych subskrypcji, wykorzystują implementację inspirowaną projektem iSniff-GPS. W przypadku Google i Wigle potrzebujesz kluczy API, ale mają darmowe limity wystarczające do codziennych zastosowań.
Szybki start i konfiguracja
Projekt jest napisany w Pythonie. Możesz wdrożyć go lokalnie w środowisku wirtualnym lub przez kontener Docker.
Do pracy lokalnej potrzebujesz git i Python 3:
git clone https://github.com/GONZOsint/geowifi
cd ./geowifi/
virtualenv geowifi
source geowifi/bin/activate
python3 -m pip install -r requirements.txt
Jeśli nie chcesz zajmować się środowiskiem Python, zbuduj kontener:
docker build -t geowifi:latest .
Konfiguracja API
W katalogu gw_utils znajduje się plik config.yaml. Tutaj konfigurujesz tokeny dostępu:
wigle_auth: "your_encoded_token"
google_api: "your_google_api_key"
combain_api: "your_combain_key"
no-ssl-verify: false
Do podstawowej pracy z otwartymi bazami danych i Apple klucze są opcjonalne, ale dzięki nim procent znalezionych punktów jest zauważalnie wyższy.
Jak wyszukiwać współrzędne
Narzędzie przyjmuje identyfikator sieci i flagę typu wyszukiwania: po BSSID (adres MAC) lub SSID (nazwa sieci).
Wyszukiwanie po adresie MAC routera:
python3 geowifi.py -s bssid C8:D7:19:XX:XX:XX
Wyszukiwanie po nazwie sieci:
python3 geowifi.py -s ssid "MyCoffeeShop_Free"
Domyślnie program generuje mapę HTML z markerami od różnych dostawców danych. Różne bazy danych mogą zwracać współrzędne z niewielkim rozrzutem, a wizualna mapa pomaga zrozumieć rzeczywisty obszar pokrycia lub konkretny budynek.

Jeśli wynik jest potrzebny do późniejszej automatyzacji lub przekazania do innego skryptu, wystarczy dodać parametr -o json:
[
{
"module": "google",
"bssid": "C8:XX:XX:XX:5E:45",
"latitude": 33.571844,
"longitude": -112.0495897
},
{
"module": "vendor_check",
"vendor": "Cisco-Linksys, LLC"
},
{
"module": "apple",
"bssid": "C8:XX:XX:XX:5E:45",
"latitude": 33.57198715,
"longitude": -112.0495812
},
{
"module": "wigle",
"bssid": "C8:XX:XX:XX:5E:45",
"ssid": "Vertigo",
"latitude": 33.60998154,
"longitude": -112.0495922
}
]
Oprócz współrzędnych narzędzie od razu identyfikuje producenta sprzętu sieciowego na podstawie prefiksu OUI adresu MAC.
Gdzie to znajduje zastosowanie
Narzędzie zostało stworzone do zadań OSINT i rozpoznania sieciowego, ale przydaje się również w powiązanych obszarach:
- Analiza śledcza i analiza zrzutów sieciowych. Jeśli badany laptop zachował probe requests lub historię połączeń z sieciami Wi-Fi, możesz odtworzyć przybliżoną trasę przemieszczania się urządzenia na podstawie BSSID.
- Audyt bezpieczeństwa i prywatności. Warto sprawdzić swój domowy lub firmowy router. Często okazuje się, że router przewieziony z mieszkania na działkę wciąż widnieje pod starym adresem w bazach Google lub Apple.
- Geolokalizacja urządzeń IoT. Gdy urządzenie zgłasza tylko listę widocznych punktów dostępowych, skrypt konwertuje tę listę na zrozumiałe współrzędne geograficzne bez użycia modułu GPS.
Podsumowanie
geowifi to kompaktowe, praktyczne narzędzie, które rozwiązuje jeden konkretny problem bez zbędnej złożoności. Kod jest prosty, zależności są standardowe, a logika przejrzysta. Jeśli prowadzisz dochodzenia OSINT, analizujesz zrzuty ruchu bezprzewodowego lub po prostu zastanawiasz się, ile danych geograficznych wycieka przez routery Wi-Fi, dodaj to narzędzie do swojego zestawu.
Powiązane projekty