Gerador de Comando tcpdump
Monta um comando tcpdump com interface, filtro BPF (host, port), saída para arquivo e modo verboso.
tcpdump em profundidade: filtros BPF, arquivos de captura e análise legal de pacotes
O tcpdump é o analisador de pacotes canônico do mundo Unix/BSD. Ele abre um socket bruto em uma interface de rede, entrega cada frame ao motor BPF (Berkeley Packet Filter) dentro do kernel e imprime — ou grava — apenas os pacotes que casam com a expressão que você passou. Está presente em praticamente toda distribuição Linux, no macOS, no FreeBSD e em vários appliances de rede. Engenheiros usam para diagnosticar conexões, gerar arquivos .pcap para análise posterior no Wireshark, fazer forense digital, medir latência e validar regras de firewall. Esta ferramenta ajuda a montar um comando sintaticamente correto, mas a responsabilidade de capturar somente em redes que você está autorizado a monitorar é integralmente sua.
Sintaxe e flags essenciais
A forma geral é tcpdump [opções] [filtro BPF]. As opções mais usadas são:
-i <interface>— escolhe a interface (eth0,wlan0,any,lo).-w arquivo.pcap— grava os pacotes brutos em arquivo (abrir depois no Wireshark/tshark).-r arquivo.pcap— lê pacotes de uma captura existente.-n/-nn— não resolve DNS nem nome de porta (muito mais rápido e sem queries DNS extra).-X/-XX— imprime hex + ASCII (com cabeçalho de camada 2 no-XX).-v,-vv,-vvv— verbosidade crescente.-c N— para após capturar N pacotes.-s N— snaplen (bytes por pacote). O padrão moderno é 262144; em versões antigas use-s 0para pegar o pacote inteiro.-G N -W M— rotaciona o arquivo de saída a cada N segundos, mantendo no máximo M arquivos.-Z usuario— desce privilégios parausuariologo após abrir o socket.
Expressões BPF
O filtro vem depois das opções. São pequenos programas compilados JIT para código de kernel, então mesmo filtros grandes custam quase nada por pacote:
host 192.168.1.1 # origem ou destino
src host 10.0.0.5 # só origem
dst host 8.8.8.8 # só destino
port 443 # qualquer lado
tcp port 80 # protocolo + porta
not port 22 # exclui SSH
net 10.0.0.0/24 # sub-rede
icmp # protocolo
tcp[tcpflags] & tcp-syn != 0 # pacotes SYN (handshake)
udp and port 53 # DNS sobre UDP
arp # tráfego ARP
(tcp port 80 or tcp port 443) and host exemplo.com
Combine com and, or, not e parênteses. Sempre coloque o filtro entre aspas para o shell não comer caracteres especiais.
Exemplos comentados
# Tráfego HTTPS ao vivo em eth0, sem DNS
sudo tcpdump -ni eth0 'tcp port 443'
# Salva 1000 pacotes SSH para análise offline
sudo tcpdump -i any -c 1000 -w ssh.pcap 'tcp port 22'
# Rotação horária por 24 horas (24 arquivos)
sudo tcpdump -i eth0 -G 3600 -W 24 -w 'cap-%Y%m%d-%H.pcap'
# Lê um pcap e filtra por host
tcpdump -nr captura.pcap 'host 10.0.0.5'
# Apenas pacotes SYN (assinatura de port-scan)
sudo tcpdump -ni eth0 'tcp[tcpflags] & tcp-syn != 0 and not src net 10.0.0.0/24'
tcpdump vs alternativas
Wireshark oferece a melhor UX para análise offline; tshark é a versão CLI dele e suporta mais dissectores que o tcpdump. ngrep filtra por conteúdo (texto) do pacote. tcpflow reconstrói streams TCP. Para visualização de banda use iftop, nload ou nethogs. O tcpdump brilha quando você precisa de uma ferramenta portátil, scriptável e leve, geralmente já instalada na máquina-alvo.
Uso legal e ético
Capturar pacotes em redes que você não administra é ilegal em várias jurisdições. Nos Estados Unidos valem o CFAA e o Wiretap Act; no Brasil a Lei 12.737/2012 (Lei Carolina Dieckmann) e a LGPD restringem a interceptação de comunicações sem consentimento. Pentests precisam de escopo escrito e autorização explícita do dono da rede. Em laboratório ou sala de aula, capture apenas dentro de uma rede isolada sob seu controle total.
FAQ
Preciso de root? Sim — tcpdump abre um socket raw, o que exige CAP_NET_RAW. Use sudo ou conceda a capability ao binário: setcap cap_net_raw,cap_net_admin=eip /usr/sbin/tcpdump.
Consigo ver tráfego HTTPS? Só metadados — IP de origem/destino, hostname no SNI e o handshake TLS. O payload é cifrado; para decriptar é preciso as chaves TLS (SSLKEYLOGFILE) e o Wireshark.
Como rotaciono arquivos de captura? Combine -G <segundos> com -W <quantidade> e um padrão strftime no nome: -G 3600 -W 24 -w 'cap-%Y%m%d-%H.pcap' gera 24 arquivos de uma hora em buffer circular.
Por que perco pacotes em alta velocidade? O ring buffer do kernel estoura. Aumente com -B <KiB>, escreva em SSD, tire flags de verbosidade ou use um filtro BPF mais restritivo.
O formato .pcap é portátil? Sim — tanto o libpcap clássico quanto o pcapng abrem no Wireshark, tshark, Zeek, Suricata e na maioria das ferramentas de forense de rede.
Ferramentas Relacionadas
Gerador de Comando nmap (Completo)
Monta uma varredura nmap com alvo, intervalo de portas, tipo de scan (SYN/Connect/UDP) e detecção de serviço.
Gerador de comando tmux
Monte comandos tmux comuns: nova sessão, anexar, dividir janela, renomear, kill-session, new-window com nome.
Gerador de comando kubectl
Monta comandos kubectl comuns (get, apply, delete, logs, exec, scale) com namespace, rótulos e formatos de saída.
Gerador de comando git rebase
Monte comandos git rebase com branch base, --interactive, --onto, --autosquash e --no-verify, prontos para colar.
QR Code Wi-Fi
Gera QR Code para conectar automaticamente a uma rede Wi-Fi. Funciona com smartphones modernos (iOS, Android) ao escanear pela câmera.
Gerador de MAC Address
Gere endereços MAC aleatórios em vários formatos (dois pontos, hífen, ponto Cisco) com prefixos OUI conhecidos (VMware, VirtualBox, Apple, Intel) ou totalmente aleatórios. Tudo no navegador.