Quebrar um Handshake WPA usando um Banco de Dados airolib-ng

Beginner
Pratique Agora

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:

  1. Alvejar a rede com ESSID teddy.
  2. Usar os PMKs pré-computados do banco de dados mydb.
  3. 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.