Reaver - Testes de segurança em redes sem fio

Neste artigo, um estudo experimental é realizado para atestar falhas presentes em roteadores com a certificação WPS habilitada. Especificamente, os testes utilizam técnicas de força bruta para recuperar chaves de autenticação de usuários na rede.

[ Hits: 36.720 ]

Por: Vanderson Diniz em 24/10/2013


Conclusão



Os resultados dos experimentos variaram de acordo com a distância entre o AP e o computador invasor, visto que a perda de pacotes ocorre proporcionalmente à distância entre transmissor e receptor. Isso implica em um tempo maior para o processo de quebra do código PIN.

Dependendo do cenário em que seja realizado o teste, exceder o tempo de 10 horas previstas para o ataque pode tornar a situação inviável.

A melhor contramedida que pode ser adotada para evitar este tipo de ataque, é desabilitar o protocolo WPS, ou utilizar firmwares atualizados que limitem as mensagens trocadas entre o AP e os destinatários, bloqueando a troca de pacotes após um certo número de tentativas.

Referências

  • [1] T. Karygiannis and L. Owens. Wireless Network Security 802.11, Bluetooth and Handheld Devices: Special Publication. CreateSpace Independent Publishing Platform, 2002.

  • [2] C. T. R. Hager. Context Aware and Adaptive Security for Wireless Networks. Ph.D. thesis, Faculty of the Virginia Polytechnic Institute and State University, Toronto, Canada, 2004.

  • [3] J. Edney and W. A. Arbaugh. Real 802.11 Security: Wi-Fi Protected Access and 802.11i. Addison-Wesley Professional, 2003.

  • [4] Y. Zhou and D. Feng. Side-Channel Attacks: Ten Years After Its Publication and the Impacts on Cryptographic Module Security Testing. IACR Cryptology ePrint Archive, 2005.

  • [5] Tactical Network Solutions. Reaver. Disponível em: Tactical Network Solutions - Reaver. Acessado em Setembro de 2013.

  • [6] IEEE Standard for Information Technology- Local and metropolitan area networks Specific requirements - Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) specifications Amendment 8: IEEE 802.11 Wireless Network Management. IEEE Std 802.11v-2011 (Amendment to IEEE Std 802.11-2007 as amended by IEEE Std 802.11k-2008, IEEE Std 802.11r-2008, IEEE Std 802.11y- 2008, IEEE Std 802.11w-2009, IEEE Std 802.11n-2009, IEEE Std 802.11p-2010, and IEEE Std 802.11z-2010), pp. 1-433, 2011.

  • [7] Cisco Security Response. Vulnerability Note VU#723755. Disponível em Wi-Fi Protected Setup PIN Brute Force Vulnerability. Acessado em Setembro de 2013.

  • [8] S. Viehbock. Brute forcing Wi-Fi Protected Setup - When Poor Design Meets Poor Implementation. Technical report, 2011. Relatório Técnico.

  • [9] Homeland Security. Vulnerability Note VU#723755. Disponível em: Vulnerability Note - WiFi Protected Setup. Acessado em Setembro de 2013.

  • [10] M. T. Goodrich e R. Tamassia. Introdução à Segurança de Computadores. Bookman, 2011.

Página anterior    

Páginas do artigo
   1. Apresentação
   2. Wi-Fi Protected Setup (WPS)
   3. Reaver / Metodologia para ataque de força bruta
   4. Conclusão
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Snort + ACID + MySQL no Slackware

Como configurar um IPTABLES simples e seguro no Slackware!

Impedindo o compartilhamento de conexão

IDS com Snort + Guardian + Debian Lenny

Metasploit - Instalação e utilização em ambiente GNU/Linux

  
Comentários
[1] Comentário enviado por px em 24/10/2013 - 04:49h

Bacana! mais uma vulnerabilidade de protocolo e hardware mal configurado nos roteadores, além dos firmwares que sempre vem com backdoors hoje em dia.

Ótimo artigo colega nota 10!

AHH a um tempinho atrás escrevi sobre o Macflood em aparelhos vulneráveis, se quiser dar uma olhada no artigo (já que são relacionados):

http://www.vivaolinux.com.br/artigo/MAC-Flood-E-agora/

[2] Comentário enviado por danniel-lara em 24/10/2013 - 09:08h

Bah , meus parabéns
ficou Bagual o Artigo

[3] Comentário enviado por VandersonDiniz em 24/10/2013 - 13:06h

Pessoal, obrigado pelos comentários.
px, acabei de ler o seu artigo. Muito bem detalhado, parabéns.

Agora vejam se podem me ajudar em uma situação. Vou colar aqui um email que enviei para tentar tirar essa dúvida.

"Hoje encontrei uma situação que não me deu muita escolha. Em todos os tutoriais/livros que segui, ainda não vi qual o procedimento a ser utilizado quando um roteador é configurado para permitir a entrada ao setup, somente a usuários que tenham o MAC cadastrado (filtrado).
No teste de hoje, o roteador estava com as configurações de segurança abertas e qualquer usuário poderia se conectar e navegar normalmente, no entanto, se tentasse acessar o setup do roteador, essa página não carregava, impossibilitando assim, realizar um ataque (força bruta). Mantra, Hydra, Nessus, não mostraram tanta coisa. (é certo que, relativamente, alguns destes não são específicos para isso.)

Então, qual o procedimento a ser utilizado neste caso?

Eu pensei em capturar pacotes com o wireshark, mas, e depois? Como identificar um MAC que fosse um dos legítimos para esse roteador, em meio a tantos MAC's?"

[4] Comentário enviado por px em 25/10/2013 - 04:49h


[3] Comentário enviado por VandersonDiniz em 24/10/2013 - 13:06h:

Pessoal, obrigado pelos comentários.
px, acabei de ler o seu artigo. Muito bem detalhado, parabéns.

Agora vejam se podem me ajudar em uma situação. Vou colar aqui um email que enviei para tentar tirar essa dúvida.

"Hoje encontrei uma situação que não me deu muita escolha. Em todos os tutoriais/livros que segui, ainda não vi qual o procedimento a ser utilizado quando um roteador é configurado para permitir a entrada ao setup, somente a usuários que tenham o MAC cadastrado (filtrado).
No teste de hoje, o roteador estava com as configurações de segurança abertas e qualquer usuário poderia se conectar e navegar normalmente, no entanto, se tentasse acessar o setup do roteador, essa página não carregava, impossibilitando assim, realizar um ataque (força bruta). Mantra, Hydra, Nessus, não mostraram tanta coisa. (é certo que, relativamente, alguns destes não são específicos para isso.)

Então, qual o procedimento a ser utilizado neste caso?

Eu pensei em capturar pacotes com o wireshark, mas, e depois? Como identificar um MAC que fosse um dos legítimos para esse roteador, em meio a tantos MAC's?"


Não entendi sua dúvida... bom só entendi a última pergunta, e a resposta é usando as proteções do hardware! no próprio roteador tem um "log" que ficam armazenados os MAC que acessam a rede, quando um MAC deixa de acessar por um tempo ele é tirado da tabela.

E valeu por ler o Artigo, obg pelos elogios!

PS: Re li e re li, você quer boquear o acesso a MACs que não estejam cadastrados para acesso ao roteador, não é?

2 opções (se for isto)

1- Ir no roteador e ver se conta com esta opção de filtragem...

2- Configurar um Proxy para gerenciar o acesso à sua rede, bloqueando assim MACs que não estejam liberados para acessar a página do roteador.

Espero que tenha sido útil, at+

[5] Comentário enviado por VandersonDiniz em 25/10/2013 - 11:56h

Vamos aos detalhes, px.

Fui realizar um teste em um roteador que "já" estava configurado para bloquear acesso ao setup, de MAC's que não estivessem cadastrados. Ou seja, se eu tentasse acessar 192.168.0.1 (gateway do roteador) e entrar nas configurações, eu não conseguiria, pois o meu MAC não estava cadastrado.

A internet provida por esse roteador permitia que qualquer usuário se conectasse sem senha alguma (aberta).

O meu desafio era burlar essa proteção de filtragem por MAC, entrar no setup e ter controle total do roteador.
Obs.: eu tinha acesso físico ao roteador e sei que bastava "resetá-lo" para acabar com essa filtragem e fazer minhas próprias configurações. Mas não podia fazer isso (de acordo com as regras do desafio).

Tentei acessar 192.168.0.1 (gateway do roteador) e para os MAC's que não estão cadastrados, esta página nem carrega, desta forma, não aparece o "campo" de login.

A pergunta é: Como acessar as configurações do roteador, sem ter o MAC cadastrado?
Como burlar essa filtragem?


Espero ter sido mais claro.
Aguardo seus comentários e agradeço antecipadamente.

[6] Comentário enviado por Miqueloti em 25/10/2013 - 13:47h

Vanderson, creio que neste caso não adiante acertar a senha, pois o access point irá "dropar" qualquer pacote que não seja proveniente de seu MAC Filter.

Estou começando em redes em geral (trabalho com WANs de operadoras) e desconheço na minha pouca experiencia não vejo uma forma de você burlar isto sem ter um MAC Valido para poder realizar um clone e passar no roteador.

Não sei se dá para fazer um sniffer em uma WLAN sem você ter um endpoint conectado a ela. Talvez a galera com expertise em segurança saiba como capturar um MAC válido. Fica no ar a dúvida para que a galera com mais experiência responda.

[7] Comentário enviado por VandersonDiniz em 25/10/2013 - 14:28h

Beleza Miqueloti.
Pretendo realizar o mesmo teste em breve. Desta vez vou realizar uma captura de pacotes e ver o que consigo.
Se os resultados forem positivos, voltarei aqui e descrevo com detalhes.

Vamos aguardar também a resposta de Pedro.

Até mais!

[8] Comentário enviado por px em 26/10/2013 - 04:35h


[7] Comentário enviado por VandersonDiniz em 25/10/2013 - 14:28h:

Beleza Miqueloti.
Pretendo realizar o mesmo teste em breve. Desta vez vou realizar uma captura de pacotes e ver o que consigo.
Se os resultados forem positivos, voltarei aqui e descrevo com detalhes.

Vamos aguardar também a resposta de Pedro.

Até mais!


Cara o jeito mais fácil é mesmo tentar clonar um MAC já que é o próprio roteador que faz o controle, larga um snifer escutando e deixa rolar...

Você também pode tentar fazer um arpspoof para capturar os pacotes que são enviados ao roteador - quem sabe não consiga o MAC e uma senha de acesso :)

Pesquise pelo pacote "dsniff" e tutoriais sobre os aplicativos que vem nele (tem bastante coisa boa lá)

Pode-se tentar fazer um macflood também de modo que o roteador não consiga mais controlar os MAC, mas essa opção é só se as outras falharem pois pode causar paradas na rede, de inicio comesse com poucos pacotes e veja os resultados.

Para descobrir o MAC de um determinado ip você pode usar o arpspoof (presente no pacote dsniff), para isto basta:

Usage: arpspoof [-i interface] [-t target] host

arpspoof -i eth0 -t 192.168.1.1 192.168.1.5

onde eth0 é sua placa de saída de rede

192.168.1.1 é o ip do roteador

e 192.168.1.5 é o ip do pc que você quer o número MAC

basta você deixar "pingar" umas 6 vezes e apertar ctrl+c em baixo estará o número MAC, exemplo com pc e uma VM:

[px@Casa ~]$ sudo arpspoof -i eth0 -t 192.168.1.1 192.168.1.5

0:e0:1a:1a:0r:1d 13:1b:13:35:a1:9 0806 42: arp reply 192.168.1.5 is-at 0:e0:1a:1a:0r:1d
0:e0:1a:1a:0r:1d 13:1b:13:35:a1:9 0806 42: arp reply 192.168.1.5 is-at 0:e0:1a:1a:0r:1d
0:e0:1a:1a:0r:1d 13:1b:13:35:a1:9 0806 42: arp reply 192.168.1.5 is-at 0:e0:1a:1a:0r:1d
0:e0:1a:1a:0r:1d 13:1b:13:35:a1:9 0806 42: arp reply 192.168.1.5 is-at 0:e0:1a:1a:0r:1d
0:e0:1a:1a:0r:1d 13:1b:13:35:a1:9 0806 42: arp reply 192.168.1.5 is-at 0:e0:1a:1a:0r:1d
^C8:0:27:ab:ad:15 13:1b:13:35:a1:9 0806 42: arp reply 192.168.1.5 is-at 8:0:27:ab:ad:15
8:0:27:ab:ad:15 13:1b:13:35:a1:9 0806 42: arp reply 192.168.1.5 is-at 8:0:27:ab:ad:15
8:0:27:ab:ad:15 13:1b:13:35:a1:9 0806 42: arp reply 192.168.1.5 is-at 8:0:27:ab:ad:15

OBS: estes números são ips e MACs fictícios para exemplificar a técnica de arpspoof
Na linha com ^C é onde eu parei o programa (ctrl +c)

Conferindo o MAC da vm...

[px@Casa ~]$ arp -a
? (192.168.1.1) at 0:e0:1a:1a:0r:1d [ether] on eth0
? (192.168.1.5) at 08:00:27:ab:ad:15 [ether] on eth0

Podemos observar que os zeros só aparecem uma vez 8:0:27:ab:ad:15 (número obtido pelo arpspoof) // 08:00:27:ab:ad:15 (número MAC válido)
basta onde tiver uma única casa com um único zero colocar mais um zero

Se quiser mapear a rede antes (caso não saiba os ips) use o nmap

nmap -sP 192.168.1.0/24

OBS: Só cuidado para não cair em nenhuma regra de "anti-scan" fazendo isto e ter seu acesso bloqueado!!!

Boa sorte! :)

[9] Comentário enviado por VandersonDiniz em 26/10/2013 - 11:51h

Valeu px, assim que eu fizer o teste, volto aqui para dizer o que consegui. Talvez na semana que vem. Vou usar as suas dicas.

Para quem ainda não viu...

Vivek
http://www.pentesteracademy.com/course?id=8

[10] Comentário enviado por Buckminster em 27/10/2013 - 16:18h


[9] Comentário enviado por VandersonDiniz em 26/10/2013 - 11:51h:

Valeu px, assim que eu fizer o teste, volto aqui para dizer o que consegui. Talvez na semana que vem. Vou usar as suas dicas.

Para quem ainda não viu...

Vivek
http://www.pentesteracademy.com/course?id=8


Você tentou acessar pelo telnet?

[11] Comentário enviado por VandersonDiniz em 27/10/2013 - 17:17h

Buckminster, tentei. Nada feito.

[12] Comentário enviado por Osni em 30/10/2013 - 17:24h

Ótimo artigo!

Para logar os MACs conectados ao roteador você poderia usar o próprio airmon-ng (a menos que o admin use a rede cabeada).
O problema é que depois você teria que alterar seu mac para cada cliente capturado. Como a rede é aberta, vai ter mac pra caramba =/

[13] Comentário enviado por VandersonDiniz em 30/10/2013 - 17:37h

Valeu pelo comentário Osni.

Galera, farei o teste de intrusão na mesma rede amanhã. Assim que puder, descrevo os passos e o os resultados.
Agradeço a todos pelos comentários.

[14] Comentário enviado por VandersonDiniz em 01/11/2013 - 15:37h

Pessoal, eis uma descrição completa do teste realizado.

I - Objetivo: Obter acesso ao "setup" de um roteador configurado para limitar este acesso, somente aos dispositivos "cadastrados".

Apenas três computadores tinham acesso a esse setup. Qualquer outro que tentasse acessar o gateway e entrar nas configurações, não conseguiria. A página não carregava. Ou seja: http://192.168.0.1., não "carregou" a página, desta forma, não permitindo chegar ao login do roteador.

O segundo teste (realizado hoje) foi facilitado. Apenas para comprovar que com a técnica de mac spoofing, era possível se passar por um dispositivo legítimo(sem muitas novidades aqui).

As situações facilitadas foram:
1 - Conhecimento da senha do setup.
2 - Conhecimento dos MAC's legítimos.

Portanto:
# macchanger -m 'MAC' 'INTERFACE DE REDE'
Em seguida: http://192.168.0.1., carregou normalmente, foi possível digitar a senha e obter acesso completo ao setup, podendo assim, realizar a configuração desejada. Sucesso!

A parte, fiz uma captura de pacotes no momento em que um usuário cadastrado entrou no setup. Pretendo analisar esta captura posteriormente e observar as respostas para o 'dispositivo legítimo'.

II - Supondo um determinado cenário:

Em uma situação 'real', que eu não saiba quem são os MAC's legítimos e que esta rede contenha '50 pessoas' conectadas. Como descobrir os 3 MAC's legítimos para essa rede?

III - Algumas dúvidas

1 - Acho que, (Por favor, não encarem isso como algo tão óbvio), se em uma captura de pacotes eu não conseguir 'pegar' nenhuma 'conexão' entre os 'legítimos' e o AP, já era.(Ou não?).

2 - 5 MAC's ainda é possível você tentar forjar. 50, já é um trabalho árduo.

IV - Para finalizar

Será realizado um outro teste e desta vez, sem facilidades. Pretendo quebrar a senha (que não seja padrão) e não ter conhecimento dos MAC's cadastrados. Isso vai depender das respostas que terei quando analisar os pacotes capturados hoje.

Agradeço a todos pelos comentários e espero ter contribuído tanto com os testes, quanto com as dúvidas apresentadas.

Até mais!



*obs.: Vou postar isso como uma dúvida geral, assim, atingimos uma quantidade maior de pessoas da comunidade.

px, vou utilizar sua metodologia no próximo teste (mais complexo).

[15] Comentário enviado por px em 01/11/2013 - 16:22h

OK cara, to acompanhando sua "missão" rsrs, boa sorte!

PS:. é sorte é um fator importante na hora de capturar um MAC num ap HIUHUHU

[16] Comentário enviado por VandersonDiniz em 01/11/2013 - 16:27h

kkkkkk.
Valeu px.

[17] Comentário enviado por removido em 05/11/2013 - 13:55h

Muito Show! Já usei e reaver antes e garanto a funcionalidade!

[18] Comentário enviado por VandersonDiniz em 05/11/2013 - 14:47h

Obrigado pelo comentário, codeshell.

[19] Comentário enviado por ielris em 29/11/2013 - 00:16h

reaver e massa

[20] Comentário enviado por VandersonDiniz em 29/11/2013 - 23:00h

Galera, após um longo tempo, volto aqui para informar sobre os testes realizados descritos anteriormente.

I - Caríssimo px, sua metodologia é excelente. Testei em dois roteadores (D-Link, Linksys) com diferentes regras. Para o D-Link, obtive sucesso ao "sniffar" a rede, já para o Linksys, não consegui muita coisa. O máximo que consegui, foi uma negação de serviços aos MAC's legítimos, após algumas tentativas frustradas pelas regras.

II - "Não sei se dá para fazer um sniffer em uma WLAN sem você ter um endpoint conectado a ela".
Miqueloti, eis a chave da questão. Capturar os pacotes e testar os MAC's capturados.

"Para logar os MACs conectados ao roteador você poderia usar o próprio airmon-ng (a menos que o admin use a rede cabeada).
O problema é que depois você teria que alterar seu mac para cada cliente capturado. Como a rede é aberta, vai ter mac pra caramba =/"
Osni, esse era o martírio que eu temia. Para melhorar essa situação, podemos abrir a captura realizada com o Wireshark. Depois, aplica-se um filtro "IP" (para mostrar os hosts que acessaram tal endereço) e outro filtro MAC (wlan.addr ==). Enfim, é possível distingui-los com maior facilidade. É uma boa opção também. (Sugerida por Luiz Vieira (hackproofing) em resposta a um email)

Enfim, não foi 100%, mas já sai do canto com a experiência compartilhada por cada um.

Agradeço a todos pelas colaborações.

Até mais pessoal!






[21] Comentário enviado por marcelohcm em 17/01/2014 - 14:09h

já descobri uma senha de rede sem fio aqui no predio usando o reaver.... não durou nem 3 minutos e já me mostrou a senha......
usei o backtrack

[22] Comentário enviado por VandersonDiniz em 17/01/2014 - 15:47h

Isso aí Marcelo. Também já descobri em questão de minutos (1 ou 2), mas depende muito das configurações e distância. Para o meu roteador, Belkin, o único tempo que consegui foi em 10 horas. Para um outro roteador, consegui em 2 minutos. O PIN deste era 123... . Esses detalhes minimizam ou dificultam o trabalho.

[23] Comentário enviado por rltmetall em 06/02/2014 - 16:53h

Olá galera, estou usando o reaver aqui em casa, e estou com a seguinte dúvida, o reaver levou 12 horas para fazer a força bruta e me retornou a senha de dois roteadores, porém não consigo me conectar no mesmo, assim logo pensei que poderia ser porque estavam configurados para fazer bloqueio por MAC, e com isso utilizei o airodump-ng para verificar quais MAC estão conectados ao roteador onde quero me conectar, ele me retornou alguns clientes conectados, eu clonei os MACS dos clientes no meu ubuntu e no windows 8 porém não consigo me conectar. Alguém saber alguma coisa que está faltando par eu tentar ? O que mais devo fazer ?

[24] Comentário enviado por VandersonDiniz em 06/02/2014 - 23:18h

Olá rltmetall, observe se os IPs são os mesmos sempre. Pode ter algum bloqueio por IP também. O sinal da rede está bom? Verifique também, se estiver usando o WICD, se o protocolo de segurança está correto e tente conectar com outros dispositivos. Um celular bem perto do local é uma boa tentativa.
Depois volte aqui para dizer o que conseguiu.
Valeu!

[25] Comentário enviado por angkor em 24/03/2014 - 15:58h


[14] Comentário enviado por VandersonDiniz em 01/11/2013 - 15:37h:

II - Supondo um determinado cenário:

Em uma situação 'real', que eu não saiba quem são os MAC's legítimos e que esta rede contenha '50 pessoas' conectadas. Como descobrir os 3 MAC's legítimos para essa rede?

III - Algumas dúvidas

1 - Acho que, (Por favor, não encarem isso como algo tão óbvio), se em uma captura de pacotes eu não conseguir 'pegar' nenhuma 'conexão' entre os 'legítimos' e o AP, já era.(Ou não?).

2 - 5 MAC's ainda é possível você tentar forjar. 50, já é um trabalho árduo.

Amigo VandersonDiniz, você alcançou o seu objetivo?
Se não, tenho uma pergunta. Na situação ilustrada acima você conseguiu os 50 MAC's?
Se sim, faça um script simples que altere seu MAC para um dos MAC's da sua lista em cada looping e teste com o links. Quando o seu MAC coincidir com um dos 5 MAC's autorizado você obterá algo parecido com isto:


angkor@dust:~$ links -dump 192.168.0.102
401 Unauthorized

Authorization required.


[26] Comentário enviado por VandersonDiniz em 24/03/2014 - 16:15h

Olá angkor!

Em relação à dúvida que postei, sim, obtive êxito nos testes.
Agradeço por apresentar esta nova ferramenta, vou usá-la em breve.

Valeu!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts