Introdução
Ao quebrar handshakes WPA/WPA2 com aircrack-ng, o método padrão envolve testar cada senha de uma wordlist. Para cada senha, aircrack-ng deve computar uma Pairwise Master Key (PMK) e verificá-la contra o handshake capturado. Essa computação "on-the-fly" pode ser demorada, especialmente com wordlists grandes.
A ferramenta airolib-ng oferece uma otimização poderosa. Ela permite pré-computar todas as PMKs para uma rede específica (ESSID) e uma determinada wordlist, armazenando-as em um banco de dados. Ao executar o ataque, aircrack-ng pode usar este banco de dados para simplesmente procurar as PMKs em vez de computá-las, resultando em um aumento dramático na velocidade de quebra.
Neste laboratório, você aprenderá a usar um banco de dados airolib-ng pré-construído para quebrar um handshake WPA e comparará seu desempenho com um ataque padrão baseado em wordlist.
Capturar um Handshake WPA para um ESSID em seu Banco de Dados
Nesta etapa, inspecionaremos o arquivo de captura fornecido para confirmar que ele contém um handshake WPA válido. Para este laboratório, um arquivo de captura chamado wpa.cap foi colocado em seu diretório ~/project. Este arquivo contém um handshake de quatro vias capturado para a rede que será nosso alvo.
Vamos usar aircrack-ng para visualizar o conteúdo deste arquivo. Este comando não inicia um ataque; ele simplesmente analisa o arquivo e mostra um resumo das redes que ele contém.
Execute o seguinte comando em seu terminal:
aircrack-ng wpa.cap
Você deverá ver uma saída que lista as redes sem fio encontradas no arquivo de captura. Observe o ESSID (o nome da rede) e a confirmação de que um handshake foi capturado.
Opening wpa.cap
Read 1 packets.
## BSSID ESSID Encryption
1 00:14:6C:7E:40:80 teddy WPA (1 handshake)
Choosing first network as target.
(press CTRL+C to abort)
Você pode pressionar CTRL+C para sair do prompt do aircrack-ng. A informação importante é que temos um handshake para o ESSID teddy. Esta é a rede que será nosso alvo.
Construir o Comando aircrack-ng para o Ataque
Nesta etapa, começaremos a construir o comando aircrack-ng para o nosso ataque. A sintaxe básica para um ataque WPA é aircrack-ng [opções] <arquivo de captura>.
Para tornar o ataque mais eficiente, especialmente quando um arquivo de captura contém várias redes, podemos especificar nosso alvo usando o parâmetro -e seguido pelo ESSID. Com base na etapa anterior, nosso ESSID alvo é teddy.
Vamos adicionar isso ao nosso comando:
aircrack-ng -e teddy
Este comando ainda não está completo. aircrack-ng ainda precisa saber de onde obter as senhas ou PMKs para testar. Em um ataque padrão, usaríamos o flag -w para fornecer uma wordlist. No entanto, para este laboratório, usaremos nosso banco de dados airolib-ng pré-computado. Adicionaremos o parâmetro para o banco de dados na próxima etapa.
Especificar o Banco de Dados usando o Parâmetro -r
Nesta etapa, completaremos nosso comando informando ao aircrack-ng para usar o banco de dados airolib-ng. O parâmetro para isso é -r (que significa "read database" - ler banco de dados).
Durante o processo de configuração deste laboratório, um banco de dados chamado mydb foi criado em seu diretório ~/project. Este banco de dados contém os PMKs pré-computados para o ESSID teddy e as senhas do wordlist.txt.
Agora, vamos juntar todas as peças: o comando aircrack-ng, o ESSID alvo (-e teddy), o banco de dados (-r mydb) e o arquivo de captura (wpa.cap).
O comando final é:
aircrack-ng -e teddy -r mydb wpa.cap
Este comando instrui o aircrack-ng a:
- Alvejar a rede com ESSID
teddy. - Usar os PMKs pré-computados do banco de dados
mydb. - Testar esses PMKs contra o handshake encontrado em
wpa.cap.
Na próxima etapa, executaremos este comando e observaremos os resultados.
Executar o Ataque e Observar a Velocidade de Quebra
Nesta etapa, é hora de executar o ataque usando nosso comando totalmente construído. Ao usar o banco de dados pré-computado, esperamos que o processo de quebra seja extremamente rápido.
Execute o seguinte comando no seu terminal:
aircrack-ng -e teddy -r mydb wpa.cap
O programa iniciará, abrirá o banco de dados e o arquivo de captura, e quase instantaneamente encontrará a chave correta.
Sua saída deve ser semelhante a esta:
Opening mydb
Opening wpa.cap
Read 1 packets.
## BSSID ESSID Encryption
1 00:14:6C:7E:40:80 teddy WPA (1 handshake)
Choosing first network as target.
Opening mydb
Attack will be restarted every 5000 PMKs.
Starting attack on ESSID teddy...
KEY FOUND! [ biscotte ]
Master Key : 45 45 79 A2 25 5D F9 5A 47 2B 1E 15 7E 22 38 84
...
Transient Key : 82 2A 8F 85 42 29 A2 1A 29 69 F1 25 2B 23 4C 78
...
EAPOL HMAC : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Observe a rapidez com que a mensagem KEY FOUND! apareceu. A senha é biscotte. Como os PMKs já foram computados e armazenados no banco de dados mydb, o aircrack-ng apenas teve que realizar uma rápida consulta e comparação, e não os cálculos criptográficos intensivos.
Comparar o Desempenho com um Ataque Padrão de Lista de Palavras
Nesta etapa, para apreciar totalmente a velocidade do método de banco de dados airolib-ng, realizaremos o mesmo ataque usando o método tradicional de lista de palavras. Isso nos permitirá ver a diferença de desempenho em primeira mão.
Em um ataque padrão, usamos o parâmetro -w para especificar um arquivo de lista de palavras. O aircrack-ng lerá então cada senha do arquivo, computará seu PMK e a testará.
O processo de configuração criou um arquivo chamado wordlist.txt para este fim. Vamos executar o ataque usando este arquivo.
Execute o seguinte comando:
aircrack-ng -e teddy -w wordlist.txt wpa.cap
Você verá o aircrack-ng iniciar e começar a testar as chaves. Preste atenção à exibição de status, que mostra o número de chaves testadas e a velocidade atual em chaves por segundo (k/s).
Opening wpa.cap
Read 1 packets.
## BSSID ESSID Encryption
1 00:14:6C:7E:40:80 teddy WPA (1 handshake)
Choosing first network as target.
Opening wpa.cap
Opening wordlist.txt
Reading passwords from wordlist.txt
[0:00:00] 2 keys tested (XXXX.XX k/s)
KEY FOUND! [ biscotte ]
Master Key : 45 45 79 A2 25 5D F9 5A 47 2B 1E 15 7E 22 38 84
...
Transient Key : 82 2A 8F 85 42 29 A2 1A 29 69 F1 25 2B 23 4C 78
...
EAPOL HMAC : 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Embora a chave ainda seja encontrada rapidamente porque nossa lista de palavras é muito pequena, observe que houve um processo mensurável de teste de chaves. Com uma lista de palavras grande contendo milhões de senhas, este processo levaria um tempo significativo. O ataque de banco de dados, em contraste, foi quase instantâneo porque a parte computacionalmente cara já havia sido feita.
Resumo
Neste laboratório, você quebrou com sucesso um handshake WPA usando um banco de dados airolib-ng pré-computado. Você aprendeu a construir o comando aircrack-ng usando o parâmetro -r para especificar o banco de dados e observou seu desempenho quase instantâneo.
Ao comparar isso com um ataque padrão de lista de palavras usando o parâmetro -w, você testemunhou a vantagem significativa de velocidade da pré-computação de PMKs. Esta técnica é inestimável para profissionais de segurança ao direcionar uma rede específica com um grande dicionário de senhas potenciais, pois separa a fase de computação demorada da fase de quebra final.
