Como filtrar e analisar tráfego IPv6 capturado no Wireshark

WiresharkWiresharkAdvanced
Pratique Agora

💡 Este tutorial foi traduzido do inglês com assistência de IA. Para ver o original, você pode mudar para a versão em inglês

Introdução

No domínio da segurança cibernética, compreender e analisar o tráfego de rede é uma habilidade crucial. Este tutorial guia você através do processo de captura, filtragem e análise de tráfego IPv6 usando o Wireshark, um poderoso analisador de protocolo de rede.

IPv6 (Internet Protocol versão 6) representa a próxima geração de protocolos de internet, projetada para eventualmente substituir o amplamente utilizado IPv4. À medida que as redes continuam a evoluir, os profissionais de segurança devem ser proficientes no monitoramento de ambos os protocolos. Ao final deste laboratório, você estará equipado com conhecimento prático para aprimorar suas capacidades de monitoramento de segurança de rede.

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 avançado com uma taxa de conclusão de 7.35%. Recebeu uma taxa de avaliações positivas de 100% dos estudantes.

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL wireshark(("Wireshark")) -.-> wireshark/WiresharkGroup(["Wireshark"]) wireshark/WiresharkGroup -.-> wireshark/installation("Installation and Setup") wireshark/WiresharkGroup -.-> wireshark/interface("Interface Overview") wireshark/WiresharkGroup -.-> wireshark/packet_capture("Packet Capture") wireshark/WiresharkGroup -.-> wireshark/display_filters("Display Filters") wireshark/WiresharkGroup -.-> wireshark/protocol_dissection("Protocol Dissection") wireshark/WiresharkGroup -.-> wireshark/export_packets("Exporting Packets") wireshark/WiresharkGroup -.-> wireshark/packet_analysis("Packet Analysis") wireshark/WiresharkGroup -.-> wireshark/commandline_usage("Command Line Usage") subgraph Lab Skills wireshark/installation -.-> lab-414835{{"Como filtrar e analisar tráfego IPv6 capturado no Wireshark"}} wireshark/interface -.-> lab-414835{{"Como filtrar e analisar tráfego IPv6 capturado no Wireshark"}} wireshark/packet_capture -.-> lab-414835{{"Como filtrar e analisar tráfego IPv6 capturado no Wireshark"}} wireshark/display_filters -.-> lab-414835{{"Como filtrar e analisar tráfego IPv6 capturado no Wireshark"}} wireshark/protocol_dissection -.-> lab-414835{{"Como filtrar e analisar tráfego IPv6 capturado no Wireshark"}} wireshark/export_packets -.-> lab-414835{{"Como filtrar e analisar tráfego IPv6 capturado no Wireshark"}} wireshark/packet_analysis -.-> lab-414835{{"Como filtrar e analisar tráfego IPv6 capturado no Wireshark"}} wireshark/commandline_usage -.-> lab-414835{{"Como filtrar e analisar tráfego IPv6 capturado no Wireshark"}} end

Instalando e Configurando o Wireshark

Antes de podermos capturar e analisar o tráfego IPv6, precisamos instalar o Wireshark em nosso sistema Ubuntu e realizar alguma configuração básica.

Instalando o Wireshark

Vamos começar atualizando as listas de pacotes e instalando o Wireshark:

sudo apt update
sudo apt install -y wireshark

Durante a instalação, você pode ser questionado se não-superusuários devem ser capazes de capturar pacotes. Para este laboratório, selecione "Sim" para permitir que usuários não-root capturem pacotes.

Após a conclusão da instalação, precisamos adicionar nosso usuário ao grupo wireshark para permitir a captura de pacotes sem privilégios de root:

sudo usermod -a -G wireshark labex

Para que as alterações entrem em vigor, vamos sair e entrar novamente:

newgrp wireshark

Verificando a Instalação

Para verificar se o Wireshark foi instalado com sucesso, vamos verificar sua versão:

wireshark --version

Você deve ver uma saída semelhante à seguinte:

Wireshark 3.6.2 (Git v3.6.2 packaged as 3.6.2-2)

Iniciando o Wireshark

Agora, vamos iniciar o Wireshark a partir do terminal:

wireshark &

O símbolo & executa o aplicativo em segundo plano, permitindo que você continue usando o terminal.

Você deve ver o aplicativo Wireshark aberto com uma lista de interfaces de rede disponíveis. A interface pode ser semelhante a esta:

Wireshark Main Interface

O Wireshark agora está pronto para capturar e analisar o tráfego de rede. No próximo passo, vamos gerar algum tráfego IPv6 que podemos capturar e analisar.

Gerando Tráfego IPv6 para Captura

Antes de podermos analisar o tráfego IPv6, precisamos gerar alguns pacotes IPv6 em nossa rede. Nesta etapa, usaremos várias ferramentas para gerar tráfego IPv6.

Compreendendo os Fundamentos do IPv6

Os endereços IPv6 são endereços de 128 bits normalmente escritos em notação hexadecimal com dois pontos separando cada grupo de 16 bits, como 2001:0db8:85a3:0000:0000:8a2e:0370:7334. O IPv6 oferece várias vantagens sobre o IPv4:

  • Espaço de endereço maior (128 bits vs 32 bits)
  • Formato de cabeçalho simplificado para melhor eficiência de roteamento
  • Segurança integrada com IPsec
  • Suporte aprimorado para Qualidade de Serviço (QoS)

Verificando a Conectividade IPv6

Primeiro, vamos verificar se nosso sistema possui conectividade IPv6, examinando as interfaces de rede:

ip -6 addr show

Este comando exibe todos os endereços IPv6 atribuídos às interfaces de rede em seu sistema. Você deve ver uma saída semelhante a:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 state UNKNOWN qlen 1000
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 state UP qlen 1000
    inet6 fe80::215:5dff:fe00:1/64 scope link
       valid_lft forever preferred_lft forever

Os endereços fe80:: são endereços link-local que são configurados automaticamente em interfaces habilitadas para IPv6.

Gerando Tráfego IPv6

Vamos gerar algum tráfego IPv6 que podemos capturar com o Wireshark. Usaremos o comando ping6 para enviar solicitações de eco ICMPv6 para endereços IPv6.

Primeiro, vamos fazer ping no endereço de loopback IPv6:

ping6 -c 4 ::1

Isso envia 4 solicitações de eco ICMPv6 para o endereço de loopback (::1). Você deve ver uma saída como:

PING ::1(::1) 56 data bytes
64 bytes from ::1: icmp_seq=1 ttl=64 time=0.035 ms
64 bytes from ::1: icmp_seq=2 ttl=64 time=0.074 ms
64 bytes from ::1: icmp_seq=3 ttl=64 time=0.073 ms
64 bytes from ::1: icmp_seq=4 ttl=64 time=0.074 ms

--- ::1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3072ms
rtt min/avg/max/mdev = 0.035/0.064/0.074/0.017 ms

Em seguida, vamos fazer ping em um endereço IPv6 conhecido. Os servidores DNS do Google suportam IPv6 e podem ser usados para testes:

ping6 -c 4 2001:4860:4860::8888

Se o seu sistema tiver conectividade IPv6 pública, você deverá ver respostas de ping bem-sucedidas. Caso contrário, você poderá ver erros indicando que não há rota para o host.

Usando netcat para Tráfego IPv6

Também podemos usar o netcat para gerar tráfego IPv6. Vamos abrir duas janelas de terminal.

No primeiro terminal, inicie um servidor netcat ouvindo em um endereço IPv6:

nc -6 -l 8888

Isso inicia um servidor ouvindo na porta 8888 para conexões IPv6.

No segundo terminal, conecte-se a este servidor:

nc -6 ::1 8888

Agora você pode digitar mensagens em qualquer terminal, e elas serão enviadas para o outro terminal via IPv6. Isso cria tráfego TCP que podemos capturar no Wireshark.

Digite algumas mensagens em cada terminal para gerar tráfego e, em seguida, pressione Ctrl+C em ambos os terminais para fechar as conexões.

Agora que geramos algum tráfego IPv6, estamos prontos para capturá-lo e analisá-lo com o Wireshark na próxima etapa.

Capturando Tráfego IPv6 com Wireshark

Agora que geramos algum tráfego IPv6, podemos usar o Wireshark para capturá-lo e examiná-lo. Nesta etapa, aprenderemos como configurar o Wireshark para capturar pacotes IPv6.

Iniciando uma Captura

Primeiro, inicie o Wireshark se ele ainda não estiver em execução:

wireshark &

Na janela principal do Wireshark, você verá uma lista de interfaces de rede disponíveis. Queremos capturar na interface que está lidando com nosso tráfego de rede:

  1. Localize a interface chamada lo (loopback) na lista
  2. Dê um duplo clique nesta interface para começar a capturar pacotes nela

Alternativamente, você pode selecionar a interface e clicar no botão "Iniciar captura de pacotes" (o ícone da barbatana de tubarão azul) na barra de ferramentas.

O Wireshark agora começará a capturar todos os pacotes na interface de loopback, incluindo qualquer tráfego IPv6.

Gerando Tráfego Durante a Captura

Enquanto o Wireshark está capturando, vamos gerar algum tráfego IPv6. Abra um novo terminal e execute:

ping6 -c 10 ::1

Isso envia 10 solicitações de eco ICMPv6 para o endereço de loopback, que será visível no Wireshark.

Você deve ver os pacotes aparecendo na janela do Wireshark à medida que são capturados. Cada linha representa um único pacote.

Parando a Captura

Depois de gerar algum tráfego, vamos parar a captura:

  1. Clique no botão "Parar captura de pacotes" (o ícone do quadrado vermelho) na barra de ferramentas
  2. O Wireshark agora exibirá apenas os pacotes que foram capturados durante a sessão

Compreendendo a Interface do Wireshark

A interface do Wireshark consiste em três painéis principais:

  1. Painel de Lista de Pacotes (superior): Mostra todos os pacotes capturados em ordem sequencial
  2. Painel de Detalhes do Pacote (meio): Mostra os detalhes do pacote selecionado em uma visualização hierárquica
  3. Painel de Bytes do Pacote (inferior): Mostra os bytes brutos do pacote selecionado em formato hexadecimal e ASCII

Vamos encontrar e selecionar um pacote IPv6 no Painel de Lista de Pacotes. Procure pacotes com "IPv6" listado na coluna "Protocolo".

Quando você seleciona um pacote IPv6, o Painel de Detalhes do Pacote mostrará a estrutura do cabeçalho IPv6, incluindo:

  • Versão (deve ser 6 para IPv6)
  • Classe de Tráfego
  • Rótulo de Fluxo
  • Comprimento da Carga Útil (Payload Length)
  • Próximo Cabeçalho (Next Header)
  • Limite de Salto (Hop Limit)
  • Endereço de Origem
  • Endereço de Destino

Você pode expandir cada campo clicando na seta ao lado dele para ver mais detalhes.

Salvando a Captura

Vamos salvar nossa captura para análise posterior:

  1. Clique no menu "Arquivo"
  2. Selecione "Salvar como"
  3. Navegue até o diretório /home/labex/project
  4. Insira um nome de arquivo como ipv6_capture.pcapng
  5. Clique em "Salvar"

Os pacotes capturados agora são salvos em um arquivo que pode ser aberto posteriormente para análise adicional.

ls -l /home/labex/project/ipv6_capture.pcapng

Você deve ver a saída confirmando que o arquivo foi criado:

-rw-r--r-- 1 labex labex 12345 Sep 10 12:34 /home/labex/project/ipv6_capture.pcapng

Na próxima etapa, aprenderemos como filtrar e analisar o tráfego IPv6 que capturamos.

Filtragem IPv6 Básica no Wireshark

O Wireshark pode capturar um grande volume de pacotes, tornando essencial filtrar os dados para focar em tráfego específico. Nesta etapa, aprenderemos como usar filtros de exibição para isolar o tráfego IPv6.

Compreendendo os Filtros de Exibição do Wireshark

Os filtros de exibição do Wireshark permitem que você mostre apenas pacotes que correspondem a critérios específicos. A sintaxe do filtro é rica e poderosa, permitindo controle preciso sobre quais pacotes são exibidos.

Os filtros de exibição são inseridos na barra de filtro na parte superior da janela do Wireshark. À medida que você digita, a cor de fundo fornece feedback:

  • Verde: Sintaxe de filtro válida
  • Vermelho: Sintaxe de filtro inválida
  • Amarelo: Válido, mas com filtro potencialmente problemático

Filtros IPv6 Básicos

Vamos começar abrindo nosso arquivo de captura salvo:

  1. Clique no menu "Arquivo"
  2. Selecione "Abrir"
  3. Navegue até /home/labex/project
  4. Selecione ipv6_capture.pcapng
  5. Clique em "Abrir"

Agora, vamos aplicar alguns filtros IPv6 básicos:

Filtrando para todo o tráfego IPv6

Para exibir apenas pacotes IPv6, insira o seguinte na barra de filtro:

ipv6

Pressione Enter ou clique em "Aplicar" para aplicar o filtro. Apenas os pacotes que usam o protocolo IPv6 serão exibidos.

Filtrando por Endereço IPv6

Para filtrar pacotes por endereço de origem IPv6:

ipv6.src == ::1

Isso mostra apenas os pacotes originados do endereço de loopback.

Para filtrar pacotes por endereço de destino IPv6:

ipv6.dst == ::1

Isso mostra apenas os pacotes destinados ao endereço de loopback.

Você pode combinar filtros usando operadores lógicos:

ipv6.src == ::1 and ipv6.dst == ::1

Isso mostra apenas os pacotes em que a origem e o destino são o endereço de loopback.

Filtrando por Protocolo IPv6

O IPv6 usa um campo "Próximo Cabeçalho" (Next Header) para indicar o protocolo encapsulado dentro do pacote IPv6. Os valores comuns do próximo cabeçalho incluem:

  • 6: TCP
  • 17: UDP
  • 58: ICMPv6

Para filtrar pacotes ICMPv6:

ipv6.nxt == 58

Ou você pode simplesmente usar:

icmpv6

Para filtrar pacotes TCP IPv6:

ipv6.nxt == 6

Ou, equivalentemente:

ipv6 and tcp

Combinando Filtros

Os filtros do Wireshark podem ser combinados usando operadores lógicos:

  • and ou &&: Ambas as condições devem ser verdadeiras
  • or ou ||: Pelo menos uma condição deve ser verdadeira
  • not ou !: Nega uma condição

Por exemplo, para encontrar todos os pacotes IPv6, exceto ICMPv6:

ipv6 and not icmpv6

Para encontrar pacotes que são solicitações de eco ICMPv6 ou respostas de eco:

icmpv6.type == 128 or icmpv6.type == 129

Salvando Filtros

Se você usa certos filtros com frequência, pode salvá-los para uso posterior:

  1. Insira seu filtro na barra de filtro
  2. Clique no botão "Salvar este filtro" (sinal de mais à direita)
  3. Insira um nome para seu filtro
  4. Clique em "OK"

Para aplicar um filtro salvo, clique no botão "Filtro" (ícone de funil) e selecione seu filtro salvo no menu suspenso.

Vamos salvar um filtro para pacotes ICMPv6:

  1. Insira icmpv6 na barra de filtro
  2. Clique no sinal de mais
  3. Nomeie-o "Tráfego ICMPv6"
  4. Clique em "OK"

Agora você pode aplicar rapidamente este filtro sempre que necessário.

Usando Expressões de Filtro dos Detalhes do Pacote

O Wireshark oferece uma maneira conveniente de criar filtros a partir dos detalhes do pacote:

  1. Selecione um pacote na lista de pacotes
  2. No painel de detalhes do pacote, clique com o botão direito em um campo
  3. Escolha "Aplicar como Filtro" e selecione:
    • "Selecionado" para filtrar por esse valor exato
    • "Não Selecionado" para excluir esse valor
    • "E Selecionado" para adicionar a condição ao filtro atual
    • "Ou Selecionado" para adicionar uma condição alternativa

Isso facilita a construção de filtros complexos sem memorizar nomes de campos.

Experimente isso:

  1. Selecione um pacote IPv6
  2. Expanda a seção "Internet Protocol Version 6" nos detalhes do pacote
  3. Clique com o botão direito no campo "Próximo Cabeçalho"
  4. Selecione "Aplicar como Filtro" > "Selecionado"

A barra de filtro agora mostrará um filtro para esse valor específico do próximo cabeçalho.

Na próxima etapa, passaremos da filtragem básica para técnicas de análise IPv6 mais avançadas.

Análise IPv6 Avançada no Wireshark

Agora que você está familiarizado com a filtragem IPv6 básica, vamos explorar técnicas de análise mais avançadas no Wireshark para obter insights mais profundos sobre os padrões de tráfego IPv6.

Análise de Protocolo IPv6

Analisando ICMPv6 para Descoberta de Vizinhos

O ICMPv6 desempenha um papel crucial nas redes IPv6, especialmente para o Protocolo de Descoberta de Vizinhos (NDP), que substitui o ARP no IPv4. Vamos analisar o tráfego NDP:

  1. Abra o Wireshark com nosso arquivo de captura
  2. Aplique o seguinte filtro para ver todas as mensagens NDP:
    icmpv6.type >= 133 and icmpv6.type <= 137

Este filtro inclui:

  • Tipo 133: Solicitação de Roteador (Router Solicitation)
  • Tipo 134: Anúncio de Roteador (Router Advertisement)
  • Tipo 135: Solicitação de Vizinho (Neighbor Solicitation)
  • Tipo 136: Anúncio de Vizinho (Neighbor Advertisement)
  • Tipo 137: Mensagem de Redirecionamento (Redirect Message)

Se você não vir nenhuma mensagem NDP em sua captura, vamos gerar algumas:

## Em um novo terminal, inicie uma nova captura do Wireshark na interface apropriada
wireshark -i eth0 &

## Em seguida, execute este comando para acionar a solicitação de vizinho
ping6 -c 2 ff02::1

Isso faz ping no endereço multicast IPv6 de todos os nós, o que deve acionar mensagens de descoberta de vizinhos.

Analisando os Cabeçalhos de Extensão IPv6

O IPv6 usa cabeçalhos de extensão para incluir informações opcionais. Para filtrar pacotes com cabeçalhos de extensão:

ipv6.nxt != 6 and ipv6.nxt != 17 and ipv6.nxt != 58

Isso mostra pacotes IPv6 que não têm TCP, UDP ou ICMPv6 como seu próximo cabeçalho, indicando que eles provavelmente usam cabeçalhos de extensão.

Usando Ferramentas Estatísticas do Wireshark

O Wireshark fornece várias ferramentas estatísticas que são valiosas para analisar o tráfego IPv6.

Estatísticas de Conversa IPv6

Para visualizar as conversas IPv6:

  1. Clique no menu "Estatísticas"
  2. Selecione "Conversas"
  3. Clique na aba "IPv6"

Isso exibe todas as conversas IPv6 em sua captura, mostrando os endereços de origem e destino, contagens de pacotes e contagens de bytes.

Você pode classificar as conversas por qualquer coluna clicando no cabeçalho da coluna.

Hierarquia de Protocolos IPv6

Para ver a distribuição de protocolos em sua captura:

  1. Clique no menu "Estatísticas"
  2. Selecione "Hierarquia de Protocolos"

Isso mostra uma visualização hierárquica de protocolos, com porcentagens de pacotes e bytes para cada protocolo. Você pode ver qual proporção do seu tráfego é IPv6 e, dentro disso, quanto é ICMPv6, TCP, UDP, etc.

Estatísticas de Pontos Finais IPv6

Para analisar os pontos finais IPv6:

  1. Clique no menu "Estatísticas"
  2. Selecione "Pontos Finais"
  3. Clique na aba "IPv6"

Isso mostra todos os endereços IPv6 vistos na captura, juntamente com contagens de pacotes e bytes. Ajuda a identificar os hosts IPv6 mais ativos.

Análise de Gráfico de Fluxo

Para uma representação visual das trocas de pacotes:

  1. Clique no menu "Estatísticas"
  2. Selecione "Gráfico de Fluxo"
  3. Nas opções, certifique-se de que "Endereços IPv6" esteja selecionado para o tipo de fluxo
  4. Clique em "OK"

Isso cria uma representação visual dos fluxos de pacotes entre os hosts, facilitando a compreensão dos padrões de comunicação.

Exportando Dados para Análise Adicional

Para exportar dados IPv6 para análise em outras ferramentas:

  1. Clique no menu "Arquivo"
  2. Selecione "Exportar Dessecções de Pacotes"
  3. Escolha "Como CSV" (ou outro formato, dependendo de suas necessidades)
  4. Selecione quais campos exportar
  5. Clique em "Salvar"

Vamos exportar algumas informações básicas do IPv6:

## Crie uma exportação simples da linha de comando
tshark -r /home/labex/project/ipv6_capture.pcapng -T fields -e frame.number -e ipv6.src -e ipv6.dst -e ipv6.nxt -E header=y -E separator=, > /home/labex/project/ipv6_analysis.csv

Isso cria um arquivo CSV com números de quadros, endereços IPv6 de origem e destino e valores do próximo cabeçalho.

Para visualizar o arquivo exportado:

cat /home/labex/project/ipv6_analysis.csv

Você deve ver uma saída semelhante a:

frame.number,ipv6.src,ipv6.dst,ipv6.nxt
1,::1,::1,58
2,::1,::1,58
...

Criando um Perfil IPv6 Personalizado

Para análise IPv6 frequente, é útil criar um perfil personalizado:

  1. Clique no menu "Editar"
  2. Selecione "Perfis de Configuração"
  3. Clique no botão "+" para adicionar um novo perfil
  4. Nomeie-o "Análise IPv6"
  5. Clique em "OK"

Agora você pode personalizar este perfil com seus filtros IPv6 preferidos, layouts de coluna e cores. Sempre que precisar analisar o tráfego IPv6, você pode alternar para este perfil.

Para adicionar uma coluna útil para análise IPv6:

  1. Clique com o botão direito em qualquer cabeçalho de coluna
  2. Selecione "Preferências de Coluna"
  3. Clique em "+" para adicionar uma nova coluna
  4. Para "Título", insira "Próximo Cabeçalho" (Next Header)
  5. Para "Tipo", selecione "Personalizado"
  6. Para "Campos", insira "ipv6.nxt"
  7. Clique em "OK"

Isso adiciona uma coluna mostrando o valor do Próximo Cabeçalho IPv6, facilitando a identificação do protocolo encapsulado em cada pacote IPv6.

Com essas técnicas de análise avançadas, você agora tem um conjunto de ferramentas abrangente para investigar padrões de tráfego IPv6, identificar possíveis problemas e obter insights mais profundos sobre o comportamento da rede IPv6.

Resumo

Neste laboratório, você aprendeu como capturar, filtrar e analisar efetivamente o tráfego IPv6 usando o Wireshark, uma poderosa ferramenta de análise de rede.

Você começou instalando e configurando o Wireshark em seu sistema Ubuntu e, em seguida, gerou tráfego IPv6 para análise. Você aprendeu como capturar esse tráfego e salvá-lo para exame detalhado.

Em seguida, você dominou as técnicas básicas de filtragem IPv6, permitindo que você se concentrasse em aspectos específicos das comunicações IPv6. Você também explorou métodos de análise avançados, incluindo:

  • Analisando o tráfego ICMPv6 para o Protocolo de Descoberta de Vizinhos (Neighbor Discovery Protocol)
  • Examinando os cabeçalhos de extensão IPv6
  • Usando as ferramentas estatísticas do Wireshark para obter insights sobre conversas e pontos finais
  • Criando gráficos de fluxo visuais para entender os padrões de comunicação
  • Exportando dados para análise adicional
  • Personalizando o Wireshark com perfis otimizados para análise IPv6

Essas habilidades são essenciais para os profissionais de segurança de rede modernos, à medida que a adoção do IPv6 continua a crescer. A capacidade de monitorar, analisar e solucionar problemas de tráfego IPv6 de forma eficaz ajuda a identificar possíveis ameaças à segurança, otimizar o desempenho da rede e garantir a funcionalidade adequada da rede.

Ao aplicar essas técnicas em sua prática de segurança, você pode aprimorar a visibilidade da rede de sua organização e melhorar sua capacidade de detectar e responder a incidentes de segurança envolvendo tráfego IPv6.

OSZAR »