Índice das dicas

Wireless: ataques contra o WPA

Por Carlos E. Morimoto em 16 de dezembro de 2008 às 18h34

6

Ao contrário do WEP, o WPA e o WPA2 não possuem falhas conhecidas de segurança, que permitam descobrir a chave rapidamente. Apesar disso, ainda é possível usar ataques de força bruta para descobrir passphrases fáceis, baseadas em palavras do dicionário ou sequências numéricas simples. Vamos então entender melhor como o processo funciona.

O primeiro passo é instalar o pacote aircrack-ng, sucessor do pacote aircrack que usamos anteriormente, que contém as ferramentas que utilizaremos.

Para funcionar, ele precisa que a placa wireless suporte o modo monitor, que é suportado por padrão em um número cada vez menor de drivers. Na maioria dos casos, você vai 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 básicos.

Você pode encontrar informações detalhadas de como fazer isso em conjunto com diversas placas no: http://www.aircrack-ng.org/. Outra opção é 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 utilizado pela rede que deseja testar, além do endereço MAC do ponto de acesso e o endereço MAC de pelo menos um cliente que esteja conectado a ele. Se você está testando sua própria rede, basta checar as informações na configuração do ponto de acesso.

O passo seguinte é usar o airmon-ng para capturar o processo de autenticação de um dos clientes da rede. Ele é baseado no uso de um "four-way handshake", onde uma série de quatro pacotes é usada para negociar uma chave criptográfica entre o cliente e o ponto de acesso, que é então usada para criptografar o processo de autenticação.

Naturalmente, capturar esta sequência de pacotes não permite descobrir a passphrase da rede, mas oferece a possibilidade de executar o ataque de força bruta, testando várias possibilidades até descobrir a chave correta.

Comece colocando a placa wireless em modo monitor, usando o comando "airmon-ng start interface", como em:

# airmon-ng start eth1

No caso das placas com chipset Atheros, é necessário 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 autenticação de um dos clientes. Vamos fazer isso abrindo dois terminais. O primeiro será usado para rodar o airodump-ng e assim capturar as transmissões 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 pacotes possam ser capturados.

No primeiro terminal, ative o airodump-ng, especificando onde será gravado o arquivo 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 diretório atual.

No outro terminal, rode o comando "aireplay-ng --deauth 1", especificando o endereço MAC do ponto de acesso (-a) e o endereço 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, simulando o processo de desconexão do cliente especificado. Enganado pelo pacote, o ponto de acesso desconecta o cliente, o que faz com que ele se re-autentique em seguida, um processo executado de forma automática pela maioria dos sistemas operacionais. Com isso, o processo de autenticação será gravado pela captura iniciada no outro terminal.

Para realizar o ataque baseado em dicionário, é necessário utilizar um arquivo de texto, contendo uma lista das palavras que serão testadas. Existem diversos arquivos de dicionário largamente disponíveis na web (faça uma busca por "wordlists" no Google), como o repositório disponível no http://www.outpost9.com/files/WordLists.html.

Na maioria das distribuições, você encontra também uma lista de palavras que pode ser usada na forma do arquivo "/usr/share/dict/words" e você pode também comprar um CD com uma coleção de arquivos, contendo listas com palavras de todas as línguas no: http://www.openwall.com/passwords/wordlists/.

Com o arquivo de palavras em mãos, use o comando abaixo para testar as combinações, especificando 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 localização do dicionário e o "logrede.cap" é o arquivo com a captura. É necessário indicar o SSID da rede, pois ele é uma das informações incluídas no processo de autenticação.

O teste é feito em modo offline, usando os pacotes de autenticação capturados para simular o processo de autenticação usando cada uma das palavras incluídas no arquivo. O volume de processamento necessário 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 otimizações incluídas no aircrack-ng) apenas cerca de 100 possibilidades por segundo, o que resulta em um ritmo de 360 mil combinações por hora, ou 8.64 milhões de combinações por dia.

Pode parecer bastante, mas nesse ritmo demoraria mais de um milhão de anos para testar todas as possibilidades de uma passphrase com 8 caracteres contendo letras, números e caracteres especiais (e exponencialmente mais para passphrases mais longas). É por isso que o ataque se concentra em testar uma lista de palavras, e não em realmente testar todas as possibilidades possíveis.

»Leia mais: Segurança de rede e utilitários

6 comentáriosPor Carlos E. Morimoto. Revisado 23 de março de 2011 às 11h30

Comentários

 
por rwe (anônimo) em 3 de março de 2011 às 12h34
engraçado q so se ve comentarios de como roubar as coisas alheias mas nada de como se defender

poem ai como poso melhor bloquear estes ataques , sabichão
 
por wsa311 (anônimo) em 19 de julho de 2009 às 12h41
isso ai amigo fabiano eu venho fazendo uns teste ja alguns meses e tem chave wep com um power acima de 25 sucesso de 90% agora wap e wap2 depedende muito da senha , se o dono da rede for um pouco inteligente e colocar uma letra maiscula,numeros e caracteres quase impossivel de quebrar ja usei uma world numa rede de teste com uma senha assim rodo 30 horas 29 milhoes de palvara e naum descobre ou se ja quase impossivel,e quanto ao nosso amigo edinei e isso ai msm essiste alguns software e usam "GPU" nvidea ou ati a suite aircrack sao em media 600 a 700 palavras por segundo e com o software combinado a uma placa acima de 8600gt e uam media de 6000 podendo ate chegar a 7000 palavras por segundo ou seja melhora muito msm assim como falei acima se o cara colocar uma senha complexa muito dificil ......!
 
por Fabiano (anônimo) em 27 de dezembro de 2008 às 00h08
Excelente dica. Já usei esse tipo de ataque várias vezes, mas sempre tenho problemas com a força-bruta. As pessoas têm usado senhas loucas que, geralmente, não estão nas wordlists que conseguimos baixar. Ficamos então com o "four-way handshake", mas sem conseguir decifrá-lo. O ideal seria que o invasor conhecesse um pouco do perfil do dono da rede para que usasse a wordlist mais adequada para o ataque.
 
por Schnei (anônimo) em 22 de dezembro de 2008 às 14h34
Não sei se devo encarar isso como uma dica ou como um tutorial. Eu andei fuçando em algumas redes que estão perto de casa usando uma antena Pringles e consegui quebrar a chave WEP de uma delas em 5 minutos.

Pena que não tem nenhuma com chave WAP pra eu usar como laboratório de testes...:(
 
por Ednei Pacheco (anônimo) em 19 de dezembro de 2008 às 00h19
Não exatamente; o que eu sei é que, se estas classes de aplicações utilizarem uma GPU (nVidia e AMD/ATI) para realizar todo o cálculo, obtém uma capacidade de processamento muitíssimo maior que uma CPU tradicional. Pesquise por "GPU" e "WPA" para maiores informações no Google... &;-D
 
por Silas (anônimo) em 18 de dezembro de 2008 às 18h37
eu li em algum lugar esse mes passado que tinham descoberto uma falha do wpa... e que dava pra descobrir a senha em aproximadamente 40 minutos, e o wep em 2 minutos... acho que é isso.... se lembrar aonde li posto aqui...