Capturar tráfego WLAN

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:

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

  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 o nome "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 o Wifiman ou o 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 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…":

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

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 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.
  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 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 + , **).

  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.