
Ein POSIX-konformes, vollautomatisiertes Skript zum Erfassen von WPA PSK PMKID und Handshake, das für Penetrationstests ausgelegt ist.
Airbash ist ein POSIX-kompatibles, vollautomatisches Skript zur Erfassung von WPA PSK PMKID und Handshakes, das für Penetrationstests entwickelt wurde. Es ist kompatibel mit Bash und Android Shell (getestet auf Kali Linux und Cyanogenmod 10.2) und verwendet aircrack-ng, um nach Clients zu scannen, die derzeit mit Access Points (AP) verbunden sind. Diese Clients werden dann deauthentifiziert, um die PMKID und/oder den Handshake zu erfassen, wenn sie versuchen, sich wieder mit dem AP zu verbinden. Die Überprüfung der erfassten Daten erfolgt mit hcxpcaptool und hcxpcapngtool aus hcxtools von ZeroBeat. Wenn eine oder mehrere PMKIDs und/oder Handshakes erfasst werden, werden diese zusammen mit dem Erfassungszeitpunkt und aktuellen GPS-Daten (falls richtig konfiguriert) in eine SQLite3-Datenbank eingetragen.
Nach der Erfassung kann die Datenbank mit crackdefault.sh auf verwundbare Routermodelle getestet werden.
Es sucht nach Einträgen, die den implementierten Modulen entsprechen, zu denen derzeit Algorithmen zur Berechnung von Standard-Schlüsseln für
Speedport 500-700 Serie, Thomson/SpeedTouch, UPC 7 Ziffern (UPC1234567) und HOTBOX-Router gehören.
Für weitere Informationen zum PMKID-Angriff ist New attack on WPA/WPA2 using PMKID eine gute Lektüre.
WiFi-Schnittstelle im Monitor-Modus (auf Android kann dies mit bcmon erreicht werden, sofern das Gerät kompatibel ist)
aircrack-ng (für Android können die vorgefertigten Binärdateien von android_aircrack verwendet werden)
SQLite3 (Android: standardmäßig auf CyanogenMod 10.2 installiert)
openssl für die Kompilierung von Modulen und hcxtools
hcxpcaptool und hcxpcapngtool von hcxtools zur Erkennung von PMKIDs und/oder Handshakes und Konvertierung in hashcat-Formate
Um GPS-Koordinaten von Access Points zu protokollieren, konfigurieren Sie Ihre Koordinaten-Logging-Software so, dass sie in .location/_.txt protokolliert (der Dateiname kann beliebig gewählt werden). Airbash verwendet immer die Ausgabe von cat "$path$loc"*.txt 2>/dev/null | sed '2q;d', was dem Lesen aller .txt-Dateien in .loc/ und dem Auswählen der zweiten Zeile entspricht. Der Grund für diese Implementierungsweise ist die Funktionalität von GPSLogger, das auf dem Entwicklungsgerät verwendet wurde.
Nach der Erfassung einer neuen PMKID oder eines neuen Handshakes kann die Datenbank nach verwundbaren Routermodellen durchsucht werden. Wenn ein Modul zutrifft, werden die Standard-Schlüssel für diese Router-Serie berechnet und als Eingabe für aircrack-ng verwendet, um zu versuchen, die Passphrase wiederherzustellen.
Die Module zur Berechnung der Standard-Schlüssel von Thomson/SpeedTouch und UPC1234567 (7 zufällige Ziffern) sind in src/ enthalten.
Der Code stammt von den Autoren Kevin Devine und mailto:[email protected].
Unter Linux:
gcc -fomit-frame-pointer -O3 -funroll-all-loops -o modules/st modules/stkeys.c -lcrypto
gcc -O2 -o modules/upckeys modules/upc_keys.c -lcrypto
Um die automatische Erkennung zu aktivieren, verschieben Sie bitte die Binärdateien in airbash/bin (wird während der Ausführung zu PATH hinzugefügt) oder in ein Verzeichnis, das sich im PATH befindet.
Wenn Sie Android verwenden, müssen Sie die Binärdateien möglicherweise nach /system/xbin/ oder in ein anderes Verzeichnis kopieren, in dem die Ausführung von Binärdateien erlaubt ist.
Die Ausführung von install.sh erstellt die Datenbank, bereitet die Ordnerstruktur vor und erstellt Shortlinks zu beiden Skripten, die in ein Verzeichnis verschoben werden können, das sich im $PATH befindet, um die Ausführung von jedem Ort aus zu ermöglichen.
Nach der Installation müssen Sie möglicherweise manuell INTERFACE in Zeile 46 von airba.sh anpassen. Dies wird später automatisch ermittelt, aber vorerst ist der Standard auf wlan0 gesetzt, um eine sofortige Kompatibilität mit bcmon auf Android zu gewährleisten.
./airba.sh startet das Skript, das automatisch Ziele scannt und angreift, die nicht in der Datenbank gefunden werden.
./crackdefault.sh versucht, bekannte Standard-Schlüssel-Algorithmen zu knacken.
Um den Datenbankinhalt anzuzeigen, führen Sie sqlite3 .db.sqlite3 "SELECT * FROM hs" im Hauptverzeichnis aus.
Airbash kann durch Ausführen von update.sh aktualisiert werden. Dies klont den Master-Branch in /tmp/ und überschreibt die lokalen Dateien.
_n: Anzahl der gefundenen Access Points
__c/m: steht für Client-Nummer bzw. maximale Anzahl gefundener Clients
-: Access Point ist auf der Blacklist
x: Access Point bereits in der Datenbank
?: Access Point außer Reichweite (nicht mehr von airodump sichtbar)
Die Datenbank enthält eine Tabelle namens captures mit sieben Spalten.
id: Aufsteigender Zähler der Tabelleneinträge
latitude und longitude: GPS-Koordinaten des Handshakes (falls verfügbar)
bssid: MAC-Adresse des Access Points
essid: Namensbezeichner
pmkid: WPA PMKID, falls erfasst
psk: WPA-Passphrase, falls bekannt
processed: Flag, das von crackdefault.sh gesetzt wird, um die doppelte Berechnung von Standard-Schlüsseln zu verhindern, falls eine benutzerdefinierte Passphrase verwendet wurde.
Derzeit ist die SQLite3-Datenbank nicht passwortgeschützt.
Beiträge sind sehr willkommen, insbesondere zusätzliche Module, um mehr Standard-Schlüssel knacken zu können. Ein Vorlagenmodul ist enthalten in modules/. crackdefault.sh enthält eine elif-Anweisungsvorlage, um das neue Modul einzubinden.
Wenn Sie mitwirken möchten, stellen Sie sicher, dass Ihr Code unter der MIT-Lizenz (wie dieses Projekt) lizenziert ist. Bei Shell-Skripten achten Sie bitte darauf, dass der Code POSIX-konform ist. Ansonsten eröffnen Sie einfach ein Issue, in dem Sie die Änderungen kurz beschreiben, und erstellen Sie einen Pull Request!