Ferramentas do usuário

Ferramentas do site


pt-br:aircrack-ng

Aircrack-ng

Tradução e Adaptação: JaymesSmith
Iniciado em: 11/01/08
Completado em: 12/02/08
Última revisão: 22/05/08

Descrição

Aircrack-ng é um programa para quebrar chaves WEP e WPA/WPA2-PSK do IEEE 802.11.

Aircrack-ng pode recuperar a chave WEP, uma vez que um número suficiente de pacotes criptografados sejam capturados com o airodump-ng. Esta parte do pacote Aircrack-ng determina a chave WEP usando dois métodos fundamentais. O primeiro método é por abordagem PTW (Pyshkin, Tews, Weinmann). A principal vantagem da abordagem PTW é que pouquíssimos pacotes de dados são necessários para quebrar a chave WEP. O segundo método é o método FMS/KoreK. O método FMS/KoreK incorpora vários ataques estatísticos para descobrir a chave WEP e usa esses ataques em combinação com força-bruta.

Adicionalmente, o programa oferece um método de dicionário para determinar a chave WEP. Para quebrar chaves pré-compartilhadas WPA/WPA2, somente o método de dicionário é utilizado.

Captura de Tela

LEGENDA
1 = Byte da chave
2 = Profundidade da procura da chave atual
3 = Byte que os IVs vazaram
4 = Votos indicando que este byte está correto

Como funciona?

O primeiro método é o método PTW (Pyshkin, Tews, Weinmann). O método PTW está completamente descrito no artigo encontrado neste web site. Em 2005, Andreas Klein apresentou uma outra análise da cifra de fluxo RC4. Klein mostrou que há mais relações entre o fluxo de chave RC4 e a chave do que nas relações encontradas por Fluhrer, Mantin, e Shamir, e essas podem ser utilizadas em conjunto para quebrar o WEP. O método PTW faz extensão do ataque do Klein e otimiza-o para uso contra o WEP. Ele basicamente usa técnicas FMS melhoradas, descritas na seção seguinte. Uma restrição importante em particular é que somente funciona com pacotes ARP Request/Reply e não pode ser empregado contra outro tráfego.

O segundo método é o método FMS/Korek, o qual incorpora múltiplas técnicas. Os Documentos de Técnicas, na página de links, lista vários trabalhos e artigos que descrevem essas técnicas detalhadamente e a matemática por detrás delas.

Neste método várias técnicas são combinadas para quebrar a chave WEP:

  • Ataques FMS (Fluhrer, Mantin, Shamir) - técnicas estatísticas
  • Ataques Korek - técnicas estatísticas
  • Força-Bruta

Quando usar técnicas estatísticas para quebrar a chave WEP, cada byte da chave é manipulada individualmente. Usando matemática estatística, a possibilidade de um certo byte na chave ser adivinhado corretamente sobe para 15% quando o Vetor de Inicialização (IV) correto é capturado para um byte de chave específico. Essencialmente, certos IVs “vazam” a chave WEP secreta para bytes de chaves específicos. Esta é a base fundamental das técnicas de estatística.

Por meio do uso de uma série de testes estatísticos chamados de ataques FMS e Korek, votos são acumulados para chaves prováveis para cada byte de chave da chave WEP secreta. Ataques diferentes têm um número diferente de votos associados a eles, já que a probabilidade de cada ataque render a resposta certa varia matematicamente. Quanto mais votos um valor particular de chave em potencial acumular, mais provável será de estar correto. Para cada byte de chave, a tela mostra a provável chave secreta e o número de votos que acumulou até o momento. Nem precisa dizer, a chave secreta com o maior número de votos tem maior probabilidade de estar correta, mas não é garantido. Aircrack-ng testará em seqüência a chave para confirmá-la.

Observando um exemplo tornará isso mais claro. Na captura de tela acima, você pode ver que no byte de chave 0, o byte 0xAE coletou alguns votos, 50 nesse caso. Então, matematicamente, é mais provável que a chave comece com AE do que com 11 (o segundo na mesma linha), que é quase metade da probabilidade. Isso explica por quê quanto mais dados são disponibilizados, maiores são as chances de o aircrack-ng determinar a chave WEP secreta.

Entretanto, a abordagem estatística só pode ser levá-lo até aqui. A idéia é chegar até esse ponto com estatística e então usar força-bruta para terminar o trabalho. Aircrack-ng usa força-bruta nas chaves mais prováveis, na verdade, para determinar a chave WEP secreta.

Aqui é onde o fator de correção entra. Basicamente o fator de correção diz ao aircrack-ng como fazer força-bruta de modo mais amplo. É como arremessar uma bola em um campo e dizer a alguém que a bola está em algum lugar entre 0 e 10 metros de distância. Contra dizer que a bola está em algum lugar entre 0 e 100 metros de distância. O cenário de 100 metros levará mais tempo para procurar a bola do que o de 10 metros, mas você terá mais chances de encontrar a bola com a procura mais ampla. É uma troca entre a duração do tempo e a propabilidade de encontrar a chave WEP secreta.

Por exemplo, se você dizer ao aircrack-ng para usar um fator de correção 2, ele vai usar os votos do byte mais provável, e verificar todas as outras possibilidades que são, pelo menos, metade da possibilidade desse byte em uma base de força-bruta. Quanto maior for o fator de correção, mais possibilidades o aircrack-ng tentará em uma base de força-bruta. Tenha em mente que quanto maior for o fator de correção, aumenta tremendamente o número de chaves secretas a tentar, e conseqüentemente o tempo restante também aumenta. Portanto, com mais dados disponíveis, a necessidade de força-bruta - que requer muito tempo e muito da CPU - pode ser minimizada.

No final, é tudo só matemática “simples” e força-bruta!

Para quebrar chaves WEP, um método de dicionário é incluído também. Para WEP, você pode usar ou o método estatístico descrito acima ou o método de dicionário, não os dois ao mesmo tempo. Com o método de dicionário, você primeiro cria um arquivo ou com chaves ASCII ou com chaves hexadecimais. Um único arquivo só pode conter um tipo, e não uma mistura dos dois. Ele é então utilizado como entrada no aircrack-ng, e o programa testa cada chave para determinar se está correta ou não.

As técnicas e abordagens acima não funcionam para chaves pré-compartilhadas WPA/WPA2. O único jeito de quebrar essas chaves pré-compatilhadas é por meio de um ataque de dicionário. Essa capacidade está incluída também no aircrack-ng.

Com chaves pré-compartilhadas, o cliente e o Access Point estabelecem material de chaveamento para ser usado no início de suas comunicações, quando o cliente primeiro associa com o Access Point. Há um “aperto de mão de quatro vias”, mais conhecido como four-way handshake, entre o cliente e o Access Point. Airodump-ng pode capturar esse four-way handshake. Utilizando entrada de uma lista de palavras (wordlist) providenciada, o aircrack-ng duplica o four-way handshake para determinar se uma entrada em particular da lista de palavras iguala-se aos resultados do four-way handshake. Se igualarem, então a chave pré-compartilhada foi identificada com êxito.

Deve-se notar que este processo é muito intensivo computacionalmente, e na prática, chaves pré-compartilhadas incomuns ou muito longas são improváveis de se determinar. Uma lista de palavras de qualidade te dará os melhores resultados. Outro caminho é usar uma ferramenta, como John The Ripper, para gerar advinhações de senhas, que servem no aircrack-ng.

Explicação do Campo de Profundidade e Fator de Correção

A melhor explicação é um exemplo. Nós observaremos um byte específico. Todos os bytes são processados da mesma maneira.

Você tem os votos como na captura de tela abaixo. Para o primeiro byte, eles se parecem com isso:

AE(50) 11(20) 71(20) 10(12) 84(12)

AE, 11, 71, 10 e 84 formam a possível chave secreta para o byte de chave 0. Os números em parênteses são os votos que cada chave secreta possível acumulou até o momento.

Agora se você decidir usar um fator de correção 3, o aircrack-ng pega o voto do byte mais possível, no caso o byte AE(50), e o divide por 3:

50 / 3 = 16.666666

Aircrack-ng testará (força-bruta) todas as chaves possíveis com um voto maior que 16.6666, resultando em

AE, 11, 71

sendo testados, então nós temos uma profundidade total de três:

0 / 3     AE(50) 11(20) 71(20) 10(12) 84(12)

Quando o aircrack-ng está testando chaves com AE, ele mostra 0 / 3, se tiver todas as chaves testadas com aquele byte, ele muda para o próximo (11 nesse caso) e apresenta:

1 / 3     11(20) 71(20) 10(12) 84(12)

Resumindo:

Antes…

0 / 3     AE(50) 11(20) 71(20) 10(12) 84(12)

depois…

1 / 3     11(20) 71(20) 10(12) 84(12) ??(??)

E por aí vai…

2 / 3     71(20) 10(12) 84(12) ??(??) ??(??)

Uso

aircrack-ng [opções] <arquivo(s) capturado(s)>

Você pode especificar vários arquivos de entrada (em formato .cap ou .ivs). Você pode também executar ambos airodump-ng e aircrack-ng ao mesmo tempo: aircrack-ng fará atualização automática quando novos IVs estiverem disponíveis.

Aqui está um resumo de todas as opções disponíveis:

OpçãoParâmetroDescrição
-amodoForça modo de ataque (1 = WEP estático, 2 = WPA/WPA2-PSK).
-eessidSe usado, todos os IVs de redes com o mesmo ESSID serão utilizados. Essa opção é também requisitada para quebrar WPA/WPA2-PSK se o ESSID não está em broadcast (escondido).
-bbssidSeleciona a rede alvo baseada no endereço MAC do Access Point.
-pnúmero de CPUsEm sistemas SMP: número de CPUs a utilizar.
-qnenhumHabilita modo quieto (não mostra status até que a chave seja encontrada, ou não).
-cnenhum[Quebra WEP] Restringe o espaço de busca a caracteres alfa-numéricos somente (0x20 - 0x7F).
-tnenhum[Quebra WEP] Restringe o espaço de busca a caracteres hexadecimais codificados em binários.
-hnenhum[Quebra WEP] Restringe o espaço de busca a caracteres numéricos (0x30-0x39). Essas chaves são usadas por padrão na maioria dos Fritz!BOXes.
-dinício[Quebra WEP] Configura o início da chave WEP (em hexadecimal), para propósitos de depuração.
-mendereço MAC[Quebra WEP] Endereço MAC para filtrar pacotes de dados WEP. Alternativamente, especifique -m ff:ff:ff:ff:ff:ff para usar cada um e todos IVs, independente da rede.
-nnúmero de bits[Quebra WEP] Especifica o tamanho da chave: 64 para WEP de 40-bit, 128 para WEP de 104-bit, etc. O valor padrão é 128.
-iíndice[Quebra WEP] Apenas mantém os IVs que têm esse índice de chave (1 a 4). O comportamento padrão é ignorar o índice de chave (key index).
-ffator de correção[Quebra WEP] Por padrão, esse parâmetro é ajustado pra 2 para WEP de 104-bit e pra 5 para WEP de 40-bit. Especifique um valor mais alto para aumentar o nível de força-bruta: quebra da chave levará mais tempo, mas terá mais probabilidade de êxito.
-kKorek[Quebra WEP] Existem 17 ataques estatísticos Korek. Às vezes um ataque cria um enorme falso-positivo que previne a chave de ser encontrada, mesmo com muitos IVs. Tente -k 1, -k 2, … -k 17 para desabilitar cada ataque seletivamente.
-x/-x0nenhum[Quebra WEP] Disabilita força-bruta dos últimos bytes de chave.
-x1nenhum[Quebra WEP] Habilita força-bruta do último byte de chave. (padrão)
-x2nenhum[Quebra WEP] Habilita força-bruta dos últimos 2 bytes de chave.
-Xnenhum[Quebra WEP] Disabilita multi-processamento da força-bruta (somente SMP).
-ynenhum[Quebra WEP] Este é um ataque de força-bruta único, experimental, que apenas deve ser usado quando o modo de ataque padrão falhar com mais de um milhão de IVs.
-wpalavras[Quebra WPA] Caminho de uma lista de palavras - wordlist, ou “-” sem as aspas para padronizar em (stdin).
-znenhumInicia com o método PTW de quebra de chaves WEP.

Exemplos de Uso

WEP

O caso mais simples é quebrar uma chave WEP. Se você quer tentar isso por si próprio, aqui está um arquivo de teste. A chave para o arquivo de teste iguala-se à imagem da tela acima, ela não iguala-se ao exemplo a seguir.

aircrack-ng 128bit.ivs 

Onde:

  • 128bit.ivs é o nome do arquivo contendo IVs.

O programa responde:

 Opening 128bit.ivs
 Read 684002 packets.

 #  BSSID              ESSID                     Encryption

 1  00:14:6C:04:57:9B                            WEP (684002 IVs)

 Choosing first network as target.

Se existirem várias redes contidas no arquivo, então você tem a opção de selecionar qual rede você quer. Por padrão, o aircrack-ng assume a criptografia de 128 bits.

O processo de quebrar começa, e uma vez quebrado, aqui está como a tela se parece:

                                              Aircrack-ng 0.7 r130


                              [00:00:10] Tested 77 keys (got 684002 IVs)

 KB    depth   byte(vote)
  0    0/  1   AE( 199) 29(  27) 2D(  13) 7C(  12) FE(  12) FF(   6) 39(   5) 2C(   3) 00(   0) 08(   0) 
  1    0/  3   66(  41) F1(  33) 4C(  23) 00(  19) 9F(  19) C7(  18) 64(   9) 7A(   9) 7B(   9) F6(   9) 
  2    0/  2   5C(  89) 52(  60) E3(  22) 10(  20) F3(  18) 8B(  15) 8E(  15) 14(  13) D2(  11) 47(  10) 
  3    0/  1   FD( 375) 81(  40) 1D(  26) 99(  26) D2(  23) 33(  20) 2C(  19) 05(  17) 0B(  17) 35(  17) 
  4    0/  2   24( 130) 87( 110) 7B(  32) 4F(  25) D7(  20) F4(  18) 17(  15) 8A(  15) CE(  15) E1(  15) 
  5    0/  1   E3( 222) 4F(  46) 40(  45) 7F(  28) DB(  27) E0(  27) 5B(  25) 71(  25) 8A(  25) 65(  23) 
  6    0/  1   92( 208) 63(  58) 54(  51) 64(  35) 51(  26) 53(  25) 75(  20) 0E(  18) 7D(  18) D9(  18) 
  7    0/  1   A9( 220) B8(  51) 4B(  41) 1B(  39) 3B(  23) 9B(  23) FA(  23) 63(  22) 2D(  19) 1A(  17) 
  8    0/  1   14(1106) C1( 118) 04(  41) 13(  30) 43(  28) 99(  25) 79(  20) B1(  17) 86(  15) 97(  15) 
  9    0/  1   39( 540) 08(  95) E4(  87) E2(  79) E5(  59) 0A(  44) CC(  35) 02(  32) C7(  31) 6C(  30) 
 10    0/  1   D4( 372) 9E(  68) A0(  64) 9F(  55) DB(  51) 38(  40) 9D(  40) 52(  39) A1(  38) 54(  36) 
 11    0/  1   27( 334) BC(  58) F1(  44) BE(  42) 79(  39) 3B(  37) E1(  34) E2(  34) 31(  33) BF(  33) 

           KEY FOUND! [ AE:66:5C:FD:24:E3:92:A9:14:39:D4:27:4B ] 

Essa chave pode então ser usada para conectar-se à rede.

A seguir, nós observamos a quebra de WEP com um dicionário. Para conseguir fazer isso nós precisamos de arquivos de dicionário com chaves ASCII ou hexadecimais para testá-las. Lembre-se: um único arquivo só pode ter chaves ou ASCII ou hexadecimais nele, não ambos.

Chaves WEP podem ser inseridas em haxadecimal ou ASCII. A tabela a seguir descreve quantos caracteres de cada tipo são necessários nos seus arquivos.

Tamanho da chave WEP em bits Caracteres Hexadecimais Caracteres ASCII
64105
1282613
1523216
2565829

Exemplo de chave ASCII de 64 bits: “ABCDE”
Exemplo de chave hexadecimal de 64 bits: “12:34:56:78:90” (Note o “:” a cada dois caracteres.)
Exemplo de chave ASCII de 128 bits: “ABCDEABCDEABC”
Exemplo de chave hexadecimal de 128 bits: “12:34:56:78:90:12:34:56:78:90:12:34:56”

Para quebrar uma chave WEP de 64 bits por dicionário:

aircrack-ng -w h:hex.txt,ascii.txt -a 1 -n 64 -e teddy wep10-01.cap

Onde:

  • -w h:hex.txt,ascii.txt é a lista de arquivos a usar. Para arquivos contendo valores hexadecimais, você precisa colocar um “h:” na frente do nome do arquivo.
  • -a 1 informa que a chave é WEP
  • -n 64 informa que a chave tem 64 bits. Altere isso para o tamanho de chave que se ajusta aos arquivos de dicionário.
  • -e teddy é para selecionar opcionalmente o Access Point. Você poderia também usar a opção “-b” para escolher baseado no endereço MAC.
  • wep10-01.cap é o nome do arquivo contendo os dados. Pode ser o pacote completo ou um arquivo contendo apenas IVs. Precisa conter um mínimo de quatro IVs.

Aqui está um exemplo do resultado final:

                                              Aircrack-ng 0.7 r247
 
 
                              [00:00:00] Tested 2 keys (got 13 IVs)
 
 KB    depth   byte(vote)
  0    0/  0   00(   0) 00(   0) 00(   0) 00(   0) 00(   0) 00(   0) 00(   0) 00(   0) 00(   0) 00(   0) 
  1    0/  0   00(   0) 00(   0) 00(   0) 00(   0) 00(   0) 00(   0) 00(   0) 00(   0) 00(   0) 00(   0) 
  2    0/  0   00(   0) 00(   0) 00(   0) 00(   0) 00(   0) 00(   0) 00(   0) 00(   0) 00(   0) 00(   0) 
  3    0/  0   00(   0) 00(   0) 00(   0) 00(   0) 00(   0) 00(   0) 00(   0) 00(   0) 00(   0) 00(   0) 
  4    0/  0   00(   0) 00(   0) 00(   0) 00(   0) 00(   0) 00(   0) 00(   0) 00(   0) 00(   0) 00(   0) 
 
                       KEY FOUND! [ 12:34:56:78:90 ] 
      Probability: 100%

Vamos dar uma olhada em um exemplo de ataque PTW. Lembre-se que esse método requer pacotes ARP Request/Reply como entrada. Precisa ser o pacote completo, e não somente os IVs. Isso significa que a opção “– ivs” não pode ser utilizada quando estiver executando o airodump-ng. De mesmo modo, somente funciona para criptografia WEP de 64 e 128 bits.

Digite o seguinte comando:

 aircrack-ng -z ptw*.cap  

Onde:

  • -z significa usar a metodologia PTW para quebrar a chave WEP.
  • ptw*.cap são os arquivos capturados a serem usados.

O sistema responde:

 Opening ptw-01.cap
 Read 171721 packets.
    
 #  BSSID              ESSID                     Encryption
 
 1  00:14:6C:7E:40:80  teddy                     WEP (30680 IVs)
 
 Choosing first network as target.

Então:

                                              Aircrack-ng 0.9
 
                              [00:01:18] Tested 0/140000 keys (got 30680 IVs)
 
 KB    depth   byte(vote)
  0    0/  1   12( 170) 35( 152) AA( 146) 17( 145) 86( 143) F0( 143) AE( 142) C5( 142) D4( 142) 50( 140) 
  1    0/  1   34( 163) BB( 160) CF( 147) 59( 146) 39( 143) 47( 142) 42( 139) 3D( 137) 7F( 137) 18( 136) 
  2    0/  1   56( 162) E9( 147) 1E( 146) 32( 146) 6E( 145) 79( 143) E7( 142) EB( 142) 75( 141) 31( 140) 
  3    0/  1   78( 158) 13( 156) 01( 152) 5F( 151) 28( 149) 59( 145) FC( 145) 7E( 143) 76( 142) 92( 142) 
  4    0/  1   90( 183) 8B( 156) D7( 148) E0( 146) 18( 145) 33( 145) 96( 144) 2B( 143) 88( 143) 41( 141) 
 
                       KEY FOUND! [ 12:34:56:78:90 ] 
      Decrypted correctly: 100%

WPA

Agora vamos para quebra de frases-senha (passphrases) WPA/WPA2. Aircrack-ng pode quebrar ambos os tipos.

aircrack-ng -w password.lst *.cap 

Onde:

  • -w password.lst é o nome do arquivo de senha. Lembre-se de especificar o caminho completo se o arquivo não estiver localizado no mesmo diretório.
  • *.cap é o nome do grupo de arquivos contendo os pacotes capturados. Observe que neste caso nós usamos o curinga '*' para incluir vários arquivos.

O programa responde:

 Opening wpa2.eapol.cap
 Opening wpa.cap
 Read 18 packets.

 #  BSSID              ESSID                     Encryption

 1  00:14:6C:7E:40:80  Harkonen                  WPA (1 handshake)
 2  00:0D:93:EB:B0:8C  test                      WPA (1 handshake)

 Index number of target network ? 

Note que neste caso, já que existem múltiplas redes, nós precisamos selecionar qual rede atacar. Nós selecionamos a número 2. O programa então responde:

                               Aircrack-ng 0.7 r130


                 [00:00:03] 230 keys tested (73.41 k/s)


                         KEY FOUND! [ biscotte ]


    Master Key     : CD D7 9A 5A CF B0 70 C7 E9 D1 02 3B 87 02 85 D6 
                     39 E4 30 B3 2F 31 AA 37 AC 82 5A 55 B5 55 24 EE 

    Transcient Key : 33 55 0B FC 4F 24 84 F4 9A 38 B3 D0 89 83 D2 49 
                     73 F9 DE 89 67 A6 6D 2B 8E 46 2C 07 47 6A CE 08 
                     AD FB 65 D6 13 A9 9F 2C 65 E4 A6 08 F2 5A 67 97 
                     D9 6F 76 5B 8C D3 DF 13 2F BC DA 6A 6E D9 62 CD 

    EAPOL HMAC     : 52 27 B8 3F 73 7C 45 A0 05 97 69 5C 30 78 60 BD 

Agora você tem a frase-chave (passphrase) e pode conectar-se à rede.

Dicas de Uso

Abordagem Geral para Quebrar Chaves WEP

Evidentemente, o caminho mais simples é apenas digitar “aircrack-ng captured-data.cap”, dar <enter> e deixar executando. Tendo dito isso, existem algumas técnicas para melhorar suas chances de encontrar a chave WEP rapidamente. Não há passos de mágica simples. A seguir é descrito alguns caminhos que tendem mostrar a chave mais rápido. A menos que você esteja confortável com experimentos, deixe tudo como está e siga o caminho simples.

Se você está capturando pacotes ARP Request/Reply, então o meio mais rápido é usar “aircrack-ng -z <arquivos de captura de pacotes de dados>”. Você pode então pular a compensação desta seção já que encontrará a chave rapidamente, assumindo que você tenha coletado pacotes ARP Request/Reply suficientes!

A técnica de sobreposição é capturar o máximo de dados possível. Essa é a única tarefa mais importante. O número de Vetores de Inicialização (IVs) que você precisa para determinar a chave WEP varia bastante por tamanho de chave e Access Point. Tipicamente você precisa de 250.000 ou mais IVs únicos para chaves de 64 bits e 1,5 milhões ou mais para chaves de 128 bits. É claro que é necessário muito mais que isso para tamanhos de bits de chaves maiores. Existe então o fator sorte. Haverá momentos em que a chave WEP pode ser determinada com tão pouco quanto 50.000 IVs, embora isso seja raro. Alternadamente haverá momentos em que você precisará de dezenas de milhões de IVs para quebrar a chave WEP. O número de IVs é extermamente difícil de prever, já que alguns Access Points são muito bons em eliminar IVs que vazam a chave WEP, ou seja, IVs fracos.

Geralmente, não tente quebrar a chave WEP até você obter 200.000 IVs ou mais. Se você começar muito cedo, o aircrack tende a gastar muito tempo realizando força-bruta nas chaves e não aplicando propriamente as técnicas estatísticas. Começe tentando chaves de 64 bits com “aircrack-ng -n 64 dados-capturados.cap”. Se estão usando uma chave WEP de 64 bits, pode ser geralmente quebrado em menos de 5 minutos (em geral menos de 60 segundos) relativamente com um pouco de IVs. É surpreendente quantos APs usam somente chaves de 64 bits. Se não encontrar a chave de 64 bits em 5 minutos, reinicie o aircrack em modo genérico: “aircrack-ng captured-data.cap”. Então, a cada marca de 100.000 IVs, repita o comando “aircrack-ng -n 64 captured-data.cap” por 5 minutos.

Uma vez que atinja 600.000 IVs, alterne para testar chaves de 128 bits. Nesse ponto, é improvável (mas não impossível) que a chave é de 64 bits e 600.000 IVs não a tenha quebrado. Então agora tente “aircrack-ng captured-data.cap”.

Uma vez atingindo a marca dos 2 milhões de IVs, tente mudar o fator de correção (fudge factor) para “-f 4”. Rode por pelo menos 30 minutos a 1 hora. Repita, aumentando o fator de correção para 4 cada hora. Outro momento para tentar aumentar o fator de correção é quando o aircrack-ng pára porque tentou todas as chaves.

Ao mesmo tempo continue coletando dados. Lembre-se da regra de ouro: “quanto mais IVs, melhor”.

Também dê uma olhada na próxima seção sobre como determinar quais opções usar, já que essas podem significantemente agilizar a quebra da chave WEP. Por exemplo, se a chave é toda numérica, então pode levar tão pouco quanto 50.000 IVs para quebrar uma chave de 64 bits com o parâmetro “-t” contra 200.000 IVs sem o parâmetro “-t”. Então se você tem uma intuição sobre a natureza da chave WEP, vale a pena tentar umas poucas variações.

Como determinar quais opções utilizar

Enquanto o aircrack-ng está rodando, na maior parte você verá apenas o começo da chave. Embora a chave WEP secreta é desconhecida nesse ponto, podem haver dicas para acelerar o processo. Se os bytes de chave têm um número relativamente grande de votos, eles têm 99,5% de probabilidade de estarem corretos. Então vamos dar uma olhada no que você pode fazer com essas dicas.

Se os bytes (prováveis chaves secretas) são por exemplo: 75:47:99:22:50 então é bem óbvio que a chave toda possa consistir de números somente, como os primeiros 5 bytes. Com isso em mente pode-se melhorar a velocidade de quebra da chave usando a opção -t só quando tentar chaves desse tipo. Ver Codificação Binária Decimal na Wikipédia (inglês ou português) para uma descrição de como se parecem os caracteres -t.

Se os bytes são 37:30:31:33:36, que são todos valores numéricos quando convertidos para ASCII, é uma boa idéia usar a opção -h. O registro Convertendo caracteres hexadecimais em ASCII no FAQ fornece links para determinar se todos eles são numéricos.

E se os poucos primeiros bytes forem parecidos com 74:6F:70:73:65 e, quando inseridos no seu editor hexadecimal ou nos links fornecidos na parágrafo anterior, você ver que eles podem formar o início de alguma palavra, então parece ser provável que uma chave ASCII está sendo usada, portanto você ativa a opção -c para verificar somente chaves ASCII visíveis.

Se você sabe o início da chave WEP em hexadecimal você pode usar o parâmetro “-d”. Vamos assumir que você sabe que a chave WEP é “0123456789” em hexadecimal, então você poderia utilizar “-d 01” ou “-d 0123”, etc.

Outra opção para tentar quando tiver problemas em determinar a chave WEP é a opção “-x2”, que faz força-bruta com os últimos dois bytes de chave ao invés do padrão, que realiza somente em um byte de chave.

Como converter a chave WEP de hexadecimal para ASCII?

Ver o próximo tópico.

Como usar a chave

Se o aircrack-ng determina a chave, ela aparece em formato hexadecimal. Ela parece tipicamente com isso:

 KEY FOUND! [11:22:33:44:55]

O tamanho (comprimento) irá variar baseado no tamanho de bit de chave WEP usado. Veja a tabela acima que indica o número de caracteres hexadecimais para os vários tamanhos de bit de chave WEP.

Você pode usar essa chave sem o “:” no seu cliente favorito. Isso significa que você digita “1122334455” no cliente e especifica que a chave está no formato hexadecimal. Lembre-se que a maioria das chaves não podem ser convertidas para o formato ASCII. Se a chave hexadecimal está de fato em caracteres ASCII válidos, eles também serão mostrados.

Se você deseja experimentar um bit convertendo-o de hexadecimal para ASCII, veja este registro em Perguntas Freqüentes (FAQ).

Nós não fornecemos especificamente suporte ou os detalhes de como configurar sua placa wireless para se conectar ao AP. Procure na internet por essa informação. Do mesmo modo, veja a documentação para o cliente wireless da sua placa. Se você está usando Linux, confira a lista de mensagens (mailing lists) e fóruns específicos para a distribuição.

Adicionalmente, aircrack-ng mostra uma mensagem indicando a probabilidade da chave estar correta. Será mostrada algo similar a “Probability: 100%”. Ele testa a chave contra alguns pacotes para confirmar que a chave está correta. Baseado nesses testes, o programa mostra a probabilidade de uma chave correta.

Também lembre-se que nós não damos suporte ou apoiamos pessoas que acessam redes que não pertencem a elas.

Como converter a chave em hexadecimal de volta em frase-senha (passphrase)?

As pessoas perguntam com frequência se uma chave hexadecimal encontrada pelo aircrack-ng pode ser convertida de volta à “frase-senha” original. A resposta simples é “NÃO”.

Para entender o por quê disso, vamos dar uma olhada em como essas frases-senhas são convertidas em chaves hexadecimais usadas no WEP.

Alguns fornecedores tem um gerador de chave WEP que “traduz” uma frase-senha em chave WEP hexadecimal. Não há padrões para isso. Frequentemente eles apenas enchem frases curtas com espaços em branco, zeros ou outros caracteres. Porém, as frases-senhas em geral são preenchidas com zeros até o tamanho de 16 bytes, e após isso o MD5SUM desse fluxo (stream) de bytes será a chave WEP. Lembre-se que cada fornecedor pode fazer isso de uma maneira sutilmente diferente, e eles podem não ser compatíveis.

Então não há como saber quão longo era a frase-senha original. Poderia ser tão curto como apenas um caractere. Tudo depende de quem desenvolveu o software.

Apesar de tudo, estas frases-senhas resultam em uma chave WEP que é facilmente quebrada como qualquer outra chave WEP. No final das contas, o método de conversão exato realmente não importa.

Tenha em mente que senhas WEP que pareçam “texto puro” podem ser ASCII ou FRASE-SENHA. A maioria (todos) dos sistemas suportam ASCII e são o padrão, mas alguns suportam frase-senha e aqueles que o suportam requerem usuários para especificar se é ASCII ou uma frase-senha. Frases-senhas podem ter qualquer tamanho arbitrário. ASCII são geralmente limitados a 5 ou 26 (WEP 40-bits e WEP 104-bits).

Como uma observação, Windows WZC (Wireless Zero Configuration) apenas suporta chaves ASCII ou hexadecimais de tamanho fixo, então a chave a ser fornecida mais curta tem 5 caracteres de tamanho. Veja a tabela acima nesta página relativo à quantidade de caracteres que são necessários para tamanhos de chave específicos.

Arquivos exemplares para testar

Existem um número de arquivos de amostra que você pode testar com o aircrack-ng para ganhar experiência:

  • wpa.cap: Este é um arquivo de amostra com um handshake WPA. Está localizado no diretório “test” dos arquivos de instalação. A frase-senha é ““biscotte”. Use o arquivo de senhas (password.lst) que está no mesmo diretório.
  • wpa2.eapol.cap: Este é um arquivo de amostra com handshake WPA2. Está localizado no diretório “test” dos arquivos de instalação. A frase-senha é “12345678”. Use o arquivo de senhas (password.lst) que está no mesmo diretório.
  • test.ivs: Este é um arquivo com chave WEP de 128 bits. A chave é “AE:5B:7F:3A:03:D0:AF:9B:F6:8D:A5:E2:C7”.
  • ptw.cap: Este é um arquivo com chave WEP de 64 bits apropriado para o método PTW. A chave é “1F:1F:1F:1F:1F”.

Dicionário de Chave Hexadecimal

Embora não seja parte do aircrack-ng, vale a pena mencionar um obra de arte interessante feita por SuD. É basicamente um dicionário hexadecimal WEP já preparado, e o programa para executá-lo:

 http://tv.latinsud.com/wepdict/

Outras Dicas

Para especificar vários arquivos de captura ao mesmo tempo, você pode usar um curinga como * ou especificar cada arquivo individualmente.

Exemplos:

  • aircrack-ng -w password.lst wpa.cap wpa2.eapol.cap
  • aircrack-ng *.ivs
  • aircrack-ng algumacoisa*.ivs

Para especificar vários dicionários ao mesmo tempo, coloque vírgula entre cada um sem espaços.

Exemplos:

  • aircrack-ng -w password.lst,secondlist.txt wpa2.eapol.cap
  • aircrack-ng -w firstlist.txt,secondlist.txt,thirdlist.txt wpa2.eapol.cap

Este FAQ - Perguntas Freqüentes - tem uma lista de fontes para wordlists (listas de palavras). Também veja este tópico no Fórum.

Determinar a frase-senha WPA/WPA2 depende totalmente de encontrar um registro de dicionário que corresponda à frase-senha. Portanto, um dicionário de qualidade é muito importante. Você pode procurar na Internet por dicionários pra serem usados. Existem vários disponíveis.

A página de tutoriais tem o seguinte tutorial Como quebrar WPA/WPA2? que te guia passo-a-passo em detalhes.

Como você tem visto, se existem várias redes em seus arquivos você precisa selecionar aquela que você quer quebrar. Ao invés de fazer a seleção manualmente, você pode especificar qual rede você quer, por ESSID ou BSSID, na linha de comando. Isso é feito com os parâmetros -e ou -b, respectivamente.

Outro artifício é usar o John the Ripper para criar senhas específicas para teste. Vamos supor que você saiba que a frase-senha é o nome da rua, mais 3 dígitos. Crie um conjunto de regras customizadas no JTR e execute algo parecido com isto:

 john --stdout --wordlist=specialrules.lst --rules | aircrack-ng -e test -a 2 -w - /root/capture/wpa.cap

Lembre-se que senhas válidas tem tamanho entre 8 a 63 caracteres. Aqui está um comando útil para assegurar que todas as senhas em um arquivo satisfaçam este critério:

 awk '{ if ((length($0) > 8) && (length($0) < 63)){ print $0 }}' inputfile outputfile

ou

 grep -E '^.{8,63}$' < inputfile

Usando Resolução de Problemas

Mensagem de Erro "Please specify a dictionary (option -w)"

Tradução da mensagem: “Por favor, especifique um dicionário (opção -w)”

Isso significa que você digitou de forma errada o nome do arquivo do dicionário ou ele não está no diretório atual. Se o dicionário está em outro diretório, você precisa fornecer o caminho completo de onde está o dicionário.

Mensagem de Erro "fopen(dictionary)failed: No such file or directory"

Tradução da mensagem: “pabrir(dicionário)falhou: Não existe tal arquivo ou diretório”

Isso significa que você digitou de forma errada o nome do arquivo do dicionário ou não está no diretório atual. Se o dicionário está em outro diretório, você precisa fornecer o caminho completo de onde está o dicionário.

Votos negativos

Haverá momentos em que os bytes de chave terão valores negativos para votos. Como parte da análise estatística, existem proteções embutidas que subtraem votos de falsos positivos (se não souber o que é um falso positivo, pesquise no Google. A expressão 'alarme falso' pode substituir o termo). A idéia é provocar resultados mais precisos. Quando você obtém vários votos negativos, algo está errado. Tipicamente isso significa que você está tentando quebrar uma chave dinâmica como WPA/WPA2 ou a chave WEP mudou enquanto você estava capturando os dados. Lembre-se, WPA/WPA2 pode ser quebrado somente por uma técnica de dicionário. Se a chave WEP mudou, você precisará começar a reunir novos dados e iniciar de novo.

Mensagem "An ESSID is required. Try option -e"

Tradução da mensagem: “Um ESSID é necessário. Tente opção -e”

Você capturou com êxito um handshake e então, quando executa o aircrack-ng, você obtém o seguinte resultado:

 Opening wpa.cap
 Read 4 packets.
 
          #     BSSID                      ESSID                   ENCRYPTION
          1     00:13:10:F1:15:86                                WPA (1) handshake
 Choosing first network as target.
 
 An ESSID is required. Try option -e.

Solução: Você precisa especificar o ESSID real, senão a chave não pode ser calculada, já que o ESSID é usado como salto quando gera o par de chaves mestre (PMK) a partir da chave pré-compartilhada (PSK).

Então apenas use -e ”<ESSID real>“ no lugar de -e ” “, e o aircrack-ng deve encontrar a frase-senha.

O ataque PTW não funciona

Uma restrição importante em particular é que ele somente funciona contra pacotes ARP Request/Reply. Não pode ser usado contra quaisquer outros pacotes de dados. Então mesmo que seu arquivo de captura de dados contenha um número grande de pacotes de dados, se há pacotes ARP Request/Reply insuficientes, não funcionará. Usando essa técnica, uma chave WEP de 64 bits pode ser quebrada com tão pouco quanto 20.000 pacotes de dados, e de 128 bits com 40.000 pacotes de dados. Ele também exige que o pacote completo seja capturado. Significa que você não pode usar a opção ”- - ivs“ quando executar o airodump-ng. Também só funciona para criptografia WEP de 64 e 128 bits.

Mensagem de Erro "fixed channel"

Tradução da mensagem: “canal fixo”

Observe a mensagem “fixed channel wlan0: 8” (canal fixado wlan0: 8) na primeira linha abaixo, do lado direito. Tem o canal 8 como referência, mas o canal na esquerda mostra 9.

 CH  9 ][ Elapsed: 28 s ][ 2007-09-03 13:23 ][ fixed channel wlan0: 8                                         
                                                                                                               
  BSSID              PWR RXQ  Beacons    #Data, #/s  CH  MB  ENC  CIPHER AUTH ESSID
                                                                                                               
  00:14:6C:7E:40:80   64  73      208        0    0   9  11  WEP  WEP         teddy                            
                                                                                                               
  BSSID              STATION            PWR   Rate  Lost  Packets  Probes 

No caso de você iniciar o airodump-ng com um canal fixo (e não saltando canais/channel hopping) e aí você ou algum processo mudar o canal wireless, essa mensagem aparece. Isso dará problemas, já que agora você está em um canal diferente do que você quer.

Um exemplo de iniciar o airodump-ng em um canal fixo segue abaixo:

 airodump-ng --channel 9 wlan0 or airodump-ng -c 9 wlan0

Para resolver isso, primeiro identifique o que mudou o canal wireless. O problema mais comum é ter um ou mais gerenciadores de conexão de redes rodando. Certifique-se de parar todos eles. Você também poderia mudar manualmente o canal com iwconfig, airodump-ng, etc.

Uma vez que o problema foi resolvido, redefina o canal para o correto, e reinicie o airodump-ng.

Mensagem de Erro "read(file header) failed: Success"

Tradução da mensagem: “leitura(cabeçalho arquivo) falhou: Sucesso”

Se você recebeu a mensagem de erro - “read(file header) failed: Success” ou similar enquanto executava o aircrack-ng, há provavelmente um arquivo de entrada - que é um arquivo fornecido pelo usuário - com bytes zeros. O arquivo de entrada poderia ser um arquivo .cap ou .ivs.

Isso é mais propenso a acontecer em entradas com curinga de vários arquivos, como em:

 aircrack-ng -z -b XX:XX:XX:XX:XX:XX *.cap

Simplesmente apague os arquivos com bytes zeros e execute o comando de novo.

pt-br/aircrack-ng.txt · Última modificação: 2009/09/05 23:26 por mister_x