Capítulo 011 — Análise de Tráfego com Wireshark e tcpdump¶
Entender antes de decorar.
| Informação | Detalhes |
|---|---|
| Módulo | 02 — Redes |
| Nível | Iniciante |
| Tempo estimado | 15 a 20 minutos |
| Pré-requisito | Capítulo 010 — VPNs e Criptografia em Trânsito |
Objetivo deste capítulo¶
Ao final deste capítulo, você será capaz de:
- diferenciar Wireshark e tcpdump e saber quando usar cada um;
- entender por que uma captura "crua" de tráfego parece caótica;
- diferenciar filtro de captura de filtro de exibição;
- usar filtros básicos e combinados para isolar tráfego relevante;
- entender para que serve a função "Follow TCP Stream";
- saber o que procurar, na prática, ao analisar uma captura de tráfego.
Como sempre, vamos começar utilizando nossa imaginação.¶
Você abre o Wireshark pela primeira vez, clica em "iniciar captura" na sua própria placa de rede — e em poucos segundos a tela já está lotada de centenas de linhas passando rapidamente, mesmo sem você estar fazendo absolutamente nada.
Opção A
"Tem tráfego demais. Não dá pra entender nada disso."
Opção B
"Preciso aprender a filtrar antes de tentar entender tudo de uma vez."
Esse é um momento clássico de quem começa em análise de tráfego. A boa notícia: você já tem toda a base teórica necessária dos capítulos anteriores. Falta só a ferramenta certa — e saber filtrar o ruído.
Uma captura de tráfego não é caótica. Ela só ainda não foi filtrada.
Wireshark e tcpdump: duas ferramentas, um mesmo propósito¶
| Wireshark | tcpdump | |
|---|---|---|
| Interface | Gráfica | Linha de comando |
| Plataforma | Windows, Linux, macOS | Nativo em praticamente todo sistema Unix/Linux |
| Uso típico | Análise visual detalhada | Captura rápida, inclusive em servidores sem interface gráfica |
| Ponto forte | Navegação e inspeção interativa | Leveza e automação via scripts |
Na prática, as duas se complementam: é comum capturar tráfego com tcpdump em um servidor remoto, salvar em um arquivo .pcap, e depois abrir esse arquivo no Wireshark para uma análise visual mais profunda — aproveitando o melhor dos dois mundos.
Por que a captura "crua" parece um caos¶
Mesmo uma máquina "parada" gera tráfego constantemente:
- consultas DNS de fundo (capítulo 006);
- tráfego ARP perguntando "quem tem esse IP?" (capítulo 002);
- pacotes de broadcast dentro da rede local (capítulo 008);
- atualizações automáticas, telemetria de aplicativos, sincronizações em segundo plano.
Isso é normal — e é exatamente por isso que filtros existem: não para "esconder" tráfego, mas para permitir que você foque no que importa para sua investigação específica.
Capturando com o Wireshark — a anatomia da tela¶
O Wireshark organiza cada pacote capturado em três painéis:
- Lista de pacotes — resumo de cada pacote (origem, destino, protocolo, informação);
- Detalhes do pacote — a árvore de protocolos, camada por camada;
- Bytes do pacote — o conteúdo bruto, em hexadecimal.
O segundo painel deve parecer familiar — é exatamente a estrutura que vimos no capítulo de TCP/IP:
Frame 1: 74 bytes
Ethernet II
Internet Protocol Version 4
Transmission Control Protocol
Hypertext Transfer Protocol
Cada linha corresponde a uma camada, de baixo para cima — Enlace, Internet, Transporte e Aplicação. O Wireshark literalmente "abre" o encapsulamento pra você, camada por camada, e clicando em cada uma dessas linhas o painel de bytes destaca exatamente qual trecho do pacote corresponde àquela camada.
Filtros de captura x filtros de exibição¶
Essa é uma das confusões mais comuns entre iniciantes — e são coisas diferentes:
| Filtro de captura | Filtro de exibição | |
|---|---|---|
| Quando age | Antes da captura | Depois da captura |
| Efeito | Descarta o que não corresponde, permanentemente | Apenas esconde da visualização — os dados continuam ali |
| Sintaxe | BPF (Berkeley Packet Filter) | Sintaxe própria do Wireshark |
Alguns filtros de exibição úteis para começar:
| Filtro | O que mostra |
|---|---|
ip.addr == 8.8.8.8 |
Tráfego de/para um IP específico |
tcp.port == 443 |
Tráfego em uma porta específica |
dns |
Apenas tráfego DNS |
http.request |
Apenas requisições HTTP |
tcp.flags.syn == 1 |
Apenas pacotes com flag SYN (útil pra observar tentativas de conexão) |
Combinando filtros¶
Filtros de exibição podem ser combinados com operadores lógicos, permitindo investigações mais precisas:
| Filtro combinado | O que mostra |
|---|---|
ip.addr == 203.0.113.50 && tcp.port == 4444 |
Tráfego para um IP específico, apenas na porta 4444 |
dns && !ip.addr == 8.8.8.8 |
Todo tráfego DNS, exceto o destinado ao resolver 8.8.8.8 |
http.request || tls.handshake.type == 1 |
Requisições HTTP ou handshakes TLS iniciais (Client Hello) |
Esse tipo de combinação é exatamente o que permite ir de "tenho uma captura enorme" para "tenho as três linhas que realmente importam para essa investigação".
tcpdump — a versão de linha de comando¶
A sintaxe básica do tcpdump é direta:
Algumas opções essenciais:
| Opção | Função |
|---|---|
-i |
Especifica a interface de rede |
-n |
Não resolve nomes (evita gerar tráfego DNS extra durante a própria captura) |
-c |
Limita a quantidade de pacotes capturados |
-w arquivo.pcap |
Salva a captura em arquivo, para abrir depois no Wireshark |
-r arquivo.pcap |
Lê uma captura salva anteriormente, em vez de capturar ao vivo |
Exemplo combinando filtro (sintaxe BPF, a mesma dos filtros de captura do Wireshark):
Esse comando captura apenas tráfego na porta 53 (DNS), sem resolver nomes — reduzindo ruído desde a captura.
Outro exemplo comum, capturando tráfego de um host específico e salvando em arquivo para análise posterior:
Esse arquivo suspeito.pcap pode depois ser transferido e aberto no Wireshark, unindo a agilidade do tcpdump em campo com a profundidade de análise visual do Wireshark.
Seguindo uma conversa — "Follow TCP Stream"¶
Analisar pacotes isolados tem limite. Muitas vezes, o que você quer é reconstruir a conversa inteira entre cliente e servidor. O Wireshark tem uma função para isso: clicar com o botão direito em um pacote TCP e escolher Follow → TCP Stream.
Isso remonta toda a sequência de dados trocados como uma única visualização — extremamente útil, por exemplo, para identificar credenciais enviadas em texto claro sobre HTTP (lembra do capítulo sobre HTTP e HTTPS?), ou para simplesmente entender, do início ao fim, o que uma sessão suspeita realmente continha.
O que procurar ao analisar uma captura¶
Juntando tudo que vimos neste módulo até aqui, alguns pontos de atenção práticos:
- IPs fora do esperado ou fora de faixas conhecidas — um destino público inesperado partindo de um host que normalmente só conversa com sistemas internos (capítulo 004);
- portas incomuns para o tipo de host observado — uma workstation comum recebendo conexões em portas de administração remota, por exemplo (capítulo 005);
- volume ou padrão anormal de consultas DNS — muitas consultas rápidas para subdomínios estranhos do mesmo domínio raiz (capítulo 006);
- tráfego HTTP (não HTTPS) carregando dados que deveriam ser protegidos, como formulários de login (capítulo 007);
- volume incomum de tráfego ARP ou broadcast, que pode indicar reconhecimento de rede ou um ataque em andamento na camada de Enlace (capítulos 002 e 008) — algo que vamos aprofundar no próximo capítulo, sobre ataques comuns.
Aplicação em um SOC¶
Ao tratar uma captura como evidência¶
- uma captura de pacotes é considerada uma das evidências mais confiáveis em uma investigação — diferente de logs, que podem estar incompletos ou ausentes, o pcap registra o tráfego exatamente como ocorreu;
- capturas guardadas (
.pcap) permitem reanalisar um incidente depois, com outras ferramentas ou outro olhar, inclusive meses após o evento original.
Ao correlacionar com outras fontes¶
- correlacionar um alerta do SIEM com a captura de tráfego correspondente ajuda a confirmar ou refutar rapidamente uma hipótese;
- comparar o horário e os IPs de um alerta com o que aparece na captura evita conclusões precipitadas baseadas apenas em um resumo de log.
Ao documentar uma investigação¶
- salvar os filtros de exibição usados durante uma análise, junto com a captura, ajuda outra pessoa (ou você mesmo, no futuro) a reproduzir o raciocínio da investigação.
Cenário prático — Domando o caos do início¶
Voltando à tela lotada do início do capítulo:
Antes do filtro: centenas de pacotes por segundo, ilegível
Depois de aplicar: ip.addr == 203.0.113.50
De centenas de linhas, restam apenas as poucas relacionadas ao IP que você realmente queria investigar. O caos nunca esteve nos dados — estava na ausência de um filtro.
Suponha, agora, que entre esses pacotes restantes você note tráfego TCP na porta 4444 — o mesmo número que discutimos lá no capítulo sobre Portas e Protocolos. Um filtro combinado como ip.addr == 203.0.113.50 && tcp.port == 4444 isola exatamente essa comunicação, e um clique em Follow TCP Stream já permite ler a conversa inteira entre sua máquina e aquele destino específico, sem precisar vasculhar pacote por pacote manualmente.
Perguntas de investigação¶
1. Qual a principal diferença entre Wireshark e tcpdump?
Wireshark é uma ferramenta gráfica voltada para análise visual interativa. tcpdump é uma ferramenta de linha de comando, mais leve, comum em servidores sem interface gráfica — frequentemente usada para capturar e depois analisar no Wireshark.
2. Qual a diferença entre um filtro de captura e um filtro de exibição?
O filtro de captura age antes da captura, descartando permanentemente o que não corresponde. O filtro de exibição age depois, apenas ocultando da visualização — os dados capturados continuam intactos.
3. Por que uma máquina 'parada' ainda gera tráfego visível em uma captura?
Porque processos em segundo plano continuam gerando tráfego: consultas DNS, ARP, atualizações automáticas e telemetria de aplicativos, mesmo sem interação direta do usuário.
4. Para que serve a função 'Follow TCP Stream' do Wireshark?
Para reconstruir a conversa completa entre cliente e servidor como um fluxo único, em vez de analisar pacotes isolados — útil, por exemplo, para identificar dados sensíveis trafegando sem criptografia.
5. Por que um arquivo de captura (pcap) é considerado uma evidência tão confiável?
Porque registra o tráfego exatamente como ele ocorreu na rede, sem depender da geração ou retenção de logs por parte de outros sistemas, que podem estar incompletos ou indisponíveis.
O que não fazer¶
- não tente analisar uma captura pacote por pacote sem aplicar filtros antes;
- não confunda filtro de captura com filtro de exibição — eles agem em momentos diferentes;
- não descarte o tcpdump como "a versão fraca" do Wireshark — em servidores remotos, muitas vezes é a única opção viável;
- não ignore o painel de detalhes do pacote — é ali que a estrutura de camadas fica visível;
- não descarte filtros combinados por parecerem complexos — geralmente são a diferença entre uma investigação rápida e uma busca manual demorada.
Erros comuns¶
"Preciso entender cada pacote da captura, um por um"¶
Não.
Com o volume de tráfego de uma rede real, isso é inviável. O caminho é filtrar primeiro, depois investigar o que sobrou.
"Filtro de captura e filtro de exibição são a mesma coisa"¶
Não.
Um decide o que é gravado; o outro só decide o que é mostrado, sobre dados já gravados.
"tcpdump é a versão fraca do Wireshark"¶
Não.
São ferramentas com propósitos diferentes. tcpdump se destaca justamente onde o Wireshark não está disponível: servidores remotos, ambientes sem interface gráfica, automação via script.
Resumo¶
Neste capítulo, aprendemos que:
- Wireshark é uma ferramenta gráfica de análise; tcpdump é uma ferramenta de linha de comando, ideal para captura remota;
- uma captura "crua" parece caótica porque tráfego de fundo (DNS, ARP, broadcast) é normal e constante;
- filtros de captura decidem o que é gravado; filtros de exibição decidem o que é mostrado depois, e podem ser combinados para investigações mais precisas;
- a função Follow TCP Stream reconstrói uma conversa completa entre cliente e servidor;
- capturas de tráfego (
.pcap) são consideradas evidência confiável em investigações, por registrarem o tráfego exatamente como ocorreu.
Não pergunte apenas:
"O que esse pacote contém?"
Pergunte também:
"Que filtro reduz esse tráfego ao que realmente importa?"
"Essa é uma conversa que vale reconstruir por completo?"
"Esse padrão bate com o que já vimos nos capítulos anteriores?"
A ferramenta não organiza o caos por você. Ela só te dá o controle pra fazer isso.
Checkpoint¶
Antes de seguir para o próximo capítulo, confirme se você consegue responder:
- [ ] Qual a diferença de propósito entre Wireshark e tcpdump?
- [ ] Por que uma captura de tráfego "parada" ainda mostra atividade?
- [ ] Qual a diferença entre filtro de captura e filtro de exibição?
- [ ] Como escrever e combinar filtros de exibição básicos no Wireshark?
- [ ] Para que serve o Follow TCP Stream?
- [ ] Por que um arquivo pcap é considerado evidência confiável?
Glossário¶
| Termo | Definição |
|---|---|
| Wireshark | Ferramenta gráfica de captura e análise de tráfego de rede. |
| tcpdump | Ferramenta de linha de comando para captura de tráfego, nativa na maioria dos sistemas Unix/Linux. |
| Filtro de captura | Filtro aplicado antes da captura, descartando permanentemente o que não corresponde. |
| Filtro de exibição | Filtro aplicado após a captura, ocultando temporariamente o que não corresponde, sem descartar dados. |
| PCAP | Formato de arquivo usado para armazenar capturas de tráfego de rede. |
| Follow TCP Stream | Recurso do Wireshark que reconstrói a conversa completa de uma sessão TCP. |
Referências¶
Próximo capítulo¶
No último capítulo deste módulo, vamos estudar Ataques Comuns em Redes — Sniffing, MITM, ARP Spoofing e Port Scanning — aplicando tudo que construímos até aqui.
← Capítulo anterior: VPNs e Criptografia em Trânsito
Próximo: Ataques Comuns em Redes →
Entender antes de decorar.