Introdução
O objetivo dessa postagem é introduzir o leitor às principais etapas de conexão do protocolo WPA2-PSK (Wi-Fi Protected Access Pre Shared Key) e como os ataques a esse protocolo funcionam.
O Que é o WPA2-PSK?
O Protocolo WPA2-PSK (Wi-Fi Protected Access 2 - Pre-Shared Key) é um padrão de segurança para redes sem fio que foi desenvolvido para melhorar a proteção oferecida pelo seu antecessor, o WPA (Wi-Fi Protected Access). O WPA2-PSK é amplamente utilizado para proteger redes Wi-Fi domésticas e empresariais, garantindo a confidencialidade e a integridade das comunicações sem fio.
A sigla “PSK” refere-se a “Pre-Shared Key” (Chave Pré-Compartilhada), indicando que a segurança da rede é baseada em uma chave compartilhada entre os dispositivos que desejam se conectar à rede Wi-Fi. Essa chave, também conhecida como senha de rede, é configurada previamente no roteador ou ponto de acesso Wi-Fi e deve ser inserida nos dispositivos clientes para estabelecer a conexão segura.
O funcionamento do WPA2-PSK envolve a utilização de algoritmos de criptografia robustos, como o AES (Advanced Encryption Standard), para proteger a transmissão de dados entre os dispositivos conectados à rede. A chave pré-compartilhada é essencial para a autenticação dos dispositivos, garantindo que apenas aqueles com a senha correta possam se conectar à rede.
Ataque
O ataque ao protocolo WPA2-PSK consiste em capturar o handshake da conexão, usando uma antena em modo de monitoramente. Em posse do handshake, realizamos bruteforce das possíveis senhas.
Finalizar processos
Antes de colocarmos em modo de monitoramento, existem processos que podem dificultar a execução do programa:
|
|
Caso seja necessário finalizar algum processo, utilizamos o comando abaixo
|
|
Configuração da antena
- Colocar a placa no modo de monitoramento o comando abaixo coloca a placa em modo de monitoramento.
|
|
obs: Após esse comando, é possível que a interface (placa) tenha mudado de nome. Para consultar os dispositivos basta executar o comando “iwconfig“. Após executarmos esse comando, percebemos que a placa manteve o mesmo nome “wlan0”, mas em alguns casos há adição de um “mon”(monitor) ao final do nome, resultando em “wlan0mon”.
- Monitorar as redes para selecionar o alvo o comando abaixo monitora as redes
|
|
informações do alvo: essid = “baby yoda comunista” bssid = “40:EE:DD:39:C7:E8”
- Trocar o canal da placa para o mesmo canal da rede alvo
ifconfig wlan0 down
- derruba a placa para fazermos as modificaçõesiwconfig wlan0 channel 6
- troca o canal da placa para a mesma da rede alvoifconfig wlan0 up
- sobe a placa após fazermos as modificaçõesiwlist wlan0 channel
- mostra todos os canais da placa e o canal atual da placa
No github abaixo tem um script em python para automatizar os passos de troca de canal https://github.com/jhaysonj/projeto-NM/blob/main/wifi.sh
- Monitorar a rede alvo o comando abaixo monitora a rede e salva as informações monitoradas em arquivos de nome “wpa_baby_yoda”
|
|
Todos os endereços macs da coluna “STATION” são dispositivos conectados à rede.
Arquivos gerados
Captura de handshake O handshake é feito toda vez que um dispositivo se conecta à rede, neste caso, podemos simplesmente esperar um dispositivo se conectar.
Ataque de desautenticação Para facilitar o processo de captura de handshake, utilizaremos um ataque chamado ataque de desautenticação, onde forçamos a desconexão do dispositivo, para que o alvo se reconecte e assim capturamos o handshake. O comando abaixo envia pacotes que desautenticam o dispositivo.
|
|
Após isso, conseguimos capturar o handshake, como mostra a imagem abaixo
- Realizar a quebra da senha o comando abaixo faz um bruteforce para realizar a quebra da senha
|
|