Capturar tráfego WLAN

A captura de pacotes Wi-Fi permite ver detalhes e interações que seriam mascarados antes de chegarem ao software em execução em um dispositivo. Por isso, esses pacotes são uma ferramenta importante para alguns tipos de bugs.

As principais etapas envolvidas são:

  1. Encontre o canal certo para procurar.
  2. Capture o tráfego.
  3. Compartilhe a captura e um hash da sua senha WLAN.

1. Determine o canal e a largura corretos

As redes WLAN operam em:

  • um canal, normalmente indicado com 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 Mhz, 40 Mhz, 80 Mhz ou 160 MHz)

Cada ponto de acesso (por exemplo, roteador ou nó da malha) na rede geralmente tem um canal exclusivo de 2,4 GHz e um de 5 GHz, e você precisa descobrir a que 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, porque as informações não são expostas.

A maioria dos roteadores tem uma lista de dispositivos conectados e qual canal e largura eles estão usando.

  1. Encontre o endereço IP do roteador usando este guia.
  2. Acesse o endereço do roteador no navegador da Web, por exemplo, http://192.168.1.1.
  3. Faça login. Não sabe sua senha? Procure uma tag no roteador ou use senhas de roteador.
  4. Procure uma página com o nome "clientes" ou "dispositivos conectados". Por exemplo, uma página do roteador Netgear pode ser parecida com o exemplo a seguir ou para dispositivos Eero (link em inglês).

    Visualização do cliente Netgear

  5. Talvez seja preciso procurar outras informações nas configurações para mapear as informações da etapa 4 em um canal e largura de banda específicos. Por exemplo, um roteador Netgear:

    Visualização de canais Netgear

Use seu Mac se ele já estiver conectado ao mesmo canal

Mantenha pressionada a tecla Option e clique no ícone WLAN no canto superior direito da barra de status do Mac. Você verá o menu WLAN normal com mais algumas opções e informações. Veja os itens de menu indisponíveis e procure o que menciona "Canal":

`Channel 60 (DFS, 5GHz, 40MHz)`

WLAN do Mac

Não foi possível encontrar o canal e a largura

Se os outros métodos não funcionarem, tente:

  1. Liste todos os canais que seus APs estão usando (normalmente dois para cada ponto de AP ou malha).

    a. Recomendado Com um smartphone Android, é possível usar um app como o Wifiman ou os Utilitários da Aruba.

    a. Em um Mac, você pode usar /System/Library/PrivateFrameworks/Apple80211.framework/Resources/airport-s para listar as opções.

  2. Realize uma captura curta (até 15 segundos são suficientes) em cada um desses canais usando as instruções abaixo.

  3. Instale o Wireshark. Para receber ajuda, consulte Instalar o Wireshark.

  4. 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 o Wi-Fi, você precisará conhecer 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 ponto de acesso.

Por isso, você PRECISA capturar o handshake de quatro vias para descriptografar os payloads de Wi-Fi. Se o dispositivo já estiver conectado à rede quando você iniciar a captura, desconecte e reconecte e reconecte o dispositivo (ou reinicie) quando a detecção começar.

Capturar no Mac

Mantenha pressionada a tecla Option no teclado, clique no ícone WLAN e selecione "Open Wireless Diagnostics...":

Captura Mac WLAN

Na barra de menus Diagnósticos sem fio, selecione Window > Sniffer:

Sniffer de WLAN do Mac

Defina o canal e a largura para os valores recuperados anteriormente. O exemplo da captura de tela é para o canal 60 e a largura de 40 MHz:

Canal e largura de WLAN do Mac

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.

Em seguida, 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.

Capturar no Linux

  1. Desative o Wi-Fi. Para isso, faça o seguinte:

    • Como usar a GUI (recomendado)
    • Usando a CLI do Network Manager para pedir que ele pare de gerenciar a interface WLAN: sudo nmcli dev set <wlan-ifname> managed on
    • Se estiver usando um gerenciador de rede alternativo, ajuste conforme necessário.
  2. Salve esse script. Substitua <wlan-ifname> pelo nome da interface Wi-Fi. Neste documento, presume-se que o nome do script seja setup-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 $@
    
  3. Execute o script anterior e transmita o canal e a largura de banda mais alta para detectar, por exemplo, o canal 153 com largura de banda de 80 MHz:

    ./setup-wifi-capture chan 153 80 MHz
    
  4. Abra o Wireshark e agora poderá capturar pacotes na interface wlan.

3. Compartilhar a captura

  1. Use o Gerador de chave bruta (WPA PSK (chave bruta) para gerar um hash da sua senha. Isso permite descriptografar a captura sem saber a senha em texto simples.

  2. Também é necessário compartilhar a PSK gerada 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 dele on-line no site do Wireshark.

Configurar o Wireshark para descriptografar o tráfego

Isso não é necessário para compartilhar arquivos de captura, faça-o 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 handshake de quatro vias, que você precisa capturar para descriptografar pacotes. No entanto, se você só estiver tentando capturar problemas com a conexão ao Wi-Fi ou quedas na conectividade, que podem ser extraídos de frames de gerenciamento de Wi-Fi, não é necessário capturar o handshake de quatro vias. Em ambos os casos, não faz mal capturá-lo de qualquer maneira.

Abra o Wireshark e a página "Preferences" (menu do Wireshark > Preferences ou **Cmd + , **).

  1. Encontre a seção "IEEE 802.11" na categoria "Protocolos" e verifique se a opção "Ativar descriptografia" está marcada:

    Preferências do Mac Wireshark

  2. Clique no botão Editar ao lado do rótulo Chaves de descriptografia.

  3. Clique no botão "+" no canto inferior esquerdo e selecione a opção "wpa-pwd".

    WPA e senha do Mac Wireshark

  4. Clique na coluna de chave da linha recém-criada (ao lado da string wpa-pwd), digitando o PSK e o SSID do WPA2 no formato <password>:<ssid>. Por exemplo, se o nome da rede for MyHomeNetwork e o WPA2 PSK for myp4ssword, digite myp4ssword:MyHomeNetwork.

    SSID do Wireshark do Mac

  5. 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 estiver usando tshark, transmita os seguintes argumentos:

tshark -o wlan.enable_decryption:TRUE -o 'uat:80211_keys:"wpa-pwd","<psk>:<ssid>"'

Colorizar dados do Wireshark 802.11

Há um perfil de cores 802.11, localizado em metageek.com: Wireshark Configuration Profile.