Filtrar tráfego no Wireshark

WiresharkBeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá a filtrar o tráfego de rede usando o Wireshark, uma ferramenta essencial para análise de redes. Você praticará a análise de um arquivo de captura de pacotes pré-capturado, aplicará filtros de exibição para isolar tráfego específico e exportará os resultados para uma análise mais detalhada. Essas habilidades ajudarão você a identificar padrões de rede, solucionar problemas de conectividade e entender as comunicações na rede.

Primeiros passos com o Tshark

Antes de usar a interface gráfica, você começará com o tshark, a versão de linha de comando do Wireshark. Ele é uma ferramenta poderosa para análises rápidas e criação de scripts. Nesta etapa, você verificará a instalação e fará uma inspeção básica de um arquivo de captura de pacotes fornecido.

  1. Primeiro, verifique se o tshark está instalado corretamente consultando a versão.

    tshark --version
    

    Você deverá ver uma saída que indica as versões do Wireshark e do tshark, semelhante a esta:

    TShark (Wireshark) x.x.x (Git vx.x.x packaged as x.x.x-1)
    ...
    
  2. Um arquivo de captura de pacotes de exemplo chamado capture.pcap foi colocado no diretório do projeto. Use o comando ls para confirmar que ele está presente.

    ls -lh capture.pcap
    

    A saída mostrará os detalhes do arquivo, incluindo seu tamanho e nome.

    -rw-rw-r-- 1 labex labex 9.1M Oct 24  2015 capture.pcap
    
  3. Para obter um resumo geral do arquivo de captura, use o utilitário capinfos, que acompanha o Wireshark.

    capinfos capture.pcap
    

    Esse comando fornece metadados sobre o arquivo, como o número de pacotes, a duração da captura e o tamanho médio dos pacotes.

    File name:           capture.pcap
    File type:           Wireshark/tcpdump/... - pcap
    File encapsulation:  Ethernet
    File timestamp precision:  microseconds (6)
    Packet size limit:   file hdr: 65535 bytes
    Number of packets:   14 k
    File size:           9444 kB
    Data size:           9216 kB
    Capture duration:    298.505344 seconds
    First packet time:   2011-01-26 02:52:22.484409
    Last packet time:    2011-01-26 02:57:20.989753
    Data byte rate:      30 kBps
    Data bit rate:       247 kbps
    Average packet size: 646.28 bytes
    Average packet rate: 47 packets/s
    SHA256:              77d06d3f33f1a95fb9f2610f20ead8ce978449077d6ba22d4945b85bd48f75d1
    RIPEMD160:           68e950b2e438c7be011a46646ddfc8105b65b339
    SHA1:                06e502dca8dbfe8e6a9cabc61f722d94756f6db9
    Strict time order:   True
    Number of interfaces in file: 1
    Interface #0 info:
                         Encapsulation = Ethernet (1 - ether)
                         Capture length = 65535
                         Time precision = microseconds (6)
                         Time ticks per second = 1000000
                         Number of stat entries = 0
                         Number of packets = 14261
    
  4. Por fim, use o tshark para ler os cinco primeiros pacotes do arquivo. A opção -r especifica o arquivo de entrada, e -c limita a quantidade de pacotes.

    tshark -r capture.pcap -c 5
    

    O comando exibirá um resumo de uma linha para cada um dos cinco primeiros pacotes, oferecendo uma visão rápida do tráfego.

        1   0.000000 192.168.3.131 → 72.14.213.138 HTTP 997 GET /complete/search?client=chrome&hl=en-US&q=cr HTTP/1.1
        2   0.029841 72.14.213.138 → 192.168.3.131 HTTP 440 HTTP/1.1 200 OK  (text/javascript)
        3   0.223883 192.168.3.131 → 72.14.213.102 TCP 66 55950 → 80 [SYN] Seq=0 Win=8192 Len=0 MSS=1460 WS=4 SACK_PERM=1
        4   0.229423 192.168.3.131 → 72.14.213.138 TCP 54 57011 → 80 [ACK] Seq=944 Ack=387 Win=16192 Len=0
        5   0.242649 72.14.213.102 → 192.168.3.131 TCP 66 80 → 55950 [SYN, ACK] Seq=0 Ack=1 Win=5720 Len=0 MSS=1430 SACK_PERM=1 WS=64
    

Filtragem básica com o Tshark

As capturas de pacotes podem conter milhares de pacotes, o que dificulta encontrar informações específicas. Os filtros de exibição são usados para restringir a visualização aos pacotes que atendem a determinados critérios. Nesta etapa, você aprenderá a aplicar filtros básicos usando o tshark.

  1. Os filtros de exibição são aplicados com a opção -Y (Y maiúsculo). Para visualizar apenas pacotes TCP, use o filtro tcp. Vamos visualizar os cinco primeiros pacotes TCP do arquivo.

    tshark -r capture.pcap -Y "tcp" -c 5
    

    A saída exibirá somente os pacotes cujo protocolo é TCP.

  2. Você também pode filtrar com base em endereços IP. Para visualizar todos os pacotes originados do endereço IP de origem 192.168.3.131, use o filtro ip.src.

    tshark -r capture.pcap -Y "ip.src == 192.168.3.131" -c 5
    

    Observe o uso de == para indicar uma correspondência exata.

  3. Os filtros podem ser combinados usando operadores lógicos, como && (AND). Para encontrar pacotes TCP provenientes do endereço IP de origem 192.168.3.131, combine os dois filtros anteriores.

    tshark -r capture.pcap -Y "tcp && ip.src == 192.168.3.131"
    
  4. Você pode salvar a saída filtrada em um novo arquivo de captura para análise posterior. A opção -w especifica o arquivo de saída. Vamos salvar os pacotes TCP filtrados em um arquivo chamado filtered_tcp.pcap.

    tshark -r capture.pcap -Y "tcp && ip.src == 192.168.3.131" -w filtered_tcp.pcap
    
  5. Verifique se o novo arquivo foi criado.

    ls -lh filtered_tcp.pcap
    

    O novo arquivo de captura, menor, deverá aparecer na lista do diretório.

Explorando o tráfego com a interface gráfica do Wireshark

Embora o tshark seja excelente para automação, a interface gráfica do usuário (GUI) do Wireshark oferece um ambiente interativo completo para análise detalhada de pacotes. Nesta etapa, você iniciará a GUI do Wireshark e explorará seus principais componentes.

  1. Inicie o aplicativo Wireshark pelo terminal. Importante: certifique-se de usar a Desktop Interface, e não uma standalone Terminal Interface, pois o Wireshark é um aplicativo GUI que precisa de um ambiente gráfico para funcionar corretamente. O caractere & no final executa o aplicativo em segundo plano e libera o terminal para outros comandos.

    wireshark &
    

    Mantenha o Wireshark aberto enquanto conclui esta etapa e executa a verificação da etapa.

    Observação: se você tentar executar esse comando em um terminal independente, sem um ambiente de desktop, o Wireshark não será iniciado. Use sempre a Desktop Interface para aplicativos GUI.

    Desktop Interface do Wireshark

  2. A janela principal do Wireshark será exibida. Como estamos analisando um arquivo existente, não é necessário selecionar uma interface de rede. Em vez disso, abra o arquivo capture.pcap.

    • Na barra de menus, clique em File -> Open....
    • Na caixa de diálogo de arquivo, navegue até /home/labex/project e selecione capture.pcap.
    • Clique no botão Open.
  3. A janela principal será preenchida com os pacotes do arquivo. Reserve um momento para conhecer os três painéis principais:

    Janela principal do Wireshark

    • Painel Packet List (parte superior): lista todos os pacotes da captura, com colunas para número do pacote, horário, origem, destino, protocolo e outras informações resumidas.
    • Painel Packet Details (parte central): exibição detalhada e expansível das camadas de protocolo do pacote atualmente selecionado no painel de lista. Você pode expandir cada camada, como Ethernet, IP e TCP, para visualizar seus campos.
    • Painel Packet Bytes (parte inferior): dados brutos do pacote selecionado, exibidos nos formatos hexadecimal e ASCII.
  4. Clique em diferentes pacotes no painel Packet List e observe como as informações nos painéis Packet Details e Packet Bytes são atualizadas. Essa exploração interativa é um dos recursos mais poderosos do Wireshark.

Aplicando filtros de exibição na GUI

A sintaxe de filtros de exibição que você aprendeu com o tshark funciona da mesma forma na GUI do Wireshark. A GUI fornece feedback visual imediato, facilitando a criação e o teste de filtros complexos.

  1. Localize a barra de filtros de exibição na parte superior da janela do Wireshark. Ela é um campo de texto longo que geralmente exibe "Apply a display filter..." como texto de espaço reservado.

  2. Vamos filtrar o tráfego HTTP. Digite http na barra de filtros e pressione Enter ou clique no botão Apply (uma seta à direita da barra).

    http
    

    Filtro HTTP do Wireshark

    O painel Packet List será atualizado imediatamente para mostrar apenas os pacotes HTTP. Observe que a barra de filtros fica verde, indicando uma sintaxe de filtro válida. Se você digitar um filtro inválido, ela ficará vermelha.

  3. Agora, vamos encontrar todo o tráfego DNS. Limpe o filtro anterior, digite dns na barra de filtros e pressione Enter.

    dns
    

    Você verá todas as consultas e respostas do Domain Name System na captura.

  4. Você pode combinar filtros da mesma forma que fez com o tshark. Para encontrar o tráfego HTTP que envolve o endereço IP 192.168.3.131, como origem ou destino, use o filtro ip.addr combinado com o filtro http.

    http && ip.addr == 192.168.3.131
    

    Filtro HTTP do Wireshark

    Essa combinação permite concentrar a análise em conversas específicas. Experimente outros filtros, como tcp.port == 80 (para tráfego na porta HTTP padrão) ou udp (para tráfego UDP). Para limpar um filtro e voltar a visualizar todos os pacotes, clique no botão X na barra de filtros.

Exportando dados filtrados

Depois de filtrar o tráfego para isolar um evento de interesse, muitas vezes é necessário exportar os resultados para geração de relatórios, compartilhamento ou análise posterior em outras ferramentas. O Wireshark e o tshark oferecem várias formas de exportar dados.

  1. Primeiro, na GUI do Wireshark, aplique o filtro http como na etapa anterior.

  2. Para salvar somente os pacotes exibidos (filtrados) em um novo arquivo de captura:

    • Acesse File -> Export Specified Packets....
    • Na caixa de diálogo, confirme que o botão de opção Displayed está selecionado em "All Packets".
    • Dê ao arquivo o nome http_capture.pcap e salve-o no diretório /home/labex/project.

    Exportar pacotes especificados no Wireshark

  3. Você também pode exportar o resumo dos pacotes como um arquivo de texto ou CSV. Para exportar como CSV:

    • Acesse File -> Export Packet Dissections -> As CSV....
    • Confirme que Displayed está selecionado em "All Packets".
    • Dê ao arquivo o nome http_packets.csv e salve-o no diretório do projeto.
  4. Você pode realizar as mesmas operações de exportação usando o tshark na linha de comando. Isso é útil para automação. O comando a seguir lê o arquivo capture.pcap original, filtra por http e exporta campos específicos para um arquivo CSV.

    tshark -r capture.pcap -Y "http" -T fields -e frame.number -e ip.src -e ip.dst -e http.request.method -e http.host -E header=y -E separator=, > http_export_cli.csv
    
    • -T fields: especifica o formato da saída.
    • -e ...: especifica os campos, ou colunas, a serem exportados.
    • -E header=y: adiciona uma linha de cabeçalho.
    • -E separator=,: usa uma vírgula como separador.
  5. Verifique se os arquivos exportados foram criados.

    ls -lh http_*
    

    Você deverá ver os arquivos http_capture.pcap, http_packets.csv e http_export_cli.csv no diretório.

Resumo

Neste laboratório, você aprendeu os fundamentos da filtragem de tráfego de rede com o Wireshark e sua versão de linha de comando, o tshark. Você começou inspecionando um arquivo de captura com tshark e capinfos. Em seguida, praticou a aplicação de filtros de exibição para isolar protocolos e endereços IP específicos, primeiro com o tshark e depois na GUI interativa do Wireshark. Por fim, aprendeu a exportar os resultados filtrados para novos arquivos de captura e arquivos CSV legíveis, destinados a relatórios e análises. Essas habilidades básicas são fundamentais para qualquer tarefa de análise de redes ou solução de problemas.