terça-feira, 10 de setembro de 2013

Quebrando redes sem fio: WEP

Conforme combinado em aula segue um passo-a-passo de como quebrar o protocolo WEP utilizando o BackTrack. Clicando no logo abaixo, a página da ferramenta será aberta em outra aba.



Essas informações foram obtidas em diversos materiais de estudo e foram debatidos em aula. Para mais informações e futuras referências recomendo o livro BackTrack 5 Wireless Penetration Testing, já indicado aqui nesse blog. 

As falhas do protocolo WEP - Wired Equivalent Privacy (ou Privacidade Equivalente a Rede Cabeada), são conhecidas desde o ano 2000 (ou seja, há mais de 10 anos), e ainda hoje podemos encontrar ambientes utilizando esse protocolo de autenticação nas suas redes sem fio. Um projeto da TIRio em parceria com a Clavis Segurança da Informação chamado WAR Driving Day, mostrou que 43% das redes no centro do Rio de Janeiro estavam abertas e 3% (174 redes) usavam WEP. Sinceramente, acredito que a falsa sensação de segurança que um protocolo sabidamente inseguro proporciona, é ainda mais prejudicial do que não ter segurança alguma. Afinal, numa rede aberta o usuário não espera por segurança nenhuma mesmo, enquanto usar WEP é ter a sensação de um mínimo de segurança (e conforme veremos, é uma segurança "quebrável" em questão de poucos minutos). 

Para esse cenário precisaremos de:

- um roteador wi-fi configurado com o protocolo WEP;



- um computador/laptop com interface de rede sem fio, rodando o Linux BackTrack.
- um cliente legítimo conectado a esse roteador;


Você tanto pode optar por usar um Live CD do BT5 ou usá-lo numa máquina virtual (VM), porém com a pequena ressalva de que, se for utilizá-lo via VM, deverá obrigatoriamente utilizar um adaptador wireless externo conectado a uma porta USB, pois o BT5 não utilizará seu adaptador de rede sem fio local. Para mais informações, veja o item 18 - Why cant BackTrack use Wireless card "X" inside VMware or Virtual Box nas FAQs do BT5.

Após bootar com o CD do Backtrack, vamos verificar qual a interface sem fio presente no sistema (geralmente wlan0)com o comando:

airmon-ng
 

Depois de verificada, iniciar a interface de monitoramento:

airmon-ng start wlan0 


Execute o comando "ip a" e veja que agora você possui além da "wlan0" a interface "mon0", que será utilizada para o monitoramento. 
 

Porém note também que essa interface de monitoramento possui o mesmo MAC Address que a sua interface real (no meu caso: 34:08:04:32:a0:72). Vamos então alterar o endereço físico da interface de monitoramento para não utilizar seu endereço real na invasão. Pare a interface "mon0" para “spoofar” seu MAC Address. A alteração do MAC pode ser feita com o "macchanger". Depois de alterado o endereço, pode subir a interface novamente:

– ifconfig mon0 down
– macchanger –m 00:11:22:33:44:55 mon0

– ifconfig mon0 up


Executando o "ip a" novamente, vVeja que agora o MAC Address dessa interface foi alterado (spoofado).


Com as interfaces prontas, vamos agora rodar o airodump-ng para verificar quais redes estão disponíveis e protegidas com WEP. Este comando mostra SSID, dados trafegados, canais, tipo de criptografia, nome da rede, entre outros:

airodump-ng mon0



Uma vez identificada a rede, vamos rodar o comando de captura de pacotes, salvando-os em arquivo para, caso necessário, posterior análise. Nesse exemplo, vamos capturar tráfego de uma rede chamada “CENARIO_WEP” que está no “canal 9” e tem “BSSID 00:1E:58:C3:2C:35”. As informações serão salvas em arquivos chamados “CENARIO_WEP*. Para capturar os pacotes executaremos o "airodump-ng" com o parâmetro -w para salvar em arquivo. 

airodump-ng –c 9 -w CENARIO_WEP --bssid 00:1E:58:C3:2C:35 mon0


IMPORTANTE: Para esse ataque funcionar é preciso ter pelo menos um cliente conectado.

Se não for identificado um cliente conectado ao router, ou se não estiverem trafegando dados, execute numa outra janela (deixe o airodump-ng fazendo seu trabalho ;o)), o comando “aireplay” com a opção “-0” para de-autenticar clientes conectados, forçando-os a trocar pacotes com o router. Os pacotes de de-autenticação enviados forçarão todos os clientes legítimos a se desconectarem e conectarem-se novamente, permitindo que seus MAC Addresses sejam conhecidos.

– aireplay-ng -0 5 -a 00:1E:58:C3:2C:35 mon0



O "aireplay-ng" nos permitirá capturar pacotes ARP (Address Resolution Protocol) na rede Wifi e injetá-los de volta na rede para simular respostas ARP. Isso é possível pois o ARP é um protocolo de cabeçalho fixo e o tamanho de um pacote ARP pode ser facilmente determinado e usado para identifica-los, mesmo com tráfego criptografado. Repetindo esses pacotes algumas milhares de vezes (o que acontece relativamente rápido), geraremos bastante tráfego de dados na rede. Mesmo o aireplay-ng não sabendo a chave WEP, ele consegue identificar os pacotes ARP em função do tamanho dos mesmos. 

Para gerarmos tráfego ARP executaremos então:

– aireplay-ng -3 -b 00:1E:58:C3:2C:35 –h 00:1C:BF:65:C2:B9 mon0 onde:
  • a opção “-3” é para ARP replay.
  • a opção “-b” especifica o SSID da rede.
  • a opção “-h” especifica o MAC Address do cliente que estamos spoofando (neste ponto, é preciso colocar o MAC Address da máquina do atacante spoofando o cliente). É preciso fazer isso pois ataques de replay só funcionarão para MAC Addresses associados e autenticados.
  • a opção “mon0” especifica a interface do atacante.

A essa altura, o airodump-ng registrará uma boa quantidade de pacotes de dados, todos sendo armazenados em arquivos “CENARIO_WEP-*”.

Quando tivermos cerca de 50.000 pacotes de dados capturados, já podemos cancelar a captura.  Você pode conferir isso naquela janela do comando "airodump-ng" que você havia executado anteriormente.
 

Execute então o comando "aircrack-ng" no arquivo de captura:

aircrakc-ng –a 1 –b 00:1E:58:C3:2C:35 CENARIO_WEP-01.cap 

INFORMAÇÃO: é possível executar os comandos  airodump-ng, aireplay-ng e aircrack-ng simultaneamente, em janelas separadas.

Quando a chave for encontrada, será exibida na tela:


Agora basta configurar uma nova conexão de rede sem fio a rede CENARIO_WEP usando como senha: "ABCDEFABCDEFABCDEFABCDEF01".

É importante salientar que qualquer chave WEP (não importa a complexidade), pode ser quebrada pelo aircrack-ng. O único pré-requisito é que um número suficiente de pacotes de dados encriptados com essa chave seja capturado.

Se quiser ainda decriptografar os pacotes que foram capturados na coleta é possível utilizar o comando "airdecap-ng":

– airdecap-ng –w ABCDEFABCDEFABCEDFABCDEFABCDEF01 CENARIO_WEP-01.cap


Esse comando criará o arquivo “CENARIO_WEP-01-dec.cap” que pode ser aberto com sniffers como o Wireshark conforme exibido nas telas abaixo:



É claro que a quantidade de pacotes ARP que existirá nesse arquivo de coleta é bastante grande, mas vale o filtro e o aprendizado. 

Bons estudos.

t+

Cristiano
"A grandeza não consiste em receber honras, mas em merecê-las." - Aristóteles 

Nenhum comentário:

Related Posts Plugin for WordPress, Blogger...