Aplicar Filtros de Captura do Wireshark para Análise de Tráfego de Rede

WiresharkBeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá como utilizar filtros de captura do Wireshark para capturar seletivamente o tráfego de rede de acordo com critérios específicos. Os filtros de captura são ferramentas poderosas que permitem concentrar-se em dados relevantes e eliminar o tráfego irrelevante, tornando sua análise mais eficiente.

Você explorará diferentes expressões de filtro de captura e as aplicará a cenários do mundo real. Essa experiência prática aprimorará suas habilidades em solução de problemas de rede e análise de segurança.

Este é um Lab Guiado, que fornece instruções passo a passo para ajudá-lo a aprender e praticar. Siga as instruções cuidadosamente para completar cada etapa e ganhar experiência prática. Dados históricos mostram que este é um laboratório de nível iniciante com uma taxa de conclusão de 80%. Recebeu uma taxa de avaliações positivas de 95% dos estudantes.

Entendendo a Sintaxe dos Filtros de Captura

No mundo da análise de rede, lidar com uma grande quantidade de dados pode ser avassalador. É aí que os filtros de captura do Wireshark são úteis. Os filtros de captura permitem que você colete apenas pacotes específicos que correspondam aos seus critérios. Isso reduz significativamente o volume de dados que você precisa analisar. É importante notar que os filtros de captura são diferentes dos filtros de exibição. Os filtros de exibição são usados para filtrar pacotes já capturados, enquanto os filtros de captura funcionam durante o processo de captura de pacotes.

O que são Filtros de Captura

Os filtros de captura usam a sintaxe do Berkeley Packet Filter (BPF). BPF é uma linguagem especializada projetada para filtrar pacotes de rede antes que sejam processados por aplicativos como o Wireshark. Ao aplicar esses filtros, você pode atingir vários objetivos importantes:

  • Reduzir a quantidade de dados capturados: Em vez de capturar todo o tráfego de rede, você pode se concentrar nas partes relevantes, o que economiza espaço de armazenamento e poder de processamento.
  • Concentrar-se em tipos específicos de tráfego: Você pode direcionar tipos específicos de atividade de rede, como solicitações HTTP ou conexões SSH.
  • Melhorar o desempenho durante a captura de pacotes: Com menos dados para lidar, o processo de captura de pacotes se torna mais rápido e eficiente.
  • Simplificar a análise subsequente: Quando você tem um conjunto de dados menor e mais relevante, é muito mais fácil analisar e tirar conclusões.

Sintaxe Básica do Filtro de Captura

Os filtros de captura no Wireshark usam uma sintaxe específica baseada na linguagem de filtro libpcap. Vamos dar uma olhada em alguns elementos comuns:

  • host: Este elemento filtra o tráfego com base no endereço IP ou nome do host. Por exemplo, se você usar o filtro host 192.168.0.2, o Wireshark capturará todo o tráfego de ou para o endereço IP especificado.
  • net: Ele filtra o tráfego com base em um endereço de rede e máscara de sub-rede. Por exemplo, o filtro net 10.0.0.0/24 capturará o tráfego da rede 10.0.0.0/24.
  • port: Este filtra o tráfego com base no número da porta. Por exemplo, port 80 é usado para capturar tráfego HTTP porque o HTTP normalmente usa a porta 80.
  • protocol: Ele filtra o tráfego com base no protocolo. Por exemplo, tcp capturará todo o tráfego TCP e udp capturará todo o tráfego UDP.

Você pode combinar esses elementos usando operadores lógicos:

  • and ou &&: Quando você usa este operador, ambas as condições devem ser verdadeiras para que um pacote seja capturado.
  • or ou ||: Com este operador, qualquer uma das condições pode ser verdadeira para que um pacote seja capturado.
  • not ou !: Este operador nega uma condição. Portanto, se você usar not tcp, ele capturará todo o tráfego não-TCP.

Vamos Praticar com um Filtro Simples

Agora, vamos colocar em prática o que aprendemos. Siga estas etapas para abrir o Wireshark e aplicar um filtro de captura básico:

  1. Primeiro, você precisa abrir um terminal. Você pode fazer isso clicando no ícone do terminal na barra de tarefas da área de trabalho ou pressionando Ctrl+Alt+T.

  2. Depois que o terminal estiver aberto, digite o seguinte comando para iniciar o Wireshark:

    wireshark
  3. Quando o Wireshark abrir, você verá a tela inicial principal. Esta tela mostra todas as interfaces de rede disponíveis em seu sistema.

  4. Procure o campo de entrada "Capture Filter:" na parte superior da janela do Wireshark. É aqui que você inserirá seu filtro de captura.

    Wireshark capture filter syntax
  5. Digite tcp na caixa de filtro. Ao fazer isso, você está dizendo ao Wireshark para capturar apenas pacotes TCP.

  6. Da lista de interfaces, escolha a rotulada como any. Selecionar any significa que o Wireshark capturará pacotes em todas as interfaces de rede.

  7. Clique no botão azul com a barbatana de tubarão Start. Isso iniciará o processo de captura de pacotes com o filtro que você aplicou.

    Capture filter
  8. Deixe o Wireshark rodar por cerca de 10 a 15 segundos. Durante esse tempo, ele capturará alguns pacotes TCP. Você deve começar a ver pacotes aparecendo na janela principal.

  9. Para interromper a captura, clique no botão vermelho quadrado Stop na barra de ferramentas.

  10. Agora, você deseja salvar os pacotes capturados para análise posterior. Clique em File > Save As na barra de menu.

  11. Na caixa de diálogo de salvamento de arquivo, navegue até o diretório /home/labex/project.

  12. Digite step1.pcapng como o nome do arquivo e clique em Save.

    Save captured packets

Você agora aplicou com sucesso um filtro de captura básico para coletar apenas pacotes TCP e salvou os resultados para análise posterior.

Aplicando Filtros de Captura para Tráfego Específico

Nesta etapa, vamos nos concentrar em capturar tráfego de rede específico. Especificamente, você aprenderá como aplicar um filtro de captura mais específico para capturar tráfego HTTP na porta 80. O tráfego HTTP na porta 80 é muito comum na internet, pois é usado para comunicação web não criptografada. Após configurar o filtro, você usará um script para gerar algum tráfego de teste. Isso o ajudará a ver como o filtro funciona em um cenário do mundo real.

Criando uma Nova Captura com um Filtro Específico

Primeiro, vamos configurar uma nova captura com um filtro para a porta 80. Antes de iniciarmos uma nova captura, precisamos garantir que não haja capturas anteriores abertas.

  1. Se você ainda tiver a captura anterior aberta, feche-a clicando em File > Close ou clicando no botão Close this capture file (X) no canto superior direito da lista de pacotes. Esta etapa é importante porque ter várias capturas abertas pode causar confusão e afetar a precisão de sua nova captura.

    Close this capture file
  2. Assim que você fechar a captura anterior, deverá ver a tela de boas-vindas do Wireshark mostrando as interfaces disponíveis. Esta tela é onde você começará a configurar sua nova captura.

  3. Usaremos um método mais detalhado para definir o filtro de captura desta vez. Clique no botão Capture Options (ou vá para Capture > Options no menu). A caixa de diálogo Capture Options oferece mais controle sobre como o Wireshark captura pacotes, incluindo a definição do filtro de captura.

    Capture filter
  4. Na caixa de diálogo Capture Options, você verá uma lista de interfaces e uma caixa de entrada Capture Filter na parte inferior. As interfaces representam as conexões de rede disponíveis em seu sistema, e a caixa Capture Filter é onde você especificará as condições para os pacotes que deseja capturar.

    Capture filter
  5. Clique na caixa Capture Filter e insira o filtro: tcp port 80. Este filtro capturará apenas tráfego TCP que usa a porta 80. Ao especificar tcp port 80, estamos sendo mais específicos do que apenas usar port 80 - estamos dizendo ao Wireshark para capturar apenas pacotes TCP relacionados ao tráfego HTTP nesta porta, excluindo qualquer tráfego UDP que também possa usar a porta 80. Isso é mais preciso para análise de tráfego HTTP, pois o HTTP geralmente usa TCP como seu protocolo de transporte.

  6. Alternativamente, você pode clicar no botão Capture Filter: para selecionar entre favoritos de filtro salvos. Isso pode ser útil se você tiver um conjunto de filtros que usa com frequência.

    Capture filter
  7. Na caixa de diálogo de seleção de filtro, você pode escolher entre filtros predefinidos ou criar um novo. Por enquanto, basta inserir port 80 diretamente na caixa de filtro. Isso garante que estamos capturando o tráfego específico em que estamos interessados.

    Capture filter
  8. Certifique-se de que a interface any esteja selecionada e clique no botão Start para começar a capturar pacotes que correspondam ao filtro. Selecionar any significa que o Wireshark capturará pacotes de todas as interfaces de rede disponíveis.

Gerando Tráfego de Teste

Agora que o Wireshark está capturando tráfego na porta 80, vamos gerar algum tráfego de teste para ver o filtro em ação. Isso o ajudará a confirmar que o filtro está funcionando como esperado.

  1. Abra uma nova janela de terminal clicando no ícone do terminal na barra de tarefas ou pressionando Ctrl+Alt+T. O terminal é onde você executará comandos para gerar o tráfego de teste.

  2. Na nova janela do terminal, navegue até o diretório do projeto:

    cd /home/labex/project

    Este comando muda o diretório de trabalho atual para o diretório do projeto onde o script para gerar tráfego está localizado.

  3. Execute o script pré-criado para gerar tráfego HTTP simulado:

    ./simulate_traffic.sh

    Este script foi projetado para criar um servidor simples ouvindo na porta 80 e enviar alguns dados para ele, simulando o tráfego HTTP do mundo real.

  4. Você deverá ver uma saída semelhante a esta:

    Netcat server listening on port 80...
    Sending data to port 80...
    Please check the Wireshark output for the data sent to port 80.

    Esta saída indica que o script está funcionando corretamente e que os dados estão sendo enviados para a porta 80.

  5. Este script cria um servidor simples ouvindo na porta 80 e envia uma curta mensagem "Hello, Wireshark!" para ele. Esta mensagem será capturada pelo Wireshark se o filtro estiver funcionando corretamente.

Analisando o Tráfego Capturado

  1. Retorne à janela do Wireshark. Você deverá ver os pacotes que foram gerados pelo script. Estes pacotes são o resultado do tráfego de teste que acabamos de gerar.

  2. Estes pacotes devem mostrar comunicação na porta 80, correspondendo ao nosso filtro de captura. Isso confirma que o filtro está funcionando como esperado.

    Capture port 80
  3. Na lista de pacotes, você deverá ver pelo menos 3 pacotes:

    • Pacote TCP SYN para estabelecer a conexão: Este é o primeiro passo no handshake de três vias do TCP, onde o cliente solicita o estabelecimento de uma conexão com o servidor.
    • Pacote TCP SYN-ACK para reconhecer a conexão: O servidor responde à solicitação SYN do cliente, indicando que está pronto para estabelecer uma conexão.
    • Pacote TCP contendo os dados "Hello, Wireshark!": Este é o pacote de dados real que contém a mensagem enviada pelo script.
  4. Clique em um dos pacotes para ver seus detalhes no painel do meio. Você pode expandir seções clicando nos ícones de seta. Isso permite que você visualize as diferentes partes do pacote, como os cabeçalhos e os dados.

  5. Agora pare a captura clicando no botão vermelho quadrado Stop na barra de ferramentas. Parar a captura é importante para que você possa começar a analisar os pacotes capturados sem que novos pacotes sejam adicionados.

  6. Salve os pacotes capturados clicando em File > Save As na barra de menu. Salvar os pacotes permite que você os consulte posteriormente para análise adicional.

  7. Navegue até o diretório /home/labex/project na caixa de diálogo de salvamento de arquivos. Este é o diretório onde queremos armazenar os pacotes capturados.

  8. Insira step2.pcapng como nome do arquivo e clique em Save. O formato de arquivo .pcapng é um formato comum para armazenar capturas de pacotes de rede.

Você aplicou com sucesso um filtro de captura específico para coletar apenas tráfego na porta 80 e observou tráfego real que corresponde a este filtro.

Analisando o Tráfego Capturado com Filtros de Exibição

Nesta etapa, vamos aprender como usar filtros de exibição para analisar o tráfego que você já capturou. Antes de começarmos, é importante entender a diferença entre filtros de captura e filtros de exibição. Os filtros de captura são usados para decidir qual tráfego é coletado em primeiro lugar. Os filtros de exibição, por outro lado, permitem que você se concentre em partes específicas dos pacotes que já foram capturados. Eles são como uma lupa para seus dados capturados, ajudando você a se concentrar nos detalhes que lhe interessam.

Compreendendo a Diferença entre Filtros de Captura e Exibição

Vamos dar uma olhada mais de perto na diferença entre filtros de captura e exibição.

  • Filtros de captura são aplicados antes que os pacotes sejam gravados. Eles usam a sintaxe do Berkeley Packet Filter (BPF). Pense nos filtros de captura como um porteiro na entrada. Eles decidem quais pacotes podem entrar e ser capturados.
  • Filtros de exibição são aplicados aos pacotes que já foram capturados. Eles usam a própria sintaxe do Wireshark. Os filtros de exibição são como um holofote que destaca pacotes específicos entre aqueles que já foram capturados.
  • Os filtros de exibição são mais poderosos e flexíveis do que os filtros de captura. Eles permitem que você execute pesquisas e análises mais complexas nos dados capturados.
  • Os filtros de exibição não reduzem a quantidade de dados capturados. Eles apenas controlam o que é mostrado na interface. Portanto, os dados capturados originais permanecem intactos, e você pode alterar o filtro de exibição quantas vezes quiser para visualizar diferentes aspectos dos dados.

Abrindo Seu Arquivo Capturado

Agora, vamos abrir o arquivo que contém os pacotes que você capturou anteriormente.

  1. Se você ainda tiver o Wireshark aberto da etapa anterior, pode prosseguir diretamente. Caso contrário, abra o Wireshark e, em seguida, abra o arquivo que você salvou na Etapa 2.
  2. Para abrir um arquivo salvo anteriormente no Wireshark:
    • Clique em File > Open na barra de menu. Esta é uma maneira comum de acessar arquivos em muitos aplicativos de software.
    • Navegue até o diretório /home/labex/project. É aqui que o arquivo capturado é armazenado.
    • Selecione o arquivo step2.pcapng e clique em Open. O formato de arquivo .pcapng é comumente usado para armazenar dados de pacotes de rede.
  3. Depois de abrir o arquivo, você deve ver os pacotes que capturou na Etapa 2 exibidos no Wireshark. Estes são os dados que analisaremos usando filtros de exibição.

Aplicando Filtros de Exibição

Em seguida, aplicaremos filtros de exibição aos pacotes capturados.

  1. Localize a barra de ferramentas de filtro de exibição na parte superior da janela do Wireshark. Isso é diferente do filtro de captura que você usou anteriormente. Ele tem um fundo verde claro quando está ativo. A barra de ferramentas de filtro de exibição é onde você inserirá as expressões de filtro para mostrar pacotes específicos.

  2. No campo de filtro de exibição, digite tcp e pressione Enter ou clique no botão de seta para a direita. Ao digitar tcp, estamos dizendo ao Wireshark para mostrar apenas os pacotes que usam o protocolo TCP. Isso mostrará apenas pacotes TCP na exibição, filtrando quaisquer outros pacotes de protocolo, se existirem.

  3. Observe como os pacotes são filtrados imediatamente na exibição sem exigir uma nova captura. Esta é uma das vantagens de usar filtros de exibição. Você pode analisar rapidamente diferentes aspectos dos dados capturados sem ter que capturar o tráfego novamente.

  4. Agora, vamos tentar um filtro de exibição mais específico. Limpe o filtro atual clicando no botão X no lado direito da barra de filtro. Isso removerá o filtro anterior e mostrará todos os pacotes capturados novamente.

  5. Insira o seguinte filtro para exibir pacotes contendo a palavra "Wireshark":

    frame contains "Wireshark"

    Este filtro pesquisa a palavra "Wireshark" nos dados do quadro dos pacotes.

  6. Pressione Enter ou clique na seta para a direita para aplicar o filtro.

    Display filter
  7. Você deve ver apenas os pacotes que contêm o texto "Wireshark" - provavelmente apenas um ou dois pacotes que contêm nossa mensagem "Hello, Wireshark!". Isso mostra como os filtros de exibição podem ser usados para encontrar informações específicas dentro dos pacotes capturados.

  8. Se você clicar em um desses pacotes na lista de pacotes, poderá ver seus detalhes no painel do meio. Procure a seção "Data", que deve mostrar o texto "Hello, Wireshark!". Isso permite que você examine o conteúdo dos pacotes com mais detalhes.

Criando um Relatório

Agora que você analisou o tráfego usando filtros de exibição, vamos criar um relatório simples documentando o que você encontrou.

  1. Conte o número de pacotes que correspondem ao filtro frame contains "Wireshark". O número deve ser exibido na barra de status na parte inferior da janela do Wireshark, mostrando algo como "Displayed: X of Y packets". Este número representa o número de pacotes que contêm a palavra "Wireshark".

  2. Abra uma janela do terminal clicando no ícone do terminal na barra de tarefas ou pressionando Ctrl+Alt+T. O terminal é uma ferramenta poderosa que permite executar comandos em seu computador.

  3. No terminal, crie um arquivo de relatório com as informações da contagem de pacotes:

    echo "Number of packets matching the filter expression: 1" > /home/labex/project/report.txt

    Observação: Substitua 1 no comando acima pelo número real de pacotes que você observou correspondendo ao filtro. Este número pode variar dependendo de como o script foi executado.

    Save report

Você agora aplicou com sucesso filtros de exibição para analisar o tráfego de rede capturado e documentou suas descobertas em um arquivo de relatório.

Resumo

Neste laboratório, você aprendeu como usar filtros de captura do Wireshark para capturar e analisar seletivamente o tráfego de rede de acordo com critérios específicos. Você praticou habilidades-chave, como entender a sintaxe básica dos filtros de captura com base na linguagem Berkeley Packet Filter, aplicá-los durante capturas ao vivo e distinguir entre filtros de captura e exibição.

Essas habilidades são cruciais para administradores de rede, analistas de segurança e profissionais de TI que lidam com problemas de rede ou incidentes de segurança. Dominar os filtros de captura permite uma análise de rede mais eficiente, concentrando-se no tráfego relevante. À medida que você avança na análise de rede, pode construir sobre essas habilidades para criar filtros complexos para seleção de tráfego sofisticada em ambientes complexos.