In einer kürzlich erschienenen Hak5-Episode habe ich an einer Herausforderung teilgenommen, um unseren schwer fassbaren Freund Irish aufzuspüren und die verschiedenen Orte zu bestimmen, die er im Laufe des Tages besucht hat.
Da kostengünstige Hardware und Einwegsignalintelligenz ein zentraler Bestandteil meiner Projekte sind, habe ich mich selbst herausgefordert, einen Tracker mit dem kleinsten praktischen Platzbedarf zu entwickeln, und ein 10-Dollar-Gerät entwickelt, das verwendet werden kann nur Wi-Fi, um Standortaktualisierungen bereitzustellen, sobald es in Irishs Auto gepflanzt wurde.
Verwendung von DNS-Exfiltration, CanaryTokenseinem ESP8266 mit spezialisierter Low-Power-Hardware, habe ich einen bewegungsaktivierten Tracker entwickelt, der intermittierende Standortaktualisierungen übertragen kann, indem er sich mit offenen Wi-Fi-Netzwerken verbindet, an denen Iren vorbeifahren würden.
In diesem Beitrag werde ich über den Designprozess von DNS DriveBy sprechen: eine 10-Dollar-Proof-of-Concept- und Wardriving-Technik, die offene Wi-Fi-Netzwerke verwendet, um Standortdaten, Wi-Fi-Aufklärung und andere Telemetrie bereitzustellen.
Ressourcen Zuordnen von Wi-Fi-Geräten mit WardrivingWardriving ist meine faulste Aufklärungstechnik am liebsten, da ich es ziellos kann skate herum und erstellen Sie eine interaktive Karte von anfälligen Netzwerken, IoT-Produkten und verschiedenen anderen Geräten in unserer drahtlosen Landschaft.
Ich habe mit der Idee gespielt, „wegwerfbare Wardriving-Nutzlasten“ zu schaffen, die ich auf (mein) Auto oder eine Katze in der Nachbarschaft (oder irgendetwas, das sich wirklich bewegt) klatschen kann, damit ich beim Sammeln von Wi-Fi-Intelligenz noch fauler werden könnte – und erstellt ein 10-Dollar-Wardriving-Rig mit minimalen Komponenten, das es für jedermann zugänglich macht, es zu replizieren.
Ich habe es verwendet, um zu demonstrieren, wie Hacker können Ihr Unternehmen mit einem Postpaket phishenund selbst schnallte es an eine Drohne zum Kriegsfliegen – Eine offensichtliche Einschränkung liegt jedoch in der Unfähigkeit, Echtzeit-Telemetrie für Tracking-Anwendungen bereitzustellen, da es nur ein Wi-Fi-Funkgerät verwendet.
Während ich könnte Verbinden Sie ein SIM-Kartenmodul, dies fügt meinem Design zusätzliche Hardware und eine Kostenbarriere hinzu – und macht es auch leichter nachvollziehbar, wenn es entdeckt wird.
Also fragte ich mich, ob es möglich wäre, nicht authentifiziertes Wi-Fi von Cafés zu verwenden oder Netzwerke einzurichten, an denen es vorbeifährt, um Wardriving-Daten und GPS-Koordinaten zeitweise hochzuladen?
Umgehen Sie Captive Wi-Fi-Portale mit DNSDie Antwort ist ja, aber offensichtlich war es nicht so einfach – ich fand heraus, dass die meisten offenen Netzwerke, denen ich begegnete, ein Captive-Portal hatten, bei dem Sie eine E-Mail-Adresse oder einen anderen Unsinn eingeben müssen, bevor Sie sich tatsächlich mit dem Internet verbinden können.
Mein Freund Kody schlug jedoch vor, DNS-Anfragen zu untersuchen, um das Captive-Portal mit einer bekannten Technik namens DNS-Exfiltrationdie es Hackern ermöglicht, vertrauliche Informationen aus einem Netzwerk zu schleichen, indem sie Daten „innerhalb“ eines Domainnamens verstecken, anstatt eine typische Webanfrage zu senden.
Dies funktioniert, indem eine DNS-Anfrage an einen Domainnamen wie z alexlynd.comaber mit vorangestellter Subdomain wie
Während dies normalerweise verwendet wird, um schlecht konfigurierte Firewalls für die Datenexfiltration zu umgehen, kann ich diese Technik auch nutzen, um unsere Wardriving-GPS-Daten zu schleichen hinein auch das Netz!
Dank der schlechten Ingress-Filterung entdeckte ich, dass die meisten meiner offenen Netzwerke in der Nähe es mir ermöglichten, DNS-Anfragen aufzulösen, ohne eine „vollständige Verbindung“ über das Captive-Portal herzustellen!
CanaryTokens als GPS-DatenbankDas Hosten meines eigenen Webservers und meiner eigenen Infrastruktur für die DNS-Exfiltration wäre ein Ärgernis, aber zum Glück bietet CanaryTokens, eine großartige kostenlose Honeypot-Lösung, eine DNS-Token Service, der es extrem einfach macht, unsere Daten in ein Online-Dashboard zu exfiltrieren!
Um diesen Dienst auszuprobieren, habe ich mich von meinem Laptop mit dem WLAN meines örtlichen Cafés verbunden, ohne meine Daten in das Captive-Portal einzugeben, und mit meinem Telefon ein DNS-Token generiert, das mir eine eindeutige URL in diesem Format gab
Um Daten auf dieses Token zu exfiltrieren, CanaryTokens-Besonderheiten Wir stellen eine zufällige zweistellige Zahl voran Gund eine base32-codierte Subdomain – also habe ich einen Online-Konverter zum Übersetzen verwendet miau123 zu Basis 32: NVSW65ZRGIZQ und eine Anfrage an die folgende URL mit curl gestellt:
curl NVSW65ZRGIZQ.G69.
Von cURL erstellte DNS-Anfrage an CanaryTokens
Es funktionierte! Der letzte Schritt bestand darin, die Hardware zum Protokollieren und Konvertieren von GPS-Koordinaten in Base32-codierte Zeichenfolgen zu erstellen und diese Daten automatisch durch nahe gelegene offene Wi-Fi-Netzwerke zu übertragen.
ESP8266 Wardriving Rig für 10 $Ich hatte nicht viel Zeit zum Iterieren, bevor ich dieses Projekt auf Irish implementierte, also habe ich mein Bestes gegeben, um einen robusten Prototyp im kleinstmöglichen Formfaktor mit vorhandenen Komponenten zu erstellen. So wurde es gemacht.
DNS DriveBy-Tracker wird an Irishs Auto angebracht
⚠️ Dieses Projekt & Artikel ist noch in Arbeit! Es sind noch nicht alle Codes/Designs verfügbar, aber die vollständige Montageanleitung kommt bald ⚠️
BrotaufstrichDer ESP8266 ist wegen seiner Angriffs- und Aufklärungsfähigkeiten mein bevorzugter kostengünstiger Wi-Fi-Mikrocontroller, und ich habe mich für das Minimum entschieden ESP-01 Formfaktor, um meinen Tracker-Footprint so klein wie möglich zu halten.
Gepaart mit einem NEO-6M GPS-Modulbegann ich mit der Erstellung eines Steckbrett-Prototyps, um zu testen, wie viele Koordinaten im internen Speicher des ESP8266 protokolliert werden können.
DNS DriveBy Steckbrett-Prototyp mit ESP8266 und NEO-6M GPS
Komponenten:
- [$1] WiFi-Mikrocontroller (ESP-01)
- [$3] GPS-Modul (NEO-6M GPS)
Ich fand heraus, dass das Speichern der GPS-Koordinaten schnell Heap-Platz verbrauchte und Überläufe und Abstürze verursachte, da der ESP8266 nur ~40 KB internen RAM hat – was bedeutet, dass ich nur etwa 625 GPS-Koordinatenpaare (als Floats) speichern konnte.
Um dies zu mildern, implementierte ich a Warteschlange System, das Koordinaten auf den internen 1 MB Flash-Speicher überträgt SPIFFS – wodurch ich auch Daten im Falle eines Stromausfalls oder Zurücksetzens behalten kann.
Interne DNS DriveBy-Datenbank
Um die verfügbare Speichermenge zu optimieren und den Flash-Verschleiß zu reduzieren, stelle ich das GPS so ein, dass es alle 15 Sekunden Koordinaten abfragt und nur 100 Koordinaten im RAM als base32-codierte char-Arrays mit 34 Zeichen speichert. Damit kann ich etwa 15.600 Koordinatenpaare speichern!
⚠️ Ich muss möglicherweise meine Mathematik und meinen Algorithmus überprüfen ⚠️
Low-Power-HardwareUm das Board lange genug mit Strom zu versorgen, um Informationen über Irishs Aufenthaltsort bereitzustellen, war die Implementierung von Low-Power-Hardware erforderlich, um die Batterie zu schonen, während sein Auto im Leerlauf stand. Glücklicherweise verfügt der ESP8266 über einen Energiesparmodus, der den Stromverbrauch auf etwa reduziert 20 μAdie mit folgender Funktion aufgerufen werden kann:
ESP.deepSleep(0);
Normalerweise “wecken” wir das Board in der Software auf durch Angabe einer Verzögerungaber da ich einen Reset auslösen wollte, wenn eine Bewegung von einem Erschütterungssensor erkannt wird, war dies schwierig, da die Onboard-E / A-Pins im Tiefschlafmodus deaktiviert sind.
Das Auslösen des Resets beim Starten von Irishs Auto war so einfach wie das Hinzufügen eines Schüttelsensors dazwischen zurücksetzen Und Boden – aber um ein versehentliches Zurücksetzen zu verhindern, während das Gerät eingeschaltet ist, musste ich eine verwenden NPN-Transistor und ein NICHT-Gatter, um ein rudimentäres zu erstellen normalerweise geschlossener Schalterdie den Erschütterungssensor elektronisch “trennt”, während der Tracker eingeschaltet und bewegt wird.
DNS DriveBy-Reset-Schaltung und Schema
⚠️ Reset- und Batteriekomponenten sind nicht erforderlich, um den grundlegenden PoC auszuführen
Endgültiger PrototypUm alles zusammenzusetzen, habe ich alle meine Komponenten auf ein Perfboard gelötet und ein billiges BMS mit einem Spannungsregler und einem 400-mAh-LiPo-Akku implementiert, der mir etwa 4,5 Stunden kontinuierliche Aufklärung ermöglicht (bei einer Stromaufnahme von ~ 90 mAh).
DNS DriveBy Perfboard-Prototyp
Die maximalen LiPo-Abmessungen betragen derzeit 16x35x8 mm
Um die Elektronik zu schützen und eine ausreichend große Oberfläche bereitzustellen, um an Irishs Auto zu haften, habe ich FreeCAD verwendet, um ein minimales zweiteiliges Gehäuse zu zaubern, das Wärmeeinsätze und Schrauben verwendet, weil ich dachte, sie wären cool.
[ZusammengebauterDNSDriveBy-PrototypmitESP8266undNEO-6MGPS[AssembledDNSDriveByprototypewithESP8266andNEO-6MGPS
- Gewindeeinsätze (M2,5 x 6 mm)
- Sechskantschrauben (M2,5 x 6 mm)
Um den Prototypen zu testen, aktivierte ich ein offenes Wi-Fi-Netzwerk auf meinem Telefon und fuhr herum, um zu sehen, ob ich entlang meiner Route ein konsistentes Protokoll der GPS-Koordinaten erhalten konnte. Da es darauf ausgelegt ist, Daten zwischenzuspeichern, während keine offenen Netzwerke verfügbar sind, habe ich den Hotspot in zufälligen Abständen ausgeschaltet, um zu sehen, ob ich diese Koordinaten noch empfangen kann.
Ich hatte anfangs einige Probleme mit dem Watchdog-Timer Auslösen, während es versuchte, nach offenen Netzwerken zu suchen, und Haufenüberläufe beim Multitasking zwischen GPS-Protokollierung und laufenden Wi-Fi-Scans – aber schließlich funktionierte ein ziemlich robuster Prototyp!
GPS-Daten werden in das CanaryTokens-Dashboard exfiltriert
Am nächsten Tag setzten Kody, Michael und ich unsere Tracking-Systeme auf Irish ein, wobei jeder einen anderen Ansatz und einen anderen Aufklärungsstil verwendete:
- Michael verwendete handelsübliche Tracker und Konsumgüter wie a Fliesen-Tracker
- Kody verwendete sofort einsatzbereite Hacker-Hardware und einen kniffligen QR-Code-Phishing-Angriff, um Irish mithilfe von Wi-Fi-Sonden von seinem Telefon aus zu verfolgen
- Ich habe meine Fähigkeiten als Hardwareentwickler eingesetzt, um ein kostengünstiges, praktisch nicht nachverfolgbares Implantat zu entwickeln, das mir passive Standortaktualisierungen liefert
Am Ende des Tages überprüfte ich mein CanaryTokens-Dashboard und hatte ein paar hundert Treffer von Irishs Exkursion durch East LA!
Karte der irischen Route um Glendale mit GPS-Punkten
Um diese Daten in etwas Nützliches umzuwandeln, habe ich das CanaryTokens-Protokoll als csv -Datei, verwendete Python zum Analysieren der GPS-Koordinaten und verwendete Google MyMaps um die Daten zu visualisieren.
Da der Tracker auf Irishs Auto angebracht war, bietet diese Karte nur einen Einblick in die allgemeinen Bereiche, die er besuchte – aber ich konnte immer noch sehen, dass er in Forest Lawn anhielt und die Glendale Galleria besuchte!
Auswirkungen und zukünftige Verbesserungen EinschränkungenWährend DNS DriveBy keine Echtzeit-GPS-Updates wie eine Standardlösung bietet, war mein Prototyp in der Lage, ebenso aufschlussreiche Daten über die von Iren besuchten Orte zu sammeln, und das in einem viel billigeren und weniger nachvollziehbaren Fußabdruck – seit einer SIM-Karte oder GPS-Tracker-UID könnte möglicherweise verwendet werden, um festzustellen, wer sie gepflanzt hat.
Der Kompromiss beruht natürlich auf dem Vorhandensein offener Wi-Fi-Netzwerke zur Bereitstellung von Telemetrie und den seltenen, intermittierenden Aktualisierungen – aber da das Ziel (oder die Wardriving-Nachbarschaftskatze) eher städtische Gebiete durchquert, ist die Dichte des offenen Wi -Fi-Netzwerke sollten bescheiden sein. Wenn sie bestimmte Orte aufsuchen, ist es auch möglich, bekannte Zugangsdaten für bestimmte Heim-/Arbeitsnetzwerke fest zu codieren!
DNS-DriveBy-Tracker in Autostoßstange gepflanzt
VerbesserungenUm das Design robuster und einfacher für Anfänger zu montieren, habe ich mit der Entwicklung eines PCB-Kits begonnen, das alle Projektkomponenten enthält, die auch verwendet werden können, um einige meiner anderen kostengünstigen Signals Intelligence-Projekte auszuprobieren!
Verwendung der D1 Mini ESP8266-Formfaktor, dieses Design ermöglicht eine einfache Plug-and-Play-Erweiterung mit verschiedenen D1-Hardware-Add-Onsund hat auch einen größeren 4 MB Flash-Chip.
Fazit & ZukunftsideenNachdem ich Irlands vollständige Reise mit präzisen Datums- und GPS-Daten durch intermittierende Aktualisierungen erfolgreich aufgezeichnet hatte, konnte ich erfolgreich die Machbarkeit einer zufälligen Aufklärung über offene Wi-Fi-Netzwerke demonstrieren! Mit kniffligen Techniken wie der DNS-Exfiltration konnte ich Captive-Portale umgehen und einen 1-Dollar-Wi-Fi-Mikrocontroller verwenden, um einen unauffälligen Tracker zu erstellen, der GPS-Telemetrie für ein Online-Dashboard bereitstellt.
Obwohl ich das ursprüngliche „Lazy Wardriving“-Konzept in dieser Demo nicht erkunden konnte, legt DNS DriveBy die Grundlage für eine billige, einfach zu replizierende Aufklärungsplattform und Exfiltrationstechnik, die ich definitiv in meine zukünftigen Projekte einbetten werde.
Durch unterstütztes GPSich hoffe, wie weit ich diesen Tracker in meiner nächsten Iteration bringen kann, indem ich verwende nur ein Wi-Fi-Radio (kein GPS) und Online-Datenbank wie WiGLE um den Standort des Trackers basierend auf bekannten Wi-Fi-Netzwerken umzukehren.
Wenn Sie Updates zu diesem Projekt und mehr verfolgen möchten, besuchen Sie meine Twitter und bedenke spenden um meine Arbeit zu unterstützen!
Comments are closed.