← Voltar
Tempo médio: 15-25 minNível técnico: Avançado

TCPDump

Objetivo e funcionamento

Capturar pacotes em uma interface e aplicar filtros BPF antes da gravação. A visibilidade depende do ponto de captura, offloads, VLAN, bridge, namespace, espelhamento e criptografia. Modo promíscuo permite receber quadros entregues à interface além do MAC local, mas não atravessa switches sem SPAN/TAP e pode ser desativado com `-p`.

Seleção e saída segura

sudo tcpdump -D
sudo tcpdump -i eth0 -nn
sudo tcpdump -i any -nn -c 100
sudo tcpdump -i eth0 -nn -s 0 -w incidente.pcap
sudo tcpdump -nn -r incidente.pcap
`-D` lista interfaces; `-i` escolhe; `-nn` evita DNS e nomes de portas; `-c` limita pacotes; `-s` define *snap length* (`0` solicita pacote completo nas versões atuais); `-w` grava PCAP; `-r` lê. Captura completa aumenta risco e armazenamento. Use `-C`, `-G`, `-W` para rotação conforme a versão e teste a política antes do incidente.

Filtros BPF

tcpdump -i eth0 -nn host 192.0.2.10
tcpdump -i eth0 -nn net 192.0.2.0/24
tcpdump -i eth0 -nn port 443
tcpdump -i eth0 -nn src host 192.0.2.10 and dst port 443
tcpdump -i eth0 -nn tcp
tcpdump -i eth0 -nn udp
tcpdump -i eth0 -nn icmp or icmp6
tcpdump -i eth0 -nn arp
tcpdump -i eth0 -nn 'udp port 53 or tcp port 53'
tcpdump -i eth0 -nn 'udp port 67 or udp port 68'
tcpdump -i eth0 -nn 'ether proto 0x8863 or ether proto 0x8864'
Os últimos filtros cobrem DNS, DHCPv4 e descoberta/sessão PPPoE. Para DHCPv6 use portas UDP 546/547. Parênteses e operadores devem ser protegidos do shell.

Flags TCP e casos práticos

tcpdump -i eth0 -nn 'tcp[tcpflags] & tcp-syn != 0'
tcpdump -i eth0 -nn 'tcp[tcpflags] & tcp-rst != 0'
tcpdump -i eth0 -nn 'host 192.0.2.10 and (tcp port 80 or tcp port 443)'
tcpdump -i eth0 -nn -vvv 'icmp or icmp6'
  • SYN sai sem SYN-ACK: retorno ausente, filtro, NAT ou servidor são hipóteses; capture em outro ponto;
  • SYN, SYN-ACK e ACK aparecem: handshake ocorreu naquele ponto;
  • RST: identifique origem e sequência; pode ser porta fechada, aplicação ou dispositivo intermediário;
  • DNS query sem response: compare cliente, gateway e resolvedor;
  • ARP Request repetido sem Reply: permaneça na camada local;
  • PPPoE PADI sem PADO: investigue VLAN, bridge, acesso e concentrador.
Checksums “incorretos” em captura no host podem ser efeito de checksum offload: o hardware completa o valor após o ponto observado. Large segmentation/receive offload também altera a aparência. Confirme com captura externa ou ajuste controlado de offloads, sem mudar produção apenas para “limpar” a tela.

Procedimento e permissões

Defina hipótese, interface, fluxo e duração; sincronize relógio; use o filtro menos amplo que ainda captura contexto; reproduza uma vez; pare e faça cópia íntegra. `root`, capabilities ou grupo específico podem ser exigidos. Conceder captura é privilégio sensível e deve seguir menor privilégio.

Privacidade, armazenamento e evidência

PCAP pode conter credenciais sem criptografia, cookies, consultas DNS, IPs, payloads e dados pessoais. Obtenha autorização, minimize snap length/escopo, criptografe armazenamento, controle acesso e retenção, registre hash e cadeia de custódia quando necessário. Não envie PCAP bruto sem revisão.
Registre host/ponto, interface/VLAN, filtro literal, comando/versão, timezone, início/fim, hipótese, reprodução, nome do arquivo, tamanho, hash e responsáveis.

Limitações e erros comuns

Captura local não vê necessariamente tráfego descartado antes dela; `any` pode omitir detalhes de enlace; criptografia oculta conteúdo mas não metadados; filtro estreito demais perde causa; filtro amplo demais expõe dados e sobrecarrega disco. TCPDump não substitui logs, métricas ou metodologia.

Conclusão

TCPDump comprova eventos no ponto observado. Para localizar a falha, compare pontos e relógios sem extrapolar além da visibilidade da captura.

Documentos Relacionados