A captura de pacotes Wi-Fi permite que você veja detalhes e interações que são mascarados antes de chegarem ao software em execução em um dispositivo, tornando essas capturas uma ferramenta importante para alguns tipos de bugs.
As principais etapas envolvidas são:
- Encontre o canal certo para detectar.
- Capture o tráfego.
- Compartilhe a captura e um hash da senha da WLAN.
1. Determinar o canal e a largura certos
As redes WLAN operam em:
- um canal, normalmente indicado por um número. 1 a 13 é para canais de 2,4 GHz, 36 a 200 para canais de 5 GHz
- com uma largura específica (20, 40, 80 ou 160 MHz)
Cada ponto de acesso (por exemplo, roteador, nó de malha) na rede geralmente tem um canal de 2,4 GHz e um de 5 GHz exclusivos, e você precisa descobrir a qual o dispositivo está conectado. Há várias opções:
Usar o painel de controle do roteador
Se você usar Nest WiFi, pule essa opção. As informações não serão expostas.
A maioria dos roteadores tem uma lista de dispositivos conectados e de quais canais e larguras eles estão usando.
- Encontre o endereço IP do roteador usando este guia.
- Acesse o endereço do roteador no navegador da Web, por exemplo, http://192.168.1.1.
- Faça login. Não sabe a senha? Procure uma tag no roteador ou use as senhas do roteador.
Procure uma página com o nome "clientes" ou "dispositivos conectados". Por exemplo, a página de um roteador Netgear pode ser semelhante a esta, ou para dispositivos Eero.
Talvez seja necessário procurar em outro lugar nas configurações para mapear as informações da etapa 4 para um canal e uma largura de banda específicos. Por exemplo, um roteador Netgear:
Use seu Mac, se ele já estiver conectado ao mesmo canal
Mantenha a tecla Option pressionada no teclado e clique no ícone de WLAN no canto superior direito da barra de status do Mac. O menu WLAN normal vai aparecer com mais opções e informações. Confira os itens de menu indisponíveis e procure por aquele que menciona o canal:
`Channel 60 (DFS, 5GHz, 40MHz)`
Não é possível encontrar o canal e a largura
Se os outros métodos não funcionarem, tente o seguinte:
Liste todos os canais que os APs estão usando (normalmente dois para cada AP ou ponto de rede mesh).
a. Recomendado: com um smartphone Android, é possível usar um app como o Wifiman ou o Aruba Utilities.
a. Em um Mac, use
/System/Library/PrivateFrameworks/Apple80211.framework/Resources/airport-s
para listar opções.Faça uma captura curta (até 15 segundos) em cada um desses canais, usando as instruções abaixo.
Instale o Wireshark (para receber ajuda, consulte Instalar o Wireshark).
Abra cada uma das capturas usando o Wireshark, aplique um filtro de exibição de
wlan.addr == YOUR_DEVICE'S_MAC
e veja se algum pacote aparece.
2. Iniciar a captura
Importante: como capturar o handshake de quatro vias
Se a segurança estiver ativada para Wi-Fi, você precisará saber as chaves de criptografia para descriptografar os pacotes capturados. As chaves de criptografia são derivadas de um handshake de quatro vias que ocorre quando o dispositivo se conecta à rede e são exclusivas para cada conexão entre um dispositivo e o AP.
Por isso, É NECESSÁRIO capturar o handshake de quatro vias para descriptografar os payloads do Wi-Fi. Se o dispositivo já estiver conectado à rede quando você iniciar a captura, desconecte e reconecte o dispositivo (ou reinicie-o) quando o sniffing começar.
Capture no Mac
Mantenha pressionada a tecla Option no teclado, clique no ícone WLAN e selecione "Abrir diagnóstico sem fio…":
Na barra de menus do Wireless Diagnostics, selecione Window > Sniffer:
Defina o canal e a largura para os valores que você extraiu anteriormente. O exemplo de captura de tela é para o Canal 60 e a Largura 40 MHz:
Pressione Start
e digite sua senha. Agora, tente reproduzir o problema.
Capture o handshake de quatro vias de uma conexão, conforme observado em
Como capturar o handshake de quatro vias.
Quando terminar, pressione Stop
. Um novo arquivo *.pcap
pode ser encontrado em /var/tmp
, que
contém todo o tráfego. Um exemplo de nome de arquivo é:
(null)_ch100_2018-11-06_10.52.01.pcap
.
Captura no Linux
Desative o Wi-Fi. Para isso, siga uma destas orientações:
- Usar a GUI (recomendado)
- Usar a CLI do Network Manager para informar que ele deve parar de gerenciar a interface
WLAN:
sudo nmcli dev set <wlan-ifname> managed on
- Se você estiver usando um gerenciador de rede alternativo, faça os ajustes necessários.
Salve o script. Substitua
<wlan-ifname>
pelo nome da interface Wi-Fi. Neste documento, presumimos que o nome do script sejasetup-wifi-capture
.#!/usr/bin/env bash sudo ifconfig <wlan-ifname> down sudo rfkill unblock wifi sudo iwconfig <wlan-ifname> mode monitor sudo ifconfig <wlan-ifname> up sudo iw dev <wlan-ifname> set channel $@
Execute o script anterior e transmita o canal e a maior largura de banda para detectar, por exemplo, o canal 153 com largura de banda de 80 MHz:
./setup-wifi-capture chan 153 80 MHz
Abra o Wireshark e capture pacotes na interface wlan.
3. Compartilhar a captura
Use o WPA PSK (chave bruta) gerador para gerar um hash da sua senha. Isso permite descriptografar a captura sem saber a senha de texto simples.
Você também precisa compartilhar o PSK gerado para que outras pessoas possam descriptografar a captura.
Apêndice
Instalar o Wireshark
É possível instalar o Wireshark usando o apt install wireshark no Linux ou fazer o download on-line no site do Wireshark.
Configurar o Wireshark para descriptografar o tráfego
Isso não é necessário para compartilhar seus arquivos de captura. Faça isso apenas se quiser examinar o tráfego descriptografado no Wireshark.
Com a segurança WPA2 no Wi-Fi, o WPA2-PSK não é usado diretamente para criptografia e descriptografia do tráfego. Ele é usado em um aperto de mãos de quatro vias, que você precisa capturar para descriptografar pacotes. No entanto, se você estiver tentando capturar problemas de conexão com o Wi-Fi ou quedas de conectividade, que podem ser extraídas dos frames de gerenciamento do Wi-Fi, não será necessário capturar o handshake de quatro vias. De qualquer forma, não custa nada capturar.
Abra o Wireshark e a página "Preferences" (menu do Wireshark > Preferences ou **Cmd + , **).
Encontre a seção "IEEE 802.11" na categoria "Protocols" e verifique se a opção "Enable decryption" está marcada:
Clique no botão Editar ao lado do rótulo Chaves de descriptografia.
Clique no botão "+" no canto inferior esquerdo e selecione a opção "wpa-pwd".
Clique na coluna de chave da linha recém-criada (ao lado da string wpa-pwd) e digite o PSK e o SSID do WPA2 no formato
<password>:<ssid>
. Por exemplo, se o nome da rede forMyHomeNetwork
e o WPA2 PSK formyp4ssword
, digitemyp4ssword:MyHomeNetwork
.Clique em "OK" para confirmar.
Para mais informações, consulte o guia oficial do Wireshark (com capturas de tela) em Como descriptografar 802.11.
Se você estiver usando tshark
, transmita os seguintes argumentos:
tshark -o wlan.enable_decryption:TRUE -o 'uat:80211_keys:"wpa-pwd","<psk>:<ssid>"'
Colorir dados do Wireshark 802.11
Há um perfil de cor 802.11 útil localizado em metageek.com: Perfil de configuração do Wireshark.