Introdução e Arquitetura
O tcpdump é um analisador de pacotes em nível de linha de comando, padrão em distribuições Linux e sistemas BSD. Ele utiliza a biblioteca libpcap para acessar diretamente a camada de rede do kernel, permitindo a inspeção de tráfego em tempo real para fins de auditoria, depuração de conectividade e monitoramento de segurança.
Estrutura de Comando e Modificadores
tcpdump [opções] [expressão_de_filtro]
-i [interface]: Define o adaptador de rede alvo para escuta.-n: Suprime a conversão de IPs para nomes via DNS e resolve portas numericamente.-c [quantidade]: Interrompe a execução automaticamente após capturar o número especificado de quadros.-s [bytes]: Define o tamanho do snapshot (quantos bytes de cada pacote serão armazenados na memória).-A: Exibe o conteúdo do pacote em formato ASCII legível.-X: Apresenta os dados brutos simultaneamente em representação hexadecimal e ASCII.-w [caminho]: Grava o fluxo binário cru em um arquivo.pcappara análise offline.-r [caminho]: Reconstrói e filtra pacotes a partir de um arquivo de captura existente.
Mecanismo de Filtragem
A expressão de filtro utiliza sintaxe BPF (Berkeley Packet Filter) e suporta operadores booleanos (and, or, not) combinados com qualificadores de escopo. Isso permite a criação de regras precisas para isolar tráfego específico antes mesmo do processamento pelo espaço de usuário.
Cenários de Uso Reconfigurados
# 1. Escuta completa na interface de rede principal
sudo tcpdump -i enp0s3
# 2. Isolamento por host específico com supressão de resolução
sudo tcpdump -n host 10.0.0.85
# 3. Segmentação por protocolo de transporte
sudo tcpdump tcp
sudo tcpdump udp
sudo tcpdump icmp
# 4. Monitoramento de portas de serviço críticas
sudo tcpdump port 443 or port 8080
# 5. Combinação de endereço IP e porta com operadores lógicos
sudo tcpdump host 172.16.10.4 and port 3306
sudo tcpdump not host 192.168.0.5
# 6. Filtros direcionais explícitos
sudo tcpdump src 10.1.5.22
sudo tcpdump dst port 22
# 7. Restrições baseadas em tamanho de quadro
sudo tcpdump less 200
sudo tcpdump greater 1400
# 8. Captura limitada a sub-redes específicas
sudo tcpdump net 10.10.0.0/16 and udp
# 9. Exibição detalhada com marcação de tempo e cabeçalho de enlace
sudo tcpdump -tttt -n -e
# 10. Formato compacto para leitura rápida em terminais
sudo tcpdump -nq
Decomposição dos Campos de Saída
A estrutura de linha gerada pelo utilitário contém metadados essenciais para análise forense de rede:
- timestamp: Registro cronológico exato da captura.
- src / dst: Endereços IPv4 ou IPv6 de origem e destino.
- proto: Identificador do protocolo de transporte ou camada de rede.
- length: Dimensão total do quadro em bytes.
- ttl: Time To Live, contador de roteadores que o pacote pode atravessar antes do descarte.
- flags: Bits de controle TCP (SYN, ACK, FIN, RST, etc.) ou endicadores de fragmentação IP.
- seq / ack: Contadores de sequência e confirmação para garantia de entrega e ordenação TCP.
- tos: Type of Service, relacionado à prioridade de encaminhamento (QoS).
- id / offset: Identificador único e deslocamento para reconstrução de fragmentos IP.
- window: Tamanho da janela deslizante TCP para gerenciamento de fluxo.
- urgent: Ponteiro indicando a posição de dados prioritários no stream.
- options: Parâmetros negociados como MSS, SACK ou marcas temporais.
Persistência e Processamento em Lote
# Gravação binária para análise posterior em ferramentas gráficas
sudo tcpdump -i any -w /var/log/audit_2024.pcap
# Releitura de arquivo capturado aplicando novo filtro
sudo tcpdump -r /var/log/audit_2024.pcap port 5432
# Extração de texto legível para inspeção manual
sudo tcpdump -A -c 100 > dump_payload.txt
# Pipeline para extração seletiva de endpoints e portas
sudo tcpdump -nq -i enp0s3 tcp | awk '{print $3, $5}'