Decidi hackear o meu novo router só para tentar divertir-me. Spoiler : foi muito fácil.
Então para fazer os meus testes experimentei uma famosa distribuição Linux: Kali Linux. Esta distribuição tem muitas ferramentas de hacking pré-instaladas que nos ajudam.
>
Istalei o Kali Linux em modo dual-boot mas você também pode usá-lo em modo Live USB ou com uma máquina virtual como VirtualBox.
Como funciona
Aqui vamos usar o Aircrack-ng que é uma suíte de software de código aberto usada para monitorar redes sem fio e “quebrar” as chaves WEP e WPA das redes Wi-fi. O ataque terá lugar em várias fases:
- Preparação da sua placa de rede
- Análise do alvo Wi-fi
- Capturar um aperto de mão WPA (uma ligação à rede Wi-fi) desligando um dispositivo na placa Wi-fi
- Aperto de mão WPA com quebra de senha por força bruta
Preparação
O primeiro passo é activar o modo monitor da placa de rede configurada. Para fazer isto listamos as placas de rede disponíveis com airmong-ng
. Abra um terminal e digite:
airmon-ng
Se a sua placa de rede não for exibida, ela não é compatível. Você tem que comprar um (um dongle USB Wi-fi é suficiente).
No nosso caso vemos que podemos usar a nossa placa de rede wlan0. Então ativamos o modo monitor com o seguinte comando::
airmon-ng start wlan0
Daqui, a placa de rede wlan0 não está mais disponível (você não tem mais internet), e uma nova placa de rede aparece. Ela pode ser encontrada fazendo um ifconfig
. No meu caso, é wlan0mon…
Análise
Agora podemos cheirar os pacotes de rede que circulam à nossa volta com airodump
:
airodump-ng wlan0mon
Este comando irá encontrar informação adicional em Wi-fi incluindo:
- o BSSID
- o CHannel
- o AUTH, o modo de autenticação
- o ESSID, o nome do router
Em todas as linhas, aparece a minha rede. Lembre-se de anotar a informação, pois será útil para nós.
BSSID PWR Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID 18:D6:C7:85:7E:A0 -45 6 0 0 2 54e WPA2 CCMP PSK TP-LINK_7EA0
Capturar um aperto de mão WPA
Um aperto de mão WPA ocorre quando um dispositivo é conectado ao Wi-fi. Nosso objetivo é capturar um para recuperar a senha criptografada.
- sniff o Wi-fi e esperar que um dispositivo se conecte ao Wi-fi
- sniff o Wi-fi e causar uma desconexão e esperar que o dispositivo reconecte
Para testar, vou desconectar o meu Blackberry já conectado a ele.
Scan Wi-fi
Então vamos scanear a rede com o comando airodump-ng
e opções:
-
-c
opções para especificar o canal -
--bssid
, o ID do meu router. -
w
o diretório onde os arquivos de saída serão armazenados
airodump-ng -c 10 --bssid 18:D6:C7:85:7E:A0 -w tplink wlan0mon
Deixamos este comando em segundo plano, ele irá produzir 3 arquivos, um dos quais é do tipo xml. Este é o que nos interessa porque contém mais detalhes sobre os dispositivos conectados ao wi-fi. Ao abrir este, podemos encontrar muito facilmente a informação do meu Blackberry. Aqui está um extrato do arquivo:
<client-mac>94:EB:CD:25:E0:C1</client-mac><client-manuf>BlackBerry RTS</client-manuf>
Desconexão
Agora que tenhamos toda a informação, enviaremos um pacote que solicitará a desconexão do meu Blackberry. Usamos aireplay-ng
com os parâmetros:
-
-0
para enviar um sinal de des-autenticação. -
-a
Para o BSSID do nosso Wi-fi. -
-c
O BSSID do alvo - a placa de rede usada
aireplay-ng -0 2 -a 18:D6:C7:85:7E:A0 -c 94:EB:CD:25:E0:C1 wlan0mon
O dispositivo desconecta e reconecta automaticamente. O resultado é um handshake WPA que está contido no arquivo tplink.cpa.
Cracking
Agora tenhamos obtido um pacote contendo a senha WPA criptografada, só temos que testar várias combinações até encontrarmos uma que corresponda: isto é chamado de bruteforce.
o dicionário
Para encontrar uma senha que precisamos… senhas! Você pode encontrar arquivos de texto de vários gigabytes das senhas mais comumente usadas. No meu caso, eu sei que a senha do meu Wi-fi contém 8 dígitos. Por isso vou usar o comando crunch
para gerar todas as combinações possíveis. crunch
usa vários parâmetros:
- o comprimento mínimo (8)
- o comprimento máximo (8)
- os caracteres a serem usados (0123…9)
Enviamos tudo em uma senha.txt file.
crunch 8 8 12345678 > passwords.txt
Em poucos segundos recebemos um arquivo de 43046721 linhas pesando 369 MB!!!!
The bruteforce
Estamos tomando medidas. Aqui vamos forçar a senha. Para fazer isso usamos aircrack-ng
que irá criptografar as senhas uma a uma e verificar se ela corresponde à senha do pacote de rede que capturamos (Pegue um café pois ele pode ser longo).
Para fazer isso usamos aircrack-ng
.
aircrack-ng -a2 -b 18:D6:C7:85:7E:A0 -w /root/Desktop/passwords.txt /root/Desktop/tplink.cap
E depois de um tempo::
Conclusão
Por este pequeno teste vemos que é muito fácil “decifrar” uma wi-fi com uma senha WPA. As ferramentas à nossa disposição são de fácil acesso e não é necessário nenhum hardware específico. No entanto, aplicando algumas regras simples podemos evitar este tipo de risco.
Remember, a senha utilizada era de apenas 8 caracteres numéricos. O número de combinações cabe em um arquivo de 380 MB. Se a senha tivesse incluído caracteres alfabéticos, o dicionário teria excedido o terabyte. A força bruta certamente teria durado várias semanas.
Então, aplicando uma senha mais complexa, nós reduzimos o risco. Ao alterá-la regularmente, não é possível decifrar a combinação suficientemente rápido.
Outras vezes é possível adaptar o sinal wi-fi para que ele não seja visível em todo o edifício.
O mais rápido possível, use o cabo Ethernet, que ainda é a solução mais segura.
Links
- Artigo original
- Aircrack-ng
- Kali Linux | Penetration Testing and Ethical Hacking Linux Distribution