Capturar tráfego WLAN

A captura de pacotes de Wi-Fi permite que você veja detalhes e interações que, de outra forma, seriam mascarados antes de chegarem ao software em execução em um dispositivo. Isso torna essas capturas uma ferramenta importante para alguns tipos de bugs.

As principais etapas envolvidas são:

  1. Encontre o canal certo para monitorar.
  2. Capture o tráfego.
  3. Compartilhar 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 são 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, nó de malha) na sua rede normalmente tem um canal exclusivo de 2,4 GHz e um de 5 GHz.Você precisa descobrir a qual deles o dispositivo está conectado. Há várias opções:

Usar o painel de controle do roteador

Se você usa o Nest WiFi, pule esta opção. As informações não são expostas.

A maioria dos roteadores tem uma lista de dispositivos conectados e o canal e a largura que 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 etiqueta no roteador ou use o site Router Passwords (em inglês).
  4. Procure uma página com um nome como "clientes" ou "dispositivos conectados". Por exemplo, uma página de roteador Netgear pode ser semelhante à seguinte ou para dispositivos Eero.

    Visualização do cliente Netgear

  5. 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:

    Visualização de canais da Netgear

Use o Mac, se ele já estiver conectado ao mesmo canal.

Mantenha pressionada a tecla Option no teclado e clique no ícone de 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. Confira os itens de menu indisponíveis e procure aquele que menciona "Canal":

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

WLAN do Mac

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

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

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

    a. Recomendado: com um smartphone Android, você pode 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 as opções.

  2. Faça uma captura curta (até 15 segundos é suficiente) em cada um desses canais, seguindo 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: capturar o handshake de quatro vias

Se a segurança estiver ativada para o 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, você PRECISA capturar o handshake de quatro vias para descriptografar payloads de Wi-Fi. Se o dispositivo já estiver conectado à rede quando você iniciar a captura, desconecte e reconecte o dispositivo (ou reinicie-o) depois que a detecção começar.

Capturar no Mac

Enquanto mantém pressionada a tecla Option no teclado, clique no ícone de WLAN e selecione "Abrir Diagnóstico de Rede sem Fio…":

Captura de WLAN do Mac

Na barra de menus do Diagnóstico de Rede sem Fio, selecione Window > Sniffer:

Sniffer de WLAN para Mac

Defina o canal e a largura com os valores que você recuperou anteriormente (o exemplo da captura de tela é para o canal 60 e a largura de 40 MHz):

Canal e largura da WLAN do Mac

Pressione Start e digite sua senha. Agora, tente reproduzir o problema. Capture o handshake de 4 vias de uma conexão, conforme indicado em Como capturar o handshake de 4 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.

Capturar no Linux

  1. Desative o Wi-Fi. Para isso, siga umas destas orientações:

    • Como usar a GUI (recomendado)
    • Usar a CLI do Network Manager para interromper o gerenciamento da interface WLAN: sudo nmcli dev set <wlan-ifname> managed on
    • Se estiver usando um gerenciador de rede alternativo, ajuste conforme necessário.
  2. Salve o script. Substitua <wlan-ifname> pelo nome da interface Wi-Fi. Este documento pressupõe 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 maior largura de banda para sniff, por exemplo, o canal 153 com largura de banda de 80 MHz:

    ./setup-wifi-capture chan 153 80 MHz
  4. Abra o Wireshark. Agora você pode capturar pacotes na interface da WLAN.

3. Compartilhar a captura

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

  2. Você também precisa compartilhar a PSK gerada para que outras pessoas possam descriptografar a captura.

Apêndice

Instalar o Wireshark

Para instalar o Wireshark, use apt install wireshark no Linux ou faça o download on-line no site do Wireshark.

Configurar o Wireshark para descriptografar o tráfego

Isso não é necessário para compartilhar os 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 de tráfego. Ele é usado em um handshake de quatro vias, que você precisa capturar para descriptografar pacotes. No entanto, se você estiver tentando capturar apenas problemas de conexão com o Wi-Fi ou quedas de conectividade, que podem ser coletados de frames de gerenciamento de Wi-Fi, não é necessário capturar o handshake de quatro vias. Em ambos os casos, não custa nada capturar o erro.

Abra o Wireshark e acesse a página "Preferências" (menu do Wireshark > Preferências 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 Wireshark para Mac

  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 Wireshark para Mac

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

    SSID do Wireshark para Mac

  5. Clique em OK para confirmar.

Para mais informações, consulte o guia oficial do Wireshark (com capturas de tela) em Como descriptografar o 802.11.

Se 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 cores 802.11 útil localizado em metageek.com: Perfil de configuração do Wireshark.