Capturar tráfego WLAN

A captura de pacotes de Wi-Fi permite que você veja detalhes e interações que, de outra forma, 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:

  1. Encontre o canal certo para detectar.
  2. Capture o tráfego.
  3. 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 em 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.

  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 a senha? Procure uma tag no roteador ou use as senhas do roteador.
  4. Procure uma página com um nome como "clientes" ou "dispositivos conectados". Por exemplo, a página de um roteador Netgear pode ser semelhante a esta, 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 dos canais da 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)`

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 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 Wifiman ou Aruba Utilities.

    a. Em um Mac, use /System/Library/PrivateFrameworks/Apple80211.framework/Resources/airport-s para listar opções.

  2. Faça uma captura curta (até 15 segundos) 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 verifique 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…":

Captura de WLAN do Mac

Na barra de menus do Wireless Diagnostics, selecione Window > Sniffer:

Sniffer de WLAN do Mac

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:

Canal e largura do 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 indicado 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

  1. Desative o Wi-Fi. Para fazer isso, siga um destes procedimentos:

    • 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.
  2. Salve o script. Substitua <wlan-ifname> pelo nome da interface Wi-Fi. Neste documento, presumimos 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 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 capture pacotes na interface wlan.

3. Compartilhar a captura

  1. 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.

  2. 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 tudo o que você está tentando capturar são 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 é 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 + , **).

  1. Encontre a seção "IEEE 802.11" na categoria "Protocols" e verifique se a opção "Enable decryption" está marcada:

    Prefs 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) e digite 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 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 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.