sexta-feira, 6 de agosto de 2010

Segurança de Redes sem Fio: Quebrando a Criptografia Wep

Hoje vamos falar sobre criptografia de redes sem fio. Muitas pessoas acreditam que usar criptografia no seu access point é garantia de segurança contra invasores. Eu lhes digo que isso não é verdade. Da mesma forma que uma cerca elétrica protege sua casa de um assaltante ocasional, ela não impedirá de que um assaltante, que esteja realmente interessado em roubar a SUA casa, entre e roube. A segurança que as tecnologias de criptografia para access points disponibilizam visa somente afastar aqueles que só estão em busca de uma rede fácil de usar, de acessar a internet.

Como provavelmente você não vai acreditar em mim, dizendo que eu estou só tocando o terror, pretendo mostrar nesta postagem que isso não é verdade. Então, pensando nisso, minha idéia com este post é demonstrar para vocês que invadir uma rede sem fio é sim possível, com tempo e paciência.



AVISO LEGAL: Acessar redes sem fio (e outros recursos particulares) de outras pessoas sem sua autorização expressa é uma atividade ilegal. Este blog, e seu autor, não toleram ou aprovam o uso ilegal das informações contidas neste tutorial, de qualquer forma que isso se processe. Não nos responsabilizamos por qualquer uso indevido deste material, que possui caráter de estudo.

Este post está dividido em cinco partes:

Parte 1: Quebrando a Criptografia Wep
Parte 2: Injetando Pacotes
Parte 3: Tratando Problemas Específicos de Injeção
Parte 4: Injetando sem Clientes Conectados
Parte 5: Quebrando a Criptografia Wpa

Vamos então para a primeira parte de nosso tutorial.




Parte 1: Quebrando a Criptografia Wep

Teoria

Quebrar uma chave wep consiste primariamente em capturar um determinado tipo de de informação que é gerado pelo access point, o chamado Vetor de Inicialização (ou IV), que vem "embutido" em alguns tipos de pacotes. A forma mais efetiva de se pegar estes IVs é utilizar um pacote ARP gerado pelo Access Point e reinjetá-lo na rede. O Ap irá reenviar o pacote, agora encriptado sob uma nova IV.

Mas, porque os pacotes ARP são tão efetivos? Porque, se você ainda se lembra das aulas de TCP/IP, os pacotes ARP têm tamanho fixo e se você olhar a imagem aí na lateral, perceberá que a criptografia é feita utilizando-se uma simples operação de bits, o que não altera o tamanho do pacote. Ainda há a questão de que, por ser um tipo de roteador, o Access Point SEMPRE responderá os pacotes ARP que chegarem na rede. Muito efetivo!

Comentário: Em criptografia, um vetor de inicialização (IV) é um bloco de bits necessário para permitir que uma cifra de fluxo ou de bloco seja executada para produzir um fluxo único independente de outros fluxos produzidos pela mesma chave criptográfica, sem ter que passar por um processo (normalmente demorado) de encriptação.

Prática

Agora que você sabe mais ou menos como funciona o ataque, vamos passar para a parte prática. Eu sugiro que antes de continuar, você siga o checklist abaixo. Seguindo este checklist, é garantido que você não terá problemas.

Aviso newbie: Onde você ler algo do tipo [canal] ou [mac da sua placa de rede], substitua pela informação correspondente, no caso o canal que o ap está operando e o mac da sua placa de rede. Só pra avisar potenciais usuários.

Material Necessário

  1. 1 Access Point que você possa configurar
  2. 1 Live CD do Backtrack 4 (ou um SO com drivers que suportam injeção mais os programas airmon-ng, airodump-ng, aireplay-ng, packetforge-ng e aircrack-ng).
  3. 1 Placa de rede que suporte injeção de pacotes (se suporta, o Backtrack reconhecerá e ainda há um teste que faremos à seguir).

Escolha da Rede

Primeiramente, você precisa escolher a rede na qual você irá capturar pacotes, pois assim você filtra a maioria dos outros IVs gerados por outras redes. Para encontrar uma rede, você deve usar o kismet ou qualquer outro programa que liste os Access Points disponíveis na sua área. Em seguida, depois de escolher seu AP, sugiro que você anote o SSID e o MAC da rede, além do canal que a rede opera. São informações que você usará bastante daqui para frente.

Em seguida, você deve iniciar sua placa de rede em modo monitor. O modo monitor altera o funcionamento da placa de rede, fazendo com que ela intercepte qualquer pacote que chegar. Diferentemente do modo "promíscuo" que funciona em níveis mais elevados na pilha TCP/IP, esse modo trabalha no nível de enlace.

Para isto, vamos executar os seguintes comandos, que têm por objetivo encerrar o funcionamento normal e iniciar o modo monitor no canal que o Access Point opera. Supondo que sua placa de rede foi reconhecida em wlan0 (placas atheros usam o nome ath0), os comandos são os seguintes:

bt ~ # airmon-ng stop wlan0
bt ~ # airmon-ng check kill
bt ~ # airmon-ng start wlan0 [canal]


O primeiro vai encerrar o modo normal de operação da placa de rede. O segundo irá finalizar todos os processos que possam interferir com a placa de rede e o terceiro inicia a placa de rede no modo monitor, travado no [canal] que deve ser designado, por exemplo, 9.

Iniciando a captura dos IVs

Fazer a captura dos IVs de uma determinada rede é simples. Dependendo do tráfego da rede, você pode fazer isto em pouco mais de 30 minutos sem nada mais do que ouvir a rede alvo e coletar os IVs gerados normalmente pela rede. Para capturar os pacotes, iremos iniciar o programa airodump-ng, que se encarregará de capturar os IVs na medida em que forem aparecendo.

bt ~ # airodump-ng -c [canal] --bssid [mac do access point] -w [nome do arquivo de captura] wlan0


capturando de várias redes


captura travada em uma única rede


Usando os IVs capturados para obter a chave Wep

Depois de capturarmos os pacotes usando o airodump-ng, quebrar é relativamente simples. Tendo em mãos o arquivo gerado no passo anterior, você só precisa rodar o comando aircrack-ng que ele irá fazer o trabalho de obter a chave Wep à partir dos IVs. O comando é o seguinte:

bt ~ # aircrack-ng -b [mac do access point] [nome do arquivo de captura]*.cap


Você também pode usar um outro método de obtenção da chave, chamado Método FMS/Korek. Na prática, se você não conseguiu com o primeiro, pode tentar com esse segundo método:

bt ~ # aircrack-ng -K -b [mac do access point] [nome do arquivo de captura]*.cap


Se você não conseguir obter a chave nesse momento, pode ser necessário que você capture mais pacotes. Para uma chave de 64 bits, é necessário em torno de 250 mil IVs e em torno de 1 milhão de IVs no caso de chaves de 128 bits. Dependendo da fragilidade da chave, você pode já conseguir quebrar ao alcançar em torno de 20 mil IVs para a chave de 64 bits e 50 mil IVs no caso de uma chave de 128 bits. Então, a partir daí é só testar.

obtendo a chave wep


Gerando pacotes ARP de teste

Como estamos testando em um AP nosso, de testes, é possível gerar pacotes ARP simplesmente se conectando com outro computador na rede sem fio e, por exemplo, pingar um endereço IP inexistente. Isso por si só já gerará uma quantidade de requisições ARP suficiente para nosso tutorial.

E agora, se a quantidade de IVs gerados está muito baixo ou demorar muito pra alcançar a quantidade necessária para o aicrack-ng funcionar?

Bem, neste caso, você precisará usar técnicas de injeção de pacotes. Eu abordarei estas técnicas na próxima postagem. Até lá, vocês já estarão craques nessa técnica de captura de pacotes, que na verdade é muito simples.

Até o próximo post.