Índice - Tutoriais

Segurança em redes Wireless

Criado 22/ago/2006 às 20h48 por Carlos E. Morimoto

20

Quebrando o WPA ou WPA2


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.

É possível também usar o John the Ripper para testar variações das palavras do dicionário, permitindo assim descobrir passphrases construídas com base em variações ou em combinações 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 executável do programa dentro da pasta "run", que pode então ser executado, como em "./john".

O John é uma ferramenta muito usada para testar senhas, pois ele pode lançar ataques de força bruta, testando todas as combinações ou utilizando um arquivo de dicionário em praticamente todo tipo de arquivo de senhas. No nosso caso, usaremos o John para processar o arquivo de dicionário, direcionando a saída para o aircrack-ng. O comando ficaria:

$ ./john --wordlist=dict.txt --rules --stdout | aircrack-ng -e rede -w logrede.cap

Como pode ver, o processo de quebrar chaves WPA é bastante demorado e, mesmo assim, é inefetivo contra passphrases construídas com caracteres aleatórios, principalmente no caso de passphrases longas. Com a geração atual de programas, você pode garantir a segurança da sua rede usando uma boa passphrase.

Uma passphrase longa, com 20 caracteres ou mais (que não seja a combinação de duas ou mais palavras), é impossível de quebrar usando força bruta. A única forma de obter acesso à rede seria convencer algum dos usuários a revelá-la.

Uma solução para este último problema seria utilizar uma passphrase impossível de memorizar (imagine o caso de uma passphrase com 50 caracteres ou mais :). Você pode então imprimir a passphrase em papel, digitá-la no cliente para autorizar a conexão e em seguida destruir a cópia impressa.

20 comentáriosPor Carlos E. Morimoto. Revisado 22/fev/2011 às 15h09

Comentários

Qual distribuição linux usar?
Criado 16/fev/2012 às 14h30 por João (anônimo)
Boa tarde, sou iniciante no assunto. Gostaria de saber qual distribuição linux usar?
resposta por pedro (anônimo)
Duvida sobre senha WPA2
Criado 18/dez/2011 às 11h30 por Julio Cesar (anônimo)
Esqueci a senha de uma rede protegida por WPA2, a senha esta salva em um pc com xp e outro com win7, alguem sabe como faço pra ver a senha? ja tentei com um programa chamado WirelessKeyView, q n deu certo!
resposta por junior (anônimo)
resposta por pedro (anônimo)
Login e senha
Criado 2/jul/2011 às 18h57 por Stevan (anônimo)
Assim qndo vc poe o live-cd rodar ele pede um usuario e senha qual seria q pesquisei na net e nãoo achei : //
Vlww pelo tutorial!!! :D
Abraçoss!!
login e senha por Carlos Eduardo (anônimo)
OMG!
Criado 9/jul/2011 às 10h16 por THE-EVOLUTION (anônimo)
Eu fiz o download do programa e vem em um arquivo .deb o windows nao reconhce. o que eu fasso? isso so funfa no linux?
SIM por Gabriel (anônimo)
Dificuldade
Criado 13/ago/2011 às 18h25 por Evermatos (anônimo)
Estou com dificuldade em quebrar (Wpa) já tentei varios dicionarios disponiveis na net e nada.
Aqui vai os arquivos (.cap)gostaria de saber qual Dicionario você usa pra `Quebrar´ senha (obs) estou usando aircrack-ng-1.1-win
http://www.4shared.com/file/Hmcsw816/lucas.html
http://www.4shared.com/file/Rk4i_Pdv/pablo1.html
Desiste por Gabriel (anônimo)
Como bloquear ataques
Criado 12/set/2011 às 16h27 por Ricardo (anônimo)
Uma situação saudável seria ao invés de se deixar levar pela criptografia e ficar preso a protocolos, simplesmente oculte o nome da rede (ssid) e por fim cadastre o mac dos dispositivos a serem conectados na rede wifi no roteador sem fio.
Isso impedira que mesmo com ataques a sua rede alguem efetivamente a invada. Pelo fato de voce estar contando com uma segurança fisica.
Na verdade por Gabriel (anônimo)
Como bloquear ataques
Criado 12/set/2011 às 16h29 por Ricardo (anônimo)
Outra dica é usar o firewall que existe nos roteadores sem fio.
Localhost
Criado 24/jul/2011 às 17h27 por Diego (anônimo)
O kismet roda direitinho mais n consigo ver nenhuma rede.
Queria saber se tenho que mudar alguma coisa no host que está local.
Valeu pela ajuda
Criado 6/mai/2011 às 18h42 por Rogerio L (anônimo)
Fala Carlos M, td bem?
Tenho 23 anos, sou estudante do curso de T.I. da Unicamp, em Limeira.
Estou no 2 ano da faculdade, e me indicaram seu site para estudar sobre redes, proposta do proprio estagio que pretendo entrar.
Gostei dos seus tutoriais, fiquei interessado em comprar até um livro, mas o problema é a grana...rs.

Tutoriais muito bem feitos, ajuda bastante quem quer entrar na áera, pq vc ainda não vem dar aula aqui? Se não me engano, é preciso entrar em concurso ou entrar como professor PED, daí vc ve com o pessoal.
Já que seus tutoriais me ajudaram, segue o link do site caso vc ou outras pessoas se interessem,
http://www.ft.unicamp.br/
tem também um fórum que acaba de sair do forno
http://forum.ft.unicamp.br/

um grande abraço,
Rogerio L
dúvida
Criado 21/out/2010 às 15h26 por xneuber (anônimo)
nessa parte:

#aireplay-ng --deauth 1 -a 00:50:50:81:41:56 -c 00:19:7D:4C:CA:07

como eu descubro o MAC do HOST a ser desconectado???
abraçs