
Skript und Hardware-Kit zum automatischen Deauth von 802.11-Clients en masse. Erfasst Pakete für spätere Boshaftigkeiten.
Skript zum automatischen Deauthentifizieren von 802.11-Clients in Massen. Erfasst Pakete für spätere Schandtaten. Großartiger Gesprächsstarter in Ihrem lokalen Café.
Dieses Skript wurde für den Betrieb auf einem Raspberry Pi 3 oder höher entwickelt. Es läuft natürlich auch auf ähnlicher Hardware mit gleichen oder größeren Fähigkeiten.
Ein beträchtlicher zusätzlicher Ausrüstungssatz ist erforderlich, um das Skript effektiv zu betreiben. Sie benötigen außerdem:
Für maximale Effektivität sollten Sie außerdem haben:
Ich persönlich verwende ConnectBot mit Hacker's Keyboard auf meinem Handy, um Kits wie dieses per SSH zu steuern. Es erregt am wenigsten Aufmerksamkeit und passt in die Hosentasche.
Ich empfehle, das Gerät so zu konfigurieren, dass es automatisch eine Verbindung zu einem von Ihnen gehosteten VPN herstellt, um Routing-/NAT-Probleme zu vermeiden. Die einfachste Möglichkeit ist die Einrichtung von OpenVPN auf einem Cloud-Host. Stellen Sie sicher, dass Sie die client-to-client-Serverkonfigurationsdirektive von OpenVPN verwenden oder anderweitig Weiterleitung konfiguriert haben.
Sie benötigen natürlich eine andere Methode als WLAN, um das Gerät mit dem Internet zu verbinden. Mobilfunkzugang ist der einfachste Kandidat. Sofern Sie nicht beabsichtigen, Paketmitschnitte aus der Ferne vom Gerät zu holen, wird nur sehr wenig Bandbreite (<100 Kibit/s) benötigt. Sie können mit einem günstigen "unbegrenzten" Datentarif auskommen, der die Geschwindigkeit nach einem bestimmten Datenvolumen drosselt.
Ich hatte MTU-Probleme beim Ausführen von OpenVPN über Mobilfunk. Das einfachste Gegenmittel ist, Ihre MTU mit ip link set dev tunX mtu 1200 auf 1200 zu setzen, wobei tunX Ihr Tun-Gerät ist. Abhängig von Ihrem Netzwerk müssen Sie möglicherweise eine andere MTU verwenden.
Je nach Ihrer spezifischen Konfiguration können die angeschlossenen USB-Geräte mehr Strom verbrauchen, als der Raspberry Pi auf seinem üblichen Weg bereitstellen kann. Die Verwendung eines USB-Hubs mit eigener Stromversorgung wie dem oben genannten ermöglicht es Ihnen, die Funkgeräte über einen weiteren USB-Anschluss des Akkus mit Strom zu versorgen. Einige billige USB-Hubs versorgen den Hub auf dem Raspberry Pi mit Rückstrom. Dies ist geeignet, solange Sie einen hochwertigen Akku verwenden, und sogar nützlich.
Eine andere Lösung ist die zusätzliche Stromversorgung des USB-Hubs über einen Splitter wie diesen. Es funktioniert, aber ich empfehle es nicht. Es ist ein weiteres Teil, das versehentlich getrennt werden könnte, und ansonsten nur schwer zu organisieren ist.
Wenn Sie die Fernsteuerung über ein angeschlossenes Mobiltelefon bereitstellen, sollten Sie sicherstellen, dass der Akku beim Starten des Kits möglichst vollständig geladen ist. Einige billige Geräte ziehen möglicherweise nicht genug Strom, um mit dem Stromverbrauch einer ständigen Datenverbindung Schritt zu halten.
Die Kombination aus mehreren Funkgeräten, dem Raspberry Pi und dem Mobilfunkmodem wird sehr heiß. Die Panda PAU06 werden besonders heiß. Wenn Ihnen die Hitze nichts ausmacht, werden Sie am Ende geschmolzene Funkgeräte oder Schlimmeres haben. Führen Sie vorher einen Testlauf mit Ihrer gewählten Tasche/Behältnis bei Raumtemperatur durch, um sicherzustellen, dass sie eine ausreichende Wärmeableitung bietet. Wenn Sie das Kit in einer heißen Umgebung verwenden müssen, z. B. in einem Fahrzeug an einem warmen Tag, ergreifen Sie zusätzliche Maßnahmen, um eine Überhitzung zu vermeiden. Bei einem Fahrzeug reicht es, die Klimaanlage einzuschalten und das Fahrzeug zeitweise zu starten.
Einige billige Mobiltelefone neigen aufgrund der Kombination aus der zusätzlichen Ausrüstung und der Notwendigkeit, regelmäßig Daten zu übertragen, zur Überhitzung. Sie können unter diesen Bedingungen abschalten und die Fernsteuerung verhindern. Das Telefon in einem separaten Fach vom restlichen Kit zu platzieren, hilft, aber es ist besser, ein anderes Gerät zu verwenden.
Wenn Sie beabsichtigen, das Kit verdeckt zu betreiben, bedenken Sie, dass die Hitze auf unerwartete Weise Aufmerksamkeit erregen kann. Wenn es an einem verschneiten Tag auf dem Armaturenbrett eines Fahrzeugs liegt, schmilzt es den Schnee und das Eis. Auf der Windschutzscheibe wird eine schöne runde freie Stelle erscheinen, die das Kit in den Mittelpunkt rückt, während alles andere mit Schnee bedeckt ist!
Die Installationsanweisungen für Wisp sind in rpi-install.md beschrieben. Die Schritte sollten für Nicht-Raspbian-Systeme ähnlich sein. Wisp ist auf aireplay-ng von aircrack-ng angewiesen, um Deauth-Frames zu senden. Beachten Sie, dass Sie Python-3.7.1 für das Gerät bauen müssen, was ebenfalls in der Datei rpi-install.md beschrieben ist.
Wisp ist auf ein weiteres kleines C-Programm namens dream angewiesen. Der Quellcode ist als dream.c enthalten. Dream ist von libpcap abhängig.
Kompilieren Sie dream für Ihr Gerät mit dem Befehl gcc -O3 dream.c -lpcap.
Dream ist ein Werkzeug zur Überwachung von 802.11-Verkehr mit einer zeilenweise durchsuchbaren Ausgabe. Es speichert den erfassten Verkehr auch in Dateien im Standard-Pcap-Format. Wisp ruft dream für jedes Monitoring-Funkgerät auf und analysiert die Ausgabe auf Client-Verkehr. Hier sind seine Argumente:
--a: Nur Verkehr von assoziierten Clients melden. (Alle Pakete werden weiterhin auf Disk geloggt, wenn --d aktiviert ist.)--d (datei): Pakete in die angegebene Datei schreiben.-[b][c][d][f][s][t]: Gibt an, welche Felder pro Zeile ausgegeben werden sollen, im Einzelnen:
b: BSSc: Kanalnummer.d: Name des Geräts, das das Paket empfangen hat.f: Frequenz.s: Station (STA).t: Pcap-Zeitstempel.Diese Felder werden unabhängig von der angegebenen Reihenfolge immer in derselben Reihenfolge ausgegeben. (Das heißt, -bcst ist äquivalent zu -sctb.)
Wisp liest eine JSON-formatierte Datei namens wisp.json für die Konfiguration. Hier ist eine Beschreibung der Schlüssel:
monitors: Enthält eine Liste von Geräten, die als Monitore konfiguriert werden sollen. Jedes Gerät enthält Unterschlüssel, die seine spezifische Konfiguration beschreiben:
channel: Der Kanal, den das Gerät überwachen soll.injector: Das Gerät, das zum Injizieren von Deauth-Frames konfiguriert werden soll.timing: Listet mehrere Zeitparameter auf, alle in Millisekunden angegeben:
delay: Die Verzögerung zwischen gesendeten Deauth-Paketen, pro Client.jitter: Moduliert die Verzögerungszeit um einen zufälligen Betrag im angegebenen Bereich.stale: Zeit, die ein Client nicht gesehen wird, bevor er aus der Verzögerungsliste entfernt wird. Hat wenig praktische Auswirkung, es sei denn, sie liegt nahe an der Verzögerungszeitspanne.Alle Parameter werden aus wisp.json geladen, daher wird wisp einfach aufgerufen: python3 ./wisp.py
Wisp konfiguriert automatisch die Funkgeräte wie in wisp.json beschrieben. Es deaktiviert auch rfkill und beendet störende Prozesse, ähnlich dem Verhalten von airmon-ng.
Wisp benennt die angegebenen Geräte mit dem Format wispX um, wobei X die mit dem phy verbundene Nummer ist. Beim Beenden benennt es die Geräte wieder in ihre ursprünglichen Namen um.
Wisp gibt einen . für jedes gesendete Deauth aus. Dies ist eine einfache und effektive Möglichkeit, sicherzustellen, dass es wie erwartet funktioniert.
Wisp (über dream) gibt pcap-Dateien aus, die mit dem Namen des Funkgeräts (phy) beginnen, das die Pakete erfasst hat, zusammen mit einem zufälligen Hexadezimalstring, und auf .cap enden. Zum Beispiel so etwas wie phy0-8cf9ec5ca146943f.cap. Sie können sie dann mit beliebigen üblichen Werkzeugen für pcap-Dateien untersuchen, analysieren und bearbeiten.