
Ein experimentelles PoC-Skript für die Kr00k-Schwachstelle (CVE-2019-15126)
Dieses Skript ist ein einfaches Experiment zur Ausnutzung der KR00K-Sicherheitslücke (CVE-2019-15126),
die es ermöglicht, einige WPA2-CCMP-Daten auf anfälligen Geräten (Access Point oder Clients) zu entschlüsseln.
Genauer gesagt versucht dieses Skript, die entschlüsselten Daten von WPA2-CCMP-Paketen zu ermitteln, wenn folgende Informationen bekannt sind:
Wobei:
Dieser Proof-of-Concept funktioniert mit WPA2 AES CCMP auf 2,4-GHz-WLANs. (HINWEIS: Getestet nur mit meinem WLAN-Adapter TPLINK TL-WN722N, sollte aber auch mit anderen WLAN-Adaptern funktionieren, die Pakete injizieren können).
Um die Kr00k-Sicherheitslücke zu überprüfen, kann es notwendig sein, den Proof-of-Concept mehrmals auszuführen, da (so scheint es) nicht immer
eine ausreichende Datenmenge auf anfälligen Geräten zwischengespeichert wird (Tipp: Streaming-Apps, Videoanrufe usw. verwenden).
Dieses Skript muss als privilegierter Benutzer ausgeführt werden und die WLAN-Schnittstelle muss sich im Monitor-Modus befinden.
Die Installation der Python-Pakete „scapy“ und „Cryptodome“ ist erforderlich.
Das Skript ist mit Python 3 kompatibel.
Im Folgenden finden Sie einige Anwendungsbeispiele des Tools. Sie müssen die MAC-Adressen von AP und Client eingeben, außerdem ist es wichtig, den korrekten WLAN-Kanal des WPA2-CCMP-WLANs einzustellen und die Zielkennung anzugeben.
Verwenden Sie die Option „--help“ für eine ausführlichere Liste.
# python3 kr00ker.py -i <interface-name> -b <BSSID> -c <MAC-client> -n <num-packets> -r <reason-id> -t <target-id> -w <wifi-channel> -d <delay>
Einige Beispiele unten.
Starten des Kr00k-Angriffs mit dem Interface wlan0mon gegen das Client-Gerät (-t client) mit Reason 3, Verzögerung 2 Sekunden, Anzahl der Disassociation-Frames 5, auf WLAN-Kanal 2:
# python3 kr00ker.py -i wlan0mon -b XX:XX:XX:XX:XX:XX -c ZZ:ZZ:ZZ:ZZ:ZZ:ZZ -n 5 -r 3 -t client -w 2 -d 2
Starten des Kr00k-Angriffs mit dem Interface wlan0mon gegen den Access Point (-t ap) mit Standard-Reason 7, Standard-Verzögerung 4 Sekunden, Standard-Anzahl der Disassociation-Frames 1, auf WLAN-Kanal 11:
$ sudo python3 kr00ker.py -i wlan0mon -b XX:XX:XX:XX:XX:XX -c ZZ:ZZ:ZZ:ZZ:ZZ:ZZ -t ap -w 11
Wenn die Kr00k-Sicherheitslücke auf dem Zielgerät ausgelöst wird, wird der Hexdump der entschlüsselten Daten in der Ausgabe angezeigt und diese Daten werden auch in einer pcap-Datei gespeichert.
Nachfolgend ein Beispiel für die Ausgabe eines KR00K-anfälligen Geräts:

kr00ker wurde entwickelt von Maurizio Siddu
Copyright (c) 2020 kr00ker
Dieses Programm ist freie Software: Sie können es unter den Bedingungen der GNU General Public License, wie von der Free Software Foundation veröffentlicht, entweder Version 3 der Lizenz oder (nach Ihrer Wahl) jeder späteren Version weiterverbreiten und/oder modifizieren.
Dieses Programm wird in der Hoffnung weitergegeben, dass es nützlich sein wird, jedoch OHNE JEDE GEWÄHRLEISTUNG; sogar ohne die implizite Gewährleistung der MARKTGÄNGIGKEIT oder EIGNUNG FÜR EINEN BESTIMMTEN ZWECK. Siehe die GNU General Public License für weitere Details.
Sie sollten ein Exemplar der GNU General Public License zusammen mit diesem Programm erhalten haben. Wenn nicht, siehe http://www.gnu.org/licenses/.