Analisar Tráfego de Rede com Filtros de Exibição do Wireshark

WiresharkBeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá como usar os filtros de exibição do Wireshark para analisar o tráfego de rede e identificar potenciais ameaças à segurança. O Wireshark, um poderoso analisador de protocolos de rede, pode capturar e dissecar pacotes de rede, o que é crucial para profissionais de segurança cibernética.

Ao dominar esses filtros, você poderá isolar e examinar rapidamente tipos específicos de tráfego. Isso agiliza sua análise e aumenta sua capacidade de detectar e lidar com incidentes de segurança.

Iniciando o Wireshark e Analisando o Tráfego de Rede

Nesta etapa, vamos começar a usar o Wireshark. Primeiro, você aprenderá como iniciá-lo. Em seguida, você capturará o tráfego de rede ou usará um arquivo de amostra fornecido para análise. Entender a interface do Wireshark é crucial, pois ajuda você a visualizar e analisar dados de pacotes.

Iniciando o Wireshark

Para iniciar o Wireshark, você precisa abrir uma janela de terminal. Você pode fazer isso clicando no ícone do terminal na barra de tarefas ou pressionando Ctrl+Alt+T. Depois que o terminal estiver aberto, você usará um comando para iniciar o Wireshark. No terminal, digite o seguinte comando e pressione Enter:

wireshark

Este comando diz ao seu sistema para iniciar o aplicativo Wireshark. Após alguns segundos, o Wireshark será aberto. Você deve ver uma janela semelhante à mostrada abaixo:

Exemplo da Interface Principal do Wireshark

Trabalhando com Arquivos de Captura de Rede

Para este laboratório, você tem duas opções:

Opção 1: Usar o Arquivo de Amostra Fornecido

Um arquivo de captura de amostra foi preparado para você em /home/labex/project/sample.pcapng. Este arquivo contém uma variedade de tráfego de rede que você pode analisar. Para abrir este arquivo:

  1. No Wireshark, vá para File > Open (Arquivo > Abrir)
  2. Navegue até /home/labex/project/sample.pcapng
  3. Clique em "Open" (Abrir)
Captura de tela do arquivo aberto do Wireshark

O arquivo será carregado no Wireshark, mostrando vários pacotes que foram capturados anteriormente.

Opção 2: Capturar Seu Próprio Tráfego

Se você preferir capturar seu próprio tráfego:

  1. Na janela principal do Wireshark, procure a lista de interfaces de rede disponíveis.

  2. Encontre a interface eth1. Neste ambiente de laboratório, eth1 é a interface de rede principal que usaremos para capturar pacotes.

  3. Dê um duplo clique em eth1. Esta ação inicia imediatamente o processo de captura de pacotes.

  4. Gere algum tráfego de rede abrindo um novo terminal e executando:

    curl www.google.com

    Nota: Usuários gratuitos não podem se conectar à internet. Faça o upgrade para a versão pro para capturar seu próprio tráfego.

  5. Depois de capturar pacotes suficientes (procure por pelo menos 20-30 pacotes), clique no botão vermelho "Stop" (Parar) na barra de ferramentas do Wireshark.

Entendendo a Interface do Wireshark

A interface do Wireshark é dividida em três painéis principais, cada um com um propósito específico:

  1. Lista de Pacotes (painel superior): Este painel mostra todos os pacotes que foram capturados na ordem em que foram recebidos. Ele fornece uma visão geral rápida do tráfego capturado.
  2. Detalhes do Pacote (painel do meio): Quando você seleciona um pacote no painel superior, este painel do meio mostra os detalhes desse pacote em um formato hierárquico. Ele detalha a estrutura do pacote, mostrando informações como os endereços IP de origem e destino, tipos de protocolo e muito mais.
  3. Bytes do Pacote (painel inferior): Este painel exibe os bytes brutos do pacote selecionado em formato hexadecimal. É útil para análise aprofundada, especialmente quando você precisa olhar para os dados exatos que estão sendo transmitidos.

Para ver como esses painéis funcionam juntos, clique em diferentes pacotes no painel superior. Você verá os detalhes correspondentes e os bytes brutos atualizados nos painéis do meio e inferior.

Compreendendo e Aplicando Filtros de Exibição Básicos

Nesta etapa, vamos explorar os filtros de exibição no Wireshark. Os filtros de exibição são ferramentas essenciais quando se trata de analisar o tráfego de rede. Eles ajudam você a se concentrar em tipos específicos de pacotes, em vez de ter que examinar todos os dados capturados. Ao final desta seção, você saberá o que são filtros de exibição, por que eles são úteis e como aplicar os básicos para isolar tipos específicos de tráfego de rede.

O Que São Filtros de Exibição

Ao analisar o tráfego de rede, olhar para cada pacote capturado pode ser avassalador. Você geralmente quer se concentrar em tipos específicos de pacotes. É aí que entram os filtros de exibição do Wireshark. Eles permitem que você mostre apenas os pacotes que atendem a certos critérios. Isso torna o processo de análise muito mais eficiente, porque você não está perdendo tempo com dados irrelevantes.

Os filtros de exibição no Wireshark usam uma sintaxe especial. Essa sintaxe permite que você filtre pacotes com base em vários atributos, como protocolos, endereços IP, portas e até mesmo o conteúdo dos pacotes. Entender essa sintaxe é fundamental para usar os filtros de exibição de forma eficaz.

Barra de Ferramentas de Filtro

Dê uma olhada na parte superior da janela do Wireshark. Você notará um campo de texto. Ele pode ser rotulado como "Apply a display filter..." (Aplicar um filtro de exibição...) ou simplesmente mostrar "Expression..." (Expressão...). Este é o local onde você inserirá seus filtros de exibição. Depois de inserir um filtro e pressionar Enter, o Wireshark usará esse filtro para mostrar apenas os pacotes relevantes.

Localização da Barra de Ferramentas de Filtro do Wireshark

Filtros de Protocolo Básicos

Vamos começar com um exemplo simples. Suponha que você queira visualizar apenas o tráfego HTTP. HTTP é o protocolo usado para navegação na web. Para fazer isso, você inserirá um filtro na barra de ferramentas de filtro. Digite o seguinte filtro e pressione Enter:

http
Saída do Filtro HTTP do Wireshark

Depois de aplicar este filtro, o Wireshark exibirá apenas pacotes HTTP. Todos os outros pacotes serão temporariamente ocultos. Você notará que a barra de filtro fica verde quando você aplica um filtro válido. Esta é uma indicação visual de que seu filtro está funcionando corretamente.

A saída agora deve mostrar apenas pacotes relacionados ao tráfego HTTP. Isso normalmente inclui solicitações da web (quando você pede informações a um site) e respostas (quando o site envia as informações para você). Se você não vir nenhum tráfego HTTP no arquivo de amostra, você pode tentar protocolos diferentes que podem estar presentes, como TCP, UDP ou DNS:

tcp

Ou tente gerar mais tráfego HTTP executando o comando curl em um terminal:

curl www.google.com

Filtros de Endereço IP

Em seguida, vamos filtrar o tráfego com base nos endereços IP. Um endereço IP é como um identificador exclusivo para um dispositivo em uma rede. Primeiro, olhe para sua lista de pacotes. Você verá colunas rotuladas como "Source" (Origem) e "Destination" (Destino). Essas colunas mostram os endereços IP dos dispositivos que enviam e recebem os pacotes.

Depois de identificar um endereço IP que aparece com frequência em sua captura (por exemplo, digamos que você veja 192.168.1.1), você pode usá-lo para criar um filtro. Digite o seguinte filtro na barra de ferramentas de filtro para ver apenas pacotes dessa origem:

ip.src == 192.168.3.131
Exemplo de Filtro de Endereço IP do Wireshark

Você pode substituir 192.168.3.131 por um endereço IP que você realmente vê em sua captura. Depois de aplicar este filtro, apenas os pacotes com esse endereço IP de origem serão mostrados.

Se você quiser ver todos os pacotes novamente, você pode limpar o filtro atual. Basta clicar no botão "Clear" (Limpar) (X) no lado direito da barra de filtro.

Filtros de Porta

Muitos serviços de rede operam em portas específicas. Uma porta é como uma porta em um dispositivo que permite que tipos específicos de tráfego de rede entrem ou saiam. Por exemplo, HTTP normalmente usa a porta 80. Para filtrar pacotes por número de porta, você pode usar o seguinte filtro:

tcp.port == 80

Este filtro mostrará pacotes de entrada e saída que usam a porta TCP 80. Você também pode tentar outras portas comuns, como 443 (HTTPS) ou 53 (DNS), dependendo do que está disponível em sua captura.

Combinando Filtros

Você pode tornar seus filtros mais poderosos combinando-os usando operadores lógicos como and (e) e or (ou). Por exemplo, se você quiser mostrar apenas o tráfego HTTP que usa a porta 80, você pode usar o seguinte filtro:

http and tcp.port == 80
Exemplo de filtro combinado no Wireshark

Tente aplicar diferentes combinações de filtros e observe como os pacotes exibidos mudam. Lembre-se, antes de tentar um novo filtro, você pode limpar o anterior clicando no botão "Clear" (Limpar) ou modificar o filtro existente diretamente na barra de filtro para construí-lo.

Técnicas Avançadas de Filtragem

Nesta etapa, exploraremos como criar filtros mais sofisticados para análise detalhada do tráfego de rede. Como iniciante, você pode se perguntar por que precisamos de filtragem avançada. Bem, em cenários do mundo real, os arquivos de captura de rede podem ser extremamente grandes, cheios de todos os tipos de tráfego. As técnicas avançadas de filtragem são como uma poderosa lupa para profissionais de segurança. Elas nos ajudam a escolher rapidamente o tráfego suspeito ou importante do mar de dados nesses grandes arquivos de captura.

Filtros Complexos com Múltiplas Condições

O Wireshark oferece a capacidade de construir filtros complexos combinando múltiplas condições. Isso é muito útil quando você deseja ser mais preciso em sua análise de tráfego. Vamos começar criando um filtro para encontrar solicitações HTTP GET.

http.request.method == "GET"

Este filtro foi projetado para exibir apenas pacotes HTTP que contêm solicitações GET. Ao aplicar este filtro, você verá pacotes que são solicitações enviadas para servidores web. A razão pela qual usamos este filtro é que as solicitações GET são um tipo comum de solicitação HTTP usada para recuperar dados de um servidor. Ao isolar essas solicitações, podemos nos concentrar nas atividades de recuperação de dados na rede.

Se o seu arquivo de amostra não contiver solicitações HTTP GET, tente este filtro alternativo para encontrar pacotes TCP SYN que indicam tentativas de conexão:

tcp.flags.syn == 1

Agora, vamos tornar nosso filtro mais específico. Adicionaremos uma condição de porta.

tcp.port == 80 and http.request.method == "GET"

Este novo filtro mostra apenas solicitações HTTP GET que ocorrem na porta HTTP padrão (80). A porta HTTP padrão é amplamente utilizada para tráfego web não criptografado. Ao adicionar esta condição de porta, estamos restringindo nossa pesquisa apenas àquelas solicitações GET que estão usando o canal de comunicação HTTP típico.

Filtragem com Base no Tamanho do Pacote

Ataques de rede geralmente envolvem pacotes com tamanhos incomuns. Os invasores podem usar pacotes grandes ou pequenos para ocultar dados maliciosos ou para interromper o funcionamento normal da rede. Para filtrar com base no tamanho do pacote, usamos uma sintaxe específica.

tcp.len >= 100 and tcp.len <= 500

Este filtro exibe pacotes TCP com um comprimento de payload entre 100 e 500 bytes. Você pode ajustar esses valores de acordo com suas necessidades. Por exemplo, se você suspeitar que um ataque envolve pacotes maiores, você pode aumentar o limite superior. Ao filtrar com base no tamanho do pacote, podemos identificar padrões de tráfego anormais que podem indicar um ataque.

Filtragem com Base em Conteúdo Específico

Você também pode filtrar o tráfego com base em conteúdo específico dentro dos pacotes. Isso é muito útil quando você está procurando tráfego relacionado a um site ou serviço específico. Por exemplo, vamos encontrar tráfego HTTP relacionado a um site específico.

http.host contains "google"
Filtro de Host HTTP do Wireshark

Este filtro mostra apenas o tráfego HTTP onde o cabeçalho do host contém "google". Você pode substituir "google" por qualquer domínio que você esteja interessado em analisar. O cabeçalho do host em uma solicitação HTTP informa ao servidor qual site o cliente está tentando acessar. Ao filtrar com base no cabeçalho do host, podemos nos concentrar no tráfego relacionado a um domínio específico.

Se o seu arquivo de amostra não tiver tráfego HTTP com cabeçalhos de host, tente este filtro de conteúdo mais geral:

frame contains "http"

Usando o Operador "contains" para Pesquisa de Texto

O operador contains é uma ferramenta útil para pesquisar strings de texto específicas em pacotes. Ele nos permite procurar certas palavras-chave dentro dos dados do pacote.

frame contains "password"

Este filtro mostra pacotes contendo a palavra "password" em qualquer lugar nos dados do pacote. Isso pode ser muito útil para detectar possíveis problemas de segurança. Por exemplo, se as senhas estiverem sendo enviadas em texto simples (o que é um grande risco de segurança), este filtro pode nos ajudar a detectar esses pacotes.

Ou tente este filtro:

frame contains "login"
Exemplo de Filtro de Senha do Wireshark

Negando Filtros

Às vezes, você pode querer ver todo o tráfego, exceto por certos tipos. É aí que entra o operador not.

not arp

Este filtro oculta todos os pacotes ARP. ARP (Address Resolution Protocol) é usado para mapear endereços IP para endereços MAC em uma rede local. Às vezes, o tráfego ARP pode ser muito comum e pode atrapalhar sua análise. Ao usar o operador not, podemos excluir este tipo de tráfego e nos concentrar em outros pacotes mais relevantes.

Salvando e Aplicando Marcadores de Filtro

Se você se encontrar usando certos filtros com frequência, você não precisa digitá-los toda vez. Você pode salvá-los como marcadores. Veja como:

  1. Insira um filtro na barra de filtro. É aqui que você digita as expressões de filtro que estamos aprendendo.
  2. Clique no botão "+" no lado direito da barra de filtro. Este botão é usado para salvar o filtro atual como um marcador.
  3. Dê um nome ao seu filtro e clique em "OK". Nomear o filtro facilita a identificação posterior.

Depois de salvar seu filtro, você pode aplicá-lo clicando em seu nome no menu suspenso do filtro. Isso economiza tempo e esforço, especialmente quando você está fazendo análises repetidas.

Exportando Pacotes Filtrados

Depois de filtrar seu tráfego para mostrar apenas os pacotes de interesse, você pode querer salvar apenas esses pacotes em um novo arquivo. Isso é útil para compartilhar descobertas específicas com colegas ou para análise posterior. Veja como você faz isso:

  1. Aplique seu filtro desejado. Certifique-se de ter configurado o filtro para mostrar apenas os pacotes que você deseja salvar.
  2. Clique em File > Export Specified Packets (Arquivo > Exportar Pacotes Especificados). Esta opção permite que você exporte um conjunto específico de pacotes.
  3. Certifique-se de que "Displayed" (Exibido) esteja selecionado na seção Packet Range (Intervalo de Pacotes). Isso garante que apenas os pacotes que estão atualmente visíveis (ou seja, aqueles que correspondem ao seu filtro) sejam exportados.
  4. Escolha um nome de arquivo e local. É aqui que você decide onde salvar o novo arquivo de captura e como nomeá-lo.
  5. Clique em "Save" (Salvar). Isso cria um novo arquivo de captura contendo apenas os pacotes que corresponderam ao seu filtro.

Análise de Tráfego Relacionado à Segurança

Nesta etapa, vamos nos concentrar em usar filtros do Wireshark para análise de segurança. A análise de segurança é crucial no mundo da segurança cibernética, pois nos ajuda a detectar atividades potencialmente maliciosas no tráfego de rede. Ao final desta seção, você será capaz de identificar vários tipos de ameaças à segurança usando filtros específicos do Wireshark.

Identificando Atividades de Varredura de Portas

A varredura de portas (port scanning) é uma técnica comum usada por invasores para coletar informações sobre um sistema alvo. Os invasores a usam para encontrar portas abertas em uma rede, que podem ser exploradas. Para detectar possíveis varreduras de portas, procuramos um grande número de tentativas de conexão de uma única origem para várias portas.

Vamos usar um filtro específico para identificar essas atividades. Tente este filtro no Wireshark:

tcp.flags.syn == 1 and tcp.flags.ack == 0

Este filtro mostra pacotes SYN sem a flag ACK. Em uma conexão TCP, o pacote SYN é o primeiro enviado para iniciar uma conexão, e o pacote ACK é usado para reconhecer a conexão. Quando vemos muitos pacotes SYN sem ACK de uma origem para diferentes portas de destino, é uma forte indicação de varredura de portas.

Detectando Tráfego DNS Suspeito

Túneis DNS e outros ataques baseados em DNS estão se tornando mais comuns. Esses ataques usam o protocolo DNS para ocultar atividades maliciosas, como exfiltração de dados ou comunicação de comando e controle. Para detectar esses ataques, precisamos procurar tráfego DNS incomum.

Use este filtro para examinar as consultas DNS:

dns

Depois de aplicar este filtro, procure nomes de domínio incomumente longos ou um alto volume de solicitações DNS para o mesmo domínio. Esses podem ser sinais de exfiltração de dados ou comunicação de comando e controle.

Identificando Tentativas de Força Bruta de Senha

Ataques de força bruta de senha são uma maneira comum para os invasores obterem acesso não autorizado a serviços como SSH ou FTP. Em um ataque de força bruta, o invasor tenta várias combinações de senha até encontrar a correta.

Para detectar possíveis tentativas de força bruta de senha, podemos filtrar as tentativas de login com falha. Use este filtro:

ftp contains "530" or ssh contains "Failed"

Este filtro mostra pacotes FTP e SSH que contêm mensagens comuns de resposta de falha. Se você vir várias falhas da mesma origem, isso pode indicar uma tentativa de força bruta.

Analisando Respostas de Erro HTTP

Ataques a aplicativos web geralmente geram respostas de erro HTTP. Os invasores podem tentar explorar vulnerabilidades em aplicativos web, e essas tentativas podem resultar em respostas de erro do servidor.

Filtre essas respostas de erro com:

http.response.code >= 400

Este filtro mostra pacotes de resposta HTTP com códigos de status de 400 ou superior. Todos esses códigos de status representam respostas de erro. Ao examinar esses pacotes, podemos identificar tentativas de exploração web.

Encontrando Credenciais em Texto Simples

Transmitir credenciais em texto simples é um grande risco de segurança. Se um invasor interceptar essas credenciais, ele poderá obter acesso não autorizado ao sistema.

Para detectar credenciais em texto simples, use este filtro:

http contains "user" or http contains "pass" or http contains "login"
Filtro de Credenciais em Texto Simples do Wireshark

Este filtro nos ajuda a encontrar tráfego HTTP que pode conter informações de login. Examine cuidadosamente os pacotes que correspondem a este filtro para identificar possíveis riscos de segurança.

Cenário Prático: Analisando Tráfego de Amostra e Gerando Novo Tráfego

Agora que você aprendeu vários filtros focados em segurança, é hora de colocar seu conhecimento em prática. Você pode analisar o arquivo de amostra fornecido ou gerar e analisar novo tráfego.

Analisando o Arquivo de Amostra

  1. Se você estiver usando o arquivo de amostra fornecido (/home/labex/project/sample.pcapng), tente aplicar alguns dos filtros de segurança que discutimos para identificar quaisquer padrões interessantes:
tcp.flags.syn == 1 and tcp.flags.ack == 0
  1. Procure padrões que possam indicar varredura, conexões suspeitas ou outras preocupações de segurança.

Gerando e Analisando Novo Tráfego

  1. Alternativamente, abra uma nova janela de terminal. Nesta janela, vamos gerar algum tráfego HTTP com várias solicitações. Execute os seguintes comandos:
for i in {1..5}; do
  curl -I www.google.com
  sleep 1
done

Esses comandos enviam cinco solicitações HTTP HEAD para www.google.com com um intervalo de um segundo entre cada solicitação.

  1. Em seguida, vá para o Wireshark e aplique este filtro para encontrar todas as solicitações HTTP:
http.request

Este filtro mostrará todas as solicitações HTTP no tráfego capturado.

  1. Examine esses pacotes para identificar padrões de tráfego HTTP normal. Observe os cabeçalhos, a frequência das solicitações e outros detalhes.

  2. Finalmente, tente criar um filtro que possa distinguir a navegação HTTP normal de ferramentas de varredura automatizadas. Por exemplo:

http.request and !(http.user_agent contains "Mozilla")
Filtro de User Agent HTTP do Wireshark

Este filtro mostra solicitações HTTP que não possuem agentes de usuário de navegador. Como a maioria da navegação web normal é feita usando navegadores com Mozilla no agente de usuário, as solicitações sem ele podem indicar ferramentas automatizadas em vez de navegação normal.

Ao praticar essas técnicas de filtragem focadas em segurança, você desenvolverá as habilidades necessárias para identificar rapidamente tráfego suspeito em capturas de rede do mundo real.

Resumo

Neste laboratório, você aprendeu a usar filtros de exibição do Wireshark para análise de tráfego de rede e identificação de potenciais ameaças à segurança. Você começou trabalhando com um arquivo de captura de amostra fornecido ou capturando tráfego de rede ao vivo e se familiarizando com a interface do Wireshark. Em seguida, você dominou os filtros de exibição básicos para isolar tipos específicos de tráfego de acordo com protocolos, endereços IP e portas. Você também aprimorou suas habilidades com técnicas de filtragem complexas, combinando múltiplas condições e pesquisando conteúdo específico. Por fim, você aplicou essas habilidades em cenários de análise de segurança para detectar atividades suspeitas, como varredura de portas, exposição de credenciais e potenciais ataques.

Essas habilidades de filtragem do Wireshark são cruciais para a solução de problemas de rede e análise de segurança eficientes. Ao isolar rapidamente pacotes relevantes de grandes capturas, você pode reduzir significativamente o tempo necessário para identificar e responder a problemas de rede e incidentes de segurança. À medida que você continua praticando com o Wireshark, você obterá uma compreensão intuitiva dos protocolos de rede e padrões de tráfego, aprimorando suas capacidades gerais de segurança cibernética.