Capturar tráfego WLAN

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

As principais etapas são:

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

1. Determinar o canal e a largura corretos

As redes WLAN operam em:

  • canal, normalmente referido com um número. 1 a 13 é para canais de 2,4 GHz, de 36 a 200 para canais de 5 GHz
  • com largura específica (20 Mhz, 40 Mhz, 80 Mhz ou 160 MHz)

Cada ponto de acesso (por exemplo, roteador ou nó da rede mesh) na rede geralmente tem um canal exclusivo de 2,4 GHz e um canal de 5 GHz, e você precisa encontrar a que o dispositivo está conectado. Há várias opções:

Usar o painel de controle do roteador

Se você usa Nest WiFi, pule esta opção. A informação não vai ser exposta.

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 do roteador.
  4. Procure uma página com o nome "clientes" ou "dispositivos conectados". Por exemplo, a página do roteador Netgear pode ser semelhante à mostrada a seguir ou para dispositivos Eero.

    Visualização do cliente Netgear

  5. Talvez seja necessário procurar outras informações 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 pressionada a tecla Option no teclado 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 aquele que menciona o 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 o seguinte:

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

    a. Recomendado: com um smartphone Android, você pode usar um app como o Wifiman ou o Aruba Utilitários.

    a. Em um Mac, use /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, seguindo as instruções abaixo.

  3. Instale o Wireshark (para assistência, 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 é exibido.

2. Iniciar a captura

Importante: captura do 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 exclusivos para cada conexão entre um dispositivo e o AP.

Por isso, é NECESSÁRIO 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 o dispositivo (ou o reinicie) quando a detecção for iniciada.

Capturar no Mac

Enquanto mantém a tecla Option no teclado pressionada, clique no ícone WLAN e, em seguida, selecione "Open Wireless Diagnostics...":

Captura WLAN do Mac

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

Sniffer para Mac WLAN

Defina o canal e a largura com os valores recuperados anteriormente (o exemplo da captura de tela é para o Canal 60 e a largura de 40 MHz):

Canal WLAN do Mac e largura

Pressione Start e digite sua senha. Agora, tente reproduzir o problema. Captura 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.

Capturar no Linux

  1. Desative o Wi-Fi. Isso pode ser feito das seguintes formas:

    • 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, faça os ajustes necessários.
  2. Salve esse script. Substitua <wlan-ifname> pelo nome da interface Wi-Fi. Neste documento, o nome do script é 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 para capturar pacotes na interface wlan.

3. Compartilhar a captura

  1. Use o Gerador de chave bruta WPA PSK para gerar um hash da sua senha. Assim, é possível descriptografar a captura sem saber sua senha em texto simples.

  2. Também é necessário compartilhar o PSK gerado para que outras pessoas possam descriptografar a captura.

Apêndice

Instalar o Wireshark

É possível instalar o Wireshark usando o comando 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 os arquivos de captura. Faça isso apenas se você 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 apenas tentando capturar problemas com a conexão ao Wi-Fi ou quedas na conectividade, que podem ser extraídas dos frames de gerenciamento de Wi-Fi, não será 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 de 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 no 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 Mac Wireshark

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

    SSID do Mac Wireshark

  5. Clique em OK para confirmar

Para mais informações, consulte o guia oficial do Wireshark (com capturas de tela) em How to Decrypt 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 cor 802.11 útil localizado em metageek.com: Wireshark Configuration Profile.