terça-feira, 30 de agosto de 2011

Explorando senhas fracas com o protocolo WPA2 usando o aircrack-ng

Angelo Mota Barbosa, Manoel Davi da Costa Meireles e Osvaldo Holanda Peixoto.

Resumo.  A segurança nas redes sem fio ainda é encarada como um requisito passivo a questionamento, e medidas abordadas para garantir a integridade das informações estão sendo gradativamente aplicadas, dentre elas dá-se uma atenção especial para os protocolos WEP (Wired Equivalency Privacy), WPA/WPA2 (Wi-Fi Protected Access), apesar de alguns destes protocolos já terem suas falhas conhecidas ainda sim, devem ser aplicados como mais uma alternativa de segurança. Este estudo teórico e prático pretende realizar uma análise sobre a vulnerabilidade do protocolo de encriptação do WPA, analisando seus paradigmas e suas diferenças.

1.      INTRODUÇÃO

O padrão WPA (Wi-Fi Protected Access) é o sucessor do protocolo WEP. Desenvolvido pela Wi-Fi Alliance, serviu como uma correção temporária para as vulnerabilidades conhecidas no WEP até o IEEE disponibilizar o padrão 802.11i (WPA2).

O 802.11i é o padrão IEEE oficial, que incorpora as correções implementadas no WPA para as vulnerabilidades do WEP e outros mecanismos de autenticação para proteger ainda mais as redes sem fio.

A maior diferença entre o WPA2 e WPA é o tipo de criptografia usado, onde no WPA2 usa-se AES e RC4 no WPA, e o protocolo utilizado para a confidencialidade e integridade, onde no WPA2 usa-se CCMP e TKIP no WPA.

Tanto o WPA como o WPA2 podem ser executados no modo home ou enterprise. Modo home significa que o AP e todos os clientes estão usando uma chave pré-compartilhada (PSK), já no modo enterprise significa que a organização está usando um servidor RADIUS para autenticação. Apesar do nome (enterprise, significa empresa em português), muitas empresas usam o modo PSK (home), porque é muito mais fácil de implantar.

Neste artigo estaremos mostrando como é possível atacar uma rede sem fio que esteja usando o protocolo WPA2-PSK com a utilização de um dicionário. É possível usar também o John The Ripper para quebrar a senha, mas para este artigo estaremos abordando a utilização de um dicionário com o pacote de ferramenta aircrack-ng.

Iremos utilizar o BackTrack -  distribuição com foco em testes de segurança e testes de penetração – que já vem com a suíte de ferramenta aircrack-ng no repositório oficial da distro.

Quando se trata de WPA/WPA2 a chave pré-compartilhada pode ser de 8 a 63 caracteres de comprimento, com isso torna-se quase “impossível” para quebrar essa chave, dificultando ainda mais se essa chave for composta de símbolos especiais. A única vez que você pode quebrar a chave pré-compartilhada é se a mesma for uma palavra de dicionário ou relativamente curto de comprimento. Neste artigo não estaremos considerando o tamanho e nem a complexidade da chave, já que a mesma pertence ao nosso dicionário, sendo assim não fazendo diferença se a chave é “minharede” ou “Mi@nH@r$d&”.

Para que possamos disparar um ataque com base em dicionário é necessário primeiramente capturar o que chamamos de four-way handshake entre o cliente e o AP. O objetivo do four-way handshake é autenticar o cliente e o ponto de acesso, onde o processo de autenticação é realizado durante o four-way handshake.

O que é preciso para este ataque?

- sua placa de rede sem fio possa injetar pacotes
- capturar 4 way handshake
- usar o aircrack-ng

Passo 1: Configurando no Modo Monitor

Para que você possa injetar pacotes é necessário que a placa de rede sem fio esteja no modo Monitor, para isso estaremos usando o comando airmon-ng, veja a figura abaixo:


Veja que foi detectado a placa de rede wlan0, agora precisamos colocar nossa placa em modo Monitor, para isso execute o comando conforme mostra a figura abaixo:



Veja que o airmon-ng criou uma nova placa chamada mon0 e esta por sua vez esta no modo Monitor, é essa placa que iremos usar a partir deste momento.

Passo 2: Listando as redes sem fio ao alcance

Para que possamos direcionar nosso ataque precisamos coletar algumas informações que são de extrema importância como o BSSID (endereço MAC do AP), CH (canal sendo usado), ESSID (nome da rede) e o STATION (endereço MAC do cliente). O comando airodump-ng serve para capturar pacotes de rede sem fio para que possa ser usado posteriormente com o aircrack-ng ou outra ferramenta do tipo. O  comando abaixo permite que analisemos somente o tráfego que esteja usando WPA:
  
#airodump-ng --encrypt wpa mon0



Dica:

Para agilizar o ataque podemos salvar todas essas informações como variáveis de ambiente, digamos que coletamos as informações abaixo na saída do airodump-ng:

BSSID=00:18:6e:9b:d9:80
STATION=00:11:22:33:44:55
ESSID=linksys

Vamos criar um script em shell e executaremos esse script toda vez que abrirmos um terminal, veja o script abaixo que chamamos de variaveis.sh:
#!/bin/bash
export BSSID=00:18:6e:9b:d9:80
export STATION=00:11:22:33:44:55
export ESSID=linksys

Com isso o comando: aireplay-ng -1 0 -a 00:18:6e:9b:d9:80 -h 00:11:22:33:44:55 -e linksys mon0

Poderia ser executado desta forma: aireplay-ng -1 0 -a $BSSID -h $STATION -e $ESSID mon0

Passo 3: Capturando 4 way handshake

Como dito anteriormente é necessário capturar o que chamamos de 4 way handshake entre o cliente e o AP e salvar em um arquivo para que depois possa ser usado pelo aircrack-ng. O comando a seguir salvara todo o tráfego entre o cliente e o AP no arquivo que chamaremos de psk-handshake.cap:

# airodump-ng -w psk-handshake.cap -c 6 --bssid $BSSID mon0



Precisamos forçar o cliente a se autenticar novamente para que possamos com isso capturar o 4 way handshake. Abra um novo terminal, não feche o terminal que esta rodando o comando anterior, vamos usar o comando aireplay-ng para isso, veja a figura abaixo:


Passo 4: Time to crack

Temos o nosso arquivo com o 4 way handshake (psk-handshake.cap), agora precisamos de um dicionário para usar com o aircrack-ng. Vamos criar um dicionário simples com 10 palavras, sendo que uma dessas palavras é a chave. Agora é só executar o comando:

#aircrack-ng psk-handshake.cap -w dicionario


Conclusão

— WEP  protocolo ultrapassado;
— WPA corrige vulnerabilidade do WEP;
— WPA2 (802.11i) versão Oficial da Wifi Alliance;
— Senhas fracas, é possivel quebrar no WPA2;
— Use WPA2 com senhas fortes;
— Variedades de ferramentas para quebrar o WPA2
aircrack-ng
coWPAtty



REFRENCIA








10 comentários:

  1. Voce trocou as bolas no que se refere a WPA e WPA2 no inicio do texto, WPA2 utiliza AES e CCMP e WPA utiliza RC4 e TKIP

    ResponderExcluir
  2. cara eu n tenho wi fi minha net é modem,só da pra kebrar senha wei fi tendo o aparelho na sua casa?

    ResponderExcluir
  3. Prezados,me utilizo do wifisalx 4.0 pela familiaridade de alguns tempos rodando ele,os comando nao variam muito,na chaves wep obtive varios sucessos,aprendi a gerar trafego para acelerar o processo.No wpa2 fiz captura de alguns handshake,e sem sucesso de abertura ou key found.To tentando abrir todas em bloco de notas e imprimindo,tentando gerar um padrao,tendo em vista q fiz minha senha com alfabeto,numeral e sinais ja em handshake.se for possivel vamos divulgar tentativas de erros ou de sucesso,parabens pelo bom texto.

    ResponderExcluir
    Respostas
    1. Seria interessante você realizar esses testes em um cenário próprio, onde você conhece a chave, assim você estará se aperfeiçoando na técnica e se certificando se esta fazendo tudo certinho.

      Excluir
  4. fiz tudo certinho ate ao passo 4. mas na hora de cria 1 dicionario blokeei.. como se faz? sou iniciante em backtrack/linux..preciso de ajuda!

    ResponderExcluir
    Respostas
    1. É um dicionário com uma lista de senhas que serão usadas. Se você estiver realizando em um ambiente de teste, crie um arquivo com algumas palavra incluindo a senha. Você pode também baixar pela internet os dicionários.

      Excluir
    2. Qual o Formato do dicionário? txt? lst?

      Excluir
    3. Veja o comando que chama o dicionário:
      #aircrack-ng psk-handshake.cap -w dicionario

      Nesse caso onde esta escrito "dicionario" você coloca o nome do seu próprio dicionário, por exemplo, senhas.txt. Neste caso o comando ficaria:

      #aircrack-ng psk-handshake.cap -w senhas.txt

      Excluir