>_ DevTrendsde

Sprache

Start

Sprachen

Bereiche

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embedded Sicherheit
Python

So finden Sie die physische Adresse eines Routers anhand der BSSID mit geowifi

Jedes Mal, wenn ein Smartphone nach einem bekannten Netzwerk sucht, scannt es die Funkwellen und sieht Dutzende von Routern in der Umgebung. Große Unternehmen wie Google und Apple sammeln diese Daten schon seit Jahren zusammen mit GPS-Koordinaten, um Gerätestandorte in dichten städtischen Gebieten zu bestimmen, ohne auf Satelliten warten zu müssen.

Dadurch hat sich um uns herum eine riesige Karte aller privaten und Büro-Zugangspunkte gebildet. Wenn Sie die MAC-Adresse eines Routers (BSSID) oder einen seltenen Netzwerknamen (SSID) in die Hände bekommen, können Sie seine physischen Koordinaten in ein paar Sekunden abrufen.

geowifi

Das geowifi-Tool übernimmt diese Routine. Anstatt manuell ein Dutzend verstreuter Dienste zu überprüfen, sendet es Abfragen an alle verfügbaren WLAN-Standortdatenbanken gleichzeitig.

Warum alle Datenbanken in einem Skript kombinieren

Jede Datenbank sammelt Koordinaten auf ihre eigene Weise. Der Wigle-Dienst verlässt sich auf Enthusiasten, die mit aktivierten Scannern durch Städte fahren. Apples Datenbank wird von iOS-Smartphones gespeist, Googles von Android-Geräten.

Wenn Sie nur an einem Ort nach einem Punkt suchen, besteht eine hohe Wahrscheinlichkeit, nichts zu finden. Zugangspunkte ziehen um, erscheinen in neuen Entwicklungen oder verschwinden aus öffentlichen Listen. Das geowifi-Tool fragt offene und halbgeschlossene Quellen ab:

  • Wigle
  • Apple Geolocation Services
  • Google Geolocation API
  • Mylnikov (mylnikov.org)
  • WifiDB
  • Combain
  • Freifunk Carte

Ein interessantes Detail: Abfragen an Apple funktionieren hier ohne Registrierung und kostenpflichtige Abonnements, unter Verwendung einer Implementierung, die vom iSniff-GPS-Projekt inspiriert wurde. Für Google und Wigle benötigen Sie API-Schlüssel, aber sie haben kostenlose Kontingente, die für alltägliche Aufgaben ausreichen.

Schnellstart und Einrichtung

Das Projekt ist in Python geschrieben. Sie können es lokal in einer virtuellen Umgebung oder über einen Docker-Container bereitstellen.

Für die lokale Arbeit benötigen Sie git und Python 3:

git clone https://github.com/GONZOsint/geowifi
cd ./geowifi/
virtualenv geowifi
source geowifi/bin/activate
python3 -m pip install -r requirements.txt

Wenn Sie sich nicht mit der Python-Umgebung beschäftigen möchten, erstellen Sie den Container:

docker build -t geowifi:latest .

API-Konfiguration

Im config-Verzeichnis gibt es eine config.ini-Datei. Hier konfigurieren Sie die Zugriffstokens:

wigle_auth: "your_encoded_token"
google_api: "your_google_api_key"
combain_api: "your_combain_key"
no-ssl-verify: false

Für die grundlegende Arbeit mit offenen Datenbanken und Apple sind Schlüssel optional, aber damit ist der Prozentsatz der gefundenen Punkte deutlich höher.

So suchen Sie nach Koordinaten

Das Tool akzeptiert einen Netzwerkidentifikator und ein Suchtyp-Flag: nach BSSID (MAC-Adresse) oder SSID (Netzwerkname).

Suche nach Router-MAC-Adresse:

python3 geowifi.py -s bssid C8:D7:19:XX:XX:XX

Suche nach Netzwerknamen:

python3 geowifi.py -s ssid "MyCoffeeShop_Free"

Standardmäßig erzeugt das Programm eine HTML-Karte mit Markierungen von verschiedenen Datenanbietern. Verschiedene Datenbanken können Koordinaten mit einer leichten Streuung zurückgeben, und eine visuelle Karte hilft, den tatsächlichen Abdeckungsbereich oder das genaue Gebäude zu verstehen.

Map output

Wenn die Ausgabe für die nachfolgende Automatisierung oder Übergabe an ein anderes Skript benötigt wird, fügen Sie einfach den json-Parameter hinzu:

[
  {
    "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
  }
]

Neben Koordinaten identifiziert das Tool sofort den Hersteller der Netzwerkausrüstung anhand des OUI-Präfixes der MAC-Adresse.

Wo dies nützlich ist

Das Tool wurde für OSINT- und Netzwerkaufklärungsaufgaben entwickelt, aber es ist auch in verwandten Bereichen nützlich:

  1. Forensik und Netzwerk-Dump-Analyse. Wenn der untersuchte Laptop Probe-Anfragen oder einen Verlauf von WLAN-Netzwerkverbindungen gespeichert hat, können Sie die ungefähre Bewegungsroute des Geräts anhand der BSSID rekonstruieren.
  2. Sicherheits- und Datenschutz-Audit. Es ist nützlich, Ihren Heim- oder Firmenrouter zu überprüfen. Oft stellt man fest, dass ein Router, der von einer Wohnung in ein Ferienhaus umgezogen ist, in Google- oder Apple-Datenbanken immer noch an der alten Adresse auftaucht.
  3. Geolokalisierung von IoT-Geräten. Wenn ein Gerät nur die Liste der sichtbaren Zugangspunkte meldet, konvertiert das Skript diese Liste in verständliche geografische Koordinaten ohne Verwendung eines GPS-Moduls.

Fazit

geowifi ist ein kompaktes, praktisches Tool, das eine bestimmte Aufgabe ohne unnötige Komplexität löst. Der Code ist einfach, die Abhängigkeiten sind Standard und die Logik ist transparent. Wenn Sie OSINT-Untersuchungen durchführen, drahtlose Traffic-Dumps analysieren oder sich einfach fragen, wie viele Geodaten durch WLAN-Router durchsickern, fügen Sie dieses Tool zu Ihrem Arsenal hinzu.

Ähnliche Projekte