
Uno script PoC sperimentale per la vulnerabilità Kr00k (CVE-2019-15126).
Questo script è un semplice esperimento per sfruttare la vulnerabilità KR00K (CVE-2019-15126), che consente di decifrare alcuni dati WPA2 CCMP su dispositivi vulnerabili (Access Point o Client). Più specificamente, questo script tenta di recuperare i dati decifrati dei pacchetti WPA2 CCMP conoscendo:
Dove:
Questa PoC funziona su WLAN WPA2 AES CCMP con frequenza 2.4GHz. (NOTA: testata solo usando il mio adattatore wireless TPLINK TL-WN722N, ma penso che dovrebbe funzionare anche con altri adattatori wireless in grado di iniettare pacchetti).
Per verificare la vulnerabilità Kr00k potrebbe essere necessario lanciare la PoC più volte, perché (a quanto pare) non sempre una quantità sufficiente di dati viene bufferizzata sui dispositivi vulnerabili (suggerimento: prova a usare app di streaming, videochiamate, ecc.).
Questo script deve essere eseguito come utente privilegiato e con l'interfaccia wireless configurata in modalità monitor
È richiesta l'installazione dei pacchetti Python "scapy" e "Cryptodome". Lo script è compatibile con Python 3.
Di seguito sono riportati alcuni esempi di utilizzo dello strumento. Devi inserire gli indirizzi MAC dell'AP e del client; è anche importante impostare il canale WiFi corretto della WLAN WPA2 CCMP e specificare l'identificatore del target. Usa l'opzione "--help" per un elenco più esaustivo.
# 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>
Alcuni esempi di seguito.
Lancia l'attacco Kr00k usando l'interfaccia wlan0mon contro il client (opzione -t client), con reason 3, ritardo di 2 secondi, numero di frame di disassociazione 5, sul canale WiFi 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
Lancia l'attacco Kr00k usando l'interfaccia wlan0mon contro il dispositivo Access Point (opzione -t ap), con reason predefinito 7, ritardo predefinito di 4 secondi, numero predefinito di frame di disassociazione 1, sul canale WiFi 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
Quando la vulnerabilità Kr00k viene attivata sul dispositivo target, l'hexdump dei dati decifrati viene mostrato in output e questi dati vengono anche salvati in un file pcap.
Di seguito un esempio di output per un dispositivo vulnerabile a KR00K:

kr00ker è stato sviluppato da Maurizio Siddu
Copyright (c) 2020 kr00ker
Questo programma è software libero: puoi ridistribuirlo e/o modificarlo secondo i termini della GNU General Public License come pubblicata dalla Free Software Foundation, o alla versione 3 della Licenza, o (a tua scelta) qualsiasi versione successiva.
Questo programma è distribuito nella speranza che sia utile, ma SENZA ALCUNA GARANZIA; senza nemmeno la garanzia implicita di COMMERCIABILITÀ o IDONEITÀ PER UN PARTICOLARE SCOPO. Vedere la GNU General Public License per maggiori dettagli.
Dovresti aver ricevuto una copia della GNU General Public License insieme a questo programma. In caso contrario, vedere http://www.gnu.org/licenses/.