Introdução
Neste laboratório, você aprenderá como usar os filtros de captura do Tshark para capturar seletivamente pacotes de rede. Você explorará a sintaxe dos filtros do Wireshark e praticará a captura de tráfego TCP em interfaces específicas usando comandos como tshark -f "tcp".
Através de exercícios práticos, você filtrará pacotes TCP em eth1, analisará detalhes dos pacotes e salvará os resultados em tcp.pcap. Este laboratório oferece experiência prática na aplicação de filtros de captura para isolar e examinar eficientemente o tráfego de rede direcionado.
Aprender a Sintaxe com Referência Manual
Nesta etapa, você aprenderá a sintaxe básica dos filtros de captura do Wireshark, consultando a página do manual. Compreender esses fundamentos é crucial antes de realizar capturas de pacotes reais, pois os filtros permitem que você capture seletivamente apenas o tráfego de rede de seu interesse.
Primeiro, abra o terminal em sua VM LabEx, caso ainda não esteja aberto. O diretório de trabalho padrão é
~/project. É aqui que executaremos todos os nossos comandos.Para acessar a documentação completa dos filtros do Wireshark, execute o seguinte comando em seu terminal:
man wireshark-filter
Esta página do manual contém toda a documentação oficial sobre a sintaxe e as capacidades dos filtros de captura. Pense nela como sua "cola" para construir filtros eficazes.
Ao percorrer o manual (pressione
Enterpara navegar), concentre-se nestas seções-chave que formam a base dos filtros de captura:- Estrutura básica da sintaxe do filtro: Como formatar corretamente suas expressões de filtro
- Filtros de protocolo comuns: Filtros predefinidos para protocolos como TCP, UDP, HTTP
- Operadores de comparação: Como comparar valores em seus filtros
- Operadores lógicos: Combine condições usando and, or, not
Agora, vamos aplicar o que você aprendeu com um exemplo prático. Execute este comando para testar um filtro TCP simples:
tshark -f "tcp" -c 5
Este comando faz três coisas:
-f "tcp"aplica um filtro para capturar apenas pacotes TCP-c 5limita a captura a 5 pacotes- Os resultados são exibidos diretamente em seu terminal
- Se houver tráfego de rede, você verá uma saída semelhante a esta, mostrando detalhes de cada pacote TCP capturado:
1 0.000000 192.168.1.1 → 192.168.1.2 TCP 74 443 → 49234 [SYN] Seq=0 Win=64240 Len=0
Cada linha representa um pacote, mostrando seu número, carimbo de data/hora, endereços IP de origem e destino, portas e flags TCP.
- Quando terminar de examinar a saída, pressione
qpara sair da página do manual (se ainda estiver aberta) e de qualquer captura do tshark em execução. Isso o retorna ao prompt de comando, pronto para a próxima etapa.
Filtrar Tráfego TCP com -f "tcp"
Nesta etapa, você praticará a captura de tráfego de rede TCP (Transmission Control Protocol) usando a sintaxe de filtro do Wireshark. O TCP é um dos protocolos centrais do conjunto de protocolos da Internet, fornecendo entrega de dados confiável, ordenada e com verificação de erros entre aplicações. Este exercício baseia-se nas habilidades básicas de captura de pacotes que você aprendeu anteriormente.
- Primeiro, certifique-se de estar no diretório de trabalho padrão onde armazenaremos nossos arquivos de captura:
cd ~/project
- Para capturar tráfego TCP ao vivo da sua interface de rede, execute este comando:
sudo tshark -i eth1 -f "tcp" -c 10
Nota: A VM gratuita pode não ter a interface eth1. Você pode usar outras interfaces como eth0, eth2, etc.
Vamos detalhar o que cada parte deste comando faz:
sudoconcede as permissões de administrador necessárias para a captura de pacotes-i eth1especifica que estamos capturando da interface Ethernet (eth1)-f "tcp"aplica um filtro de captura para coletar apenas pacotes TCP-c 10limita a captura a 10 pacotes para esta demonstração
- A saída exibirá pacotes TCP com informações essenciais neste formato:
1 0.000000 192.168.1.1 → 192.168.1.2 TCP 74 443 → 49234 [SYN] Seq=0 Win=64240 Len=0
2 0.000123 192.168.1.2 → 192.168.1.1 TCP 74 49234 → 443 [SYN, ACK] Seq=0 Ack=1 Win=28960 Len=0
Cada linha representa um pacote TCP mostrando:
- Número do pacote e carimbo de data/hora (timestamp)
- Endereços IP de origem e destino
- Portas de origem e destino
- Flags TCP (como SYN, ACK)
- Números de sequência e tamanhos de janela
- Para examinar a estrutura completa do pacote TCP, incluindo todos os campos do cabeçalho, use o modo detalhado (verbose):
sudo tshark -i eth1 -f "tcp" -c 5 -V
A flag -V fornece uma saída detalhada mostrando o cabeçalho TCP completo com todos os seus campos, como números de sequência, números de confirmação (acknowledgment numbers), flags, tamanho da janela, checksum e opções.
- Se você precisar interromper uma captura em execução a qualquer momento, basta pressionar
Ctrl+Cpara parar o processo. Isso é útil quando você deseja encerrar uma captura de longa duração ou se já viu pacotes suficientes para sua análise.
Capturar Tráfego Filtrado em eth1
Nesta etapa, você aprenderá a capturar tráfego de rede na interface eth1 com filtros específicos, baseando-se na filtragem TCP das etapas anteriores. A interface eth1 normalmente representa sua conexão de rede com fio principal, e a usaremos para demonstrar cenários práticos de captura de pacotes.
- Primeiro, verifique suas interfaces de rede executando:
ip addr show eth1
Este comando exibe informações detalhadas sobre sua interface eth1. Você deve ver a saída mostrando que a interface eth1 está ativa (estado UP) e possui um endereço IP atribuído. Essa verificação é importante porque você não pode capturar tráfego em uma interface que não existe ou não está ativa.
- Para capturar tráfego HTTP especificamente na eth1, use:
sudo tshark -i eth1 -f "tcp port 80" -c 15
Vamos detalhar o que este comando faz:
-i eth1especifica em qual interface de rede ouvir-f "tcp port 80"cria um filtro de captura para tráfego HTTP (a porta 80 é a porta HTTP padrão)-c 15limita a captura a 15 pacotes, o que é suficiente para demonstração sem sobrecarregá-lo com dados
- Para capturar tráfego entre IPs específicos, tente:
sudo tshark -i eth1 -f "host 8.8.8.8" -c 10
Aqui estamos filtrando o tráfego de/para o servidor DNS do Google (8.8.8.8). O filtro "host" corresponde ao tráfego de entrada e saída para este endereço IP específico. Isso é útil quando você deseja monitorar a comunicação com um servidor específico.
- Para filtragem mais complexa, combine condições:
sudo tshark -i eth1 -f "tcp port 443 and host 8.8.8.8" -c 5
Este comando demonstra como combinar filtros. Ele captura tráfego HTTPS (porta 443) especificamente de/para 8.8.8.8. O operador "and" permite que você crie filtros precisos que correspondam a várias condições simultaneamente.
- Observe a saída mostrando pacotes filtrados com detalhes como:
1 0.000000 192.168.1.100 → 8.8.8.8 TCP 74 49234 → 443 [SYN] Seq=0 Win=64240 Len=0
Esta saída de exemplo mostra um pacote TCP SYN (o primeiro pacote em uma conexão TCP) da sua máquina local (192.168.1.100) para o servidor do Google. Os números representam o tempo, as portas e as informações de sequência TCP que ajudam a analisar o comportamento da rede.
Salvar Resultados com -w tcp.pcap
Nesta etapa, você aprenderá como salvar o tráfego de rede capturado em um arquivo para análise posterior. Isso é particularmente útil quando você precisa examinar pacotes de rede em um momento diferente ou compartilhá-los com colegas. Usaremos a ferramenta de linha de comando Tshark do Wireshark com a opção -w para salvar nossa captura.
- Primeiro, vamos garantir que estamos no diretório de trabalho correto. O diretório
~/projecté onde armazenaremos nossos arquivos de captura para manter as coisas organizadas:
cd ~/project
- Agora, capturaremos o tráfego TCP real. O seguinte comando faz várias coisas importantes de uma só vez. É como configurar uma câmera de rede que só grava pacotes TCP e os salva em um arquivo:
sudo tshark -i eth1 -f "tcp" -w tcp.pcap -c 20
Vamos detalhar o que cada parte deste comando significa:
-i eth1diz ao Tshark para ouvir na interface de rede eth1-f "tcp"aplica um filtro de captura para gravar apenas pacotes TCP-w tcp.pcapsalva os pacotes capturados em um arquivo chamado tcp.pcap-c 20limita a captura a 20 pacotes para que não coletemos muitos dados
- Após executar a captura, devemos verificar se nosso arquivo foi criado corretamente. O comando
lscom as opções-lhmostra o tamanho do arquivo em um formato legível por humanos:
ls -lh tcp.pcap
Você deve ver a saída mostrando que o arquivo existe e seu tamanho (normalmente alguns KB para 20 pacotes).
- Agora, vamos examinar nossos pacotes capturados. Este comando lê os primeiros 5 pacotes do nosso arquivo salvo:
tshark -r tcp.pcap -c 5
A opção -r diz ao Tshark para ler de um arquivo em vez de capturar tráfego ao vivo, enquanto -c 5 limita a saída a 5 pacotes.
- Para uma visão mais técnica do que capturamos, podemos usar o modo verbose. Isso mostra todos os detalhes do protocolo e o conteúdo dos pacotes, mas o limitaremos às primeiras 20 linhas para manter a saída gerenciável:
tshark -r tcp.pcap -V | head -20
O -V habilita a saída verbose, e head -20 mostra apenas o início dessa saída para que não sejamos sobrecarregados com informações.
Resumo
Neste laboratório, você aprendeu a aplicar filtros de captura no tshark por meio de exercícios práticos. Você explorou os fundamentos da sintaxe de filtros, incluindo filtros de protocolo e expressões lógicas, e então praticou a captura de tráfego TCP com comandos básicos.
O laboratório guiou você ainda mais por técnicas avançadas, como monitoramento de interface ao vivo, personalização de saída com o modo verbose e salvamento de capturas filtradas em arquivos. Essas habilidades permitem uma análise eficiente do tráfego de rede, combinando seleção de interface, filtragem e gerenciamento de saída em fluxos de trabalho otimizados.


