
Um script PoC experimental para a vulnerabilidade Kr00k (CVE-2019-15126)
Este script é um experimento simples para explorar a vulnerabilidade KR00K (CVE-2019-15126), que permite descriptografar alguns dados WPA2 CCMP em dispositivos vulneráveis (Access Point ou Clientes). Mais especificamente, este script tenta recuperar dados descriptografados de pacotes WPA2 CCMP conhecendo:
Onde:
Esta PoC funciona em WPA2 AES CCMP com frequência 2,4GHz WLANs. (NOTA: testada apenas usando meu adaptador wireless TPLINK TL-WN722N, mas acredito que também funcione com outros adaptadores wireless capazes de injetar pacotes).
Para verificar a vulnerabilidade Kr00k, pode ser necessário executar a PoC várias vezes, porque (parece que) nem sempre uma quantidade suficiente de dados é armazenada em buffer em dispositivos vulneráveis (dica: tente usar aplicativos de streaming, videochamadas, etc.).
Este script deve ser executado como usuário privilegiado e com a interface wireless configurada em modo monitor
É necessária a instalação dos pacotes Python "scapy" e "Cryptodome". O script é compatível com Python 3.
A seguir estão alguns exemplos de uso da ferramenta. Você deve inserir os endereços MAC do AP e do Cliente; também é importante definir o Canal WiFi correto da WLAN WPA2 CCMP e especificar o identificador do alvo. Use a opção "--help" para uma lista mais completa.
# 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>
Alguns exemplos abaixo.
Lançar o ataque Kr00k usando a interface wlan0mon contra o dispositivo cliente (-t client), com reason 3, delay 2 segundos, número de quadros de desassociação 5, no canal 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
Lançar o ataque Kr00k usando a interface wlan0mon contra o Access Point (-t ap), com reason padrão 7, delay padrão 4 segundos, número padrão de quadros de desassociação 1, no canal 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 a vulnerabilidade Kr00k é acionada no dispositivo alvo, o hexdump dos dados descriptografados é exibido na saída, e esses dados também são salvos em um arquivo pcap.
A seguir um exemplo de saída para um dispositivo vulnerável ao KR00K:

kr00ker foi desenvolvido por Maurizio Siddu
Copyright (c) 2020 kr00ker
Este programa é software livre: você pode redistribuí-lo e/ou modificá-lo sob os termos da Licença Pública Geral GNU, conforme publicada pela Free Software Foundation, seja a versão 3 da Licença, ou (a seu critério) qualquer versão posterior.
Este programa é distribuído na esperança de que seja útil, mas SEM QUALQUER GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou ADEQUAÇÃO A UM DETERMINADO FIM. Consulte a Licença Pública Geral GNU para obter mais detalhes.
Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este programa. Caso contrário, veja http://www.gnu.org/licenses/