Ao contrrio do WEP, o WPA e o WPA2 no possuem falhas conhecidas de segurana, que pe
rmitam descobrir a chave rapidamente. Apesar disso, ainda possvel usar ataques de fora bruta para descobrir passphrases fceis, baseadas em palavras do dicionrio ou sequncias numricas simples. Vamos ento entender melhor como o processo funciona. O primeiro passo instalar o pacote aircrack-ng, sucessor do pacote aircrack que usamos anteriormente, que contm as ferramentas que utilizaremos. Para funcionar, ele precisa que a placa wireless suporte o modo monitor, que sup ortado por padro em um nmero cada vez menor de drivers. Na maioria dos casos, voc v ai precisar primeiro modificar os drivers da placa, baixando o fonte, instalando um patch e compilando o driver modificado. Para isso, voc precisa ter instalados os headers do kernel e os compiladores bsicos. Voc pode encontrar informaes detalhadas de como fazer isso em conjunto com diversas placas no: http://www.aircrack-ng.org/. Outra opo utilizar o BackTrack, que j vem com os patches instalados. Para aplicar o teste, comece usando o Kismet para descobrir o SSID e o canal uti lizado pela rede que deseja testar, alm do endereo MAC do ponto de acesso e o ende reo MAC de pelo menos um cliente que esteja conectado a ele. Se voc est testando su a prpria rede, basta checar as informaes na configurao do ponto de acesso. O passo seguinte usar o airmon-ng para capturar o processo de autenticao de um dos clientes da rede. Ele baseado no uso de um "four-way handshake", onde uma srie d e quatro pacotes usada para negociar uma chave criptogrfica entre o cliente e o p onto de acesso, que ento usada para criptografar o processo de autenticao. Naturalmente, capturar esta sequncia de pacotes no permite descobrir a passphrase da rede, mas oferece a possibilidade de executar o ataque de fora bruta, testando vrias possibilidades at descobrir a chave correta. Comece colocando a placa wireless em modo monitor, usando o comando "airmon-ng s tart interface", como em: # airmon-ng start eth1 No caso das placas com chipset Atheros, necessrio desativar a interface "ath0" e recri-la em modo monitor, usando os comandos: # airmon-ng stop ath0 # airmon-ng start wifi0 O passo seguinte capturar o processo de autenticao de um dos clientes. Vamos fazer isso abrindo dois terminais. O primeiro ser usado para rodar o airodump-ng e ass im capturar as transmisses e o segundo para rodar o aireplay-ng, desconectando o cliente e obrigando-o a se reconectar ao ponto de acesso, de forma que os pacote s possam ser capturados. No primeiro terminal, ative o airodump-ng, especificando onde ser gravado o arqui vo com os pacotes capturados, o canal usado pelo ponto de acesso e a interface, como em: # airodump-ng -w logrede --channel 2 ath0 Com isso, ser gerado um arquivo "logrede.cap" no diretrio atual. No outro terminal, rode o comando "aireplay-ng --deauth 1", especificando o ende reo MAC do ponto de acesso (-a) e o endereo MAC do cliente que ser desconectado (-c ), como em:
# aireplay-ng --deauth 1 -a 00:50:50:81:41:56 -c 00:19:7D:4C:CA:07
Este comando faz com que seu PC envie um pacote falseado ao ponto de acesso, sim ulando o processo de desconexo do cliente especificado. Enganado pelo pacote, o p onto de acesso desconecta o cliente, o que faz com que ele se re-autentique em s eguida, um processo executado de forma automtica pela maioria dos sistemas operac ionais. Com isso, o processo de autenticao ser gravado pela captura iniciada no out ro terminal. Para realizar o ataque baseado em dicionrio, necessrio utilizar um arquivo de text o, contendo uma lista das palavras que sero testadas. Existem diversos arquivos d e dicionrio largamente disponveis na web (faa uma busca por "wordlists" no Google), como o repositrio disponvel no http://www.outpost9.com/files/WordLists.html. Na maioria das distribuies, voc encontra tambm uma lista de palavras que pode ser us ada na forma do arquivo "/usr/share/dict/words" e voc pode tambm comprar um CD com uma coleo de arquivos, contendo listas com palavras de todas as lnguas no: http:// www.openwall.com/passwords/wordlists/. Com o arquivo de palavras em mos, use o comando abaixo para testar as combinaes, es pecificando o SSID da rede, o arquivo com as palavras e o arquivo com a captura dos pacotes (gerado pelo airmon-ng), como em: $ aircrack-ng -e rede -w dict.txt logrede.cap ... onde o "rede" indica o SSID da rede, o "dict.txt" indica a localizao do dicionr io e o "logrede.cap" o arquivo com a captura. necessrio indicar o SSID da rede, p ois ele uma das informaes includas no processo de autenticao. O teste feito em modo offline, usando os pacotes de autenticao capturados para sim ular o processo de autenticao usando cada uma das palavras includas no arquivo. O v olume de processamento necessrio para cada uma faz com que o teste demore um bom tempo. Um Celeron-M de 1.4 GHz, por exemplo, consegue processar (mesmo com todas as otimizaes includas no aircrack-ng) apenas cerca de 100 possibilidades por segun do, o que resulta em um ritmo de 360 mil combinaes por hora, ou 8.64 milhes de comb inaes por dia. Pode parecer bastante, mas nesse ritmo demoraria mais de um milho de anos para te star todas as possibilidades de uma passphrase com 8 caracteres contendo letras, nmeros e caracteres especiais (e exponencialmente mais para passphrases mais lon gas). por isso que o ataque se concentra em testar uma lista de palavras, e no em realmente testar todas as possibilidades possveis. possvel tambm usar o John the Ripper para testar variaes das palavras do dicionrio, ermitindo assim descobrir passphrases construdas com base em variaes ou em combinaes de palavras, como "paralelep1ped0" o que bastante comum. Voc pode baix-lo no: http://www.openwall.com/john/ Para us-lo, descompacte o arquivo, acesse a pasta "src" (dentro da pasta criada) e rode o comando "make". Isso gerar o executvel do programa dentro da pasta "run", que pode ento ser executado, como em "./john". O John uma ferramenta muito usada para testar senhas, pois ele pode lanar ataques de fora bruta, testando todas as combinaes ou utilizando um arquivo de dicionrio em praticamente todo tipo de arquivo de senhas. No nosso caso, usaremos o John par a processar o arquivo de dicionrio, direcionando a sada para o aircrack-ng. O coma ndo ficaria: $ ./john --wordlist=dict.txt --rules --stdout | aircrack-ng -e rede -w logrede.c ap Como pode ver, o processo de quebrar chaves WPA bastante demorado e, mesmo assim
, inefetivo contra passphrases construdas com caracteres aleatrios, principalmente
no caso de passphrases longas. Com a gerao atual de programas, voc pode garantir a segurana da sua rede usando uma boa passphrase. Uma passphrase longa, com 20 caracteres ou mais (que no seja a combinao de duas ou mais palavras), impossvel de quebrar usando fora bruta. A nica forma de obter acess o rede seria convencer algum dos usurios a revel-la. Uma soluo para este ltimo problema seria utilizar uma passphrase impossvel de memori zar (imagine o caso de uma passphrase com 50 caracteres ou mais :). Voc pode ento imprimir a passphrase em papel, digit-la no cliente para autorizar a conexo e em s eguida destruir a cpia impressa.