Captura de pacotes sem interface gráfica em um terminal Linux e Windows

Um escritor da XDA esta semana fez o caso de pular Wireshark no Windows 11 e começar com pktmon, o monitor de pacotes integrado. Esse enquadramento corresponde a uma realidade maior que a maioria dos operadores vive: a caixa que precisamos revistar raramente é a caixa em que estamos sentados. Pode ser um contêiner Docker, um VPS não gerenciado, um Raspberry Pi em um armário ou um roteador OPNsense com apenas SSH aberto. Esse é o problema de captura headless, e a GUI do Wireshark não é a resposta. O que precisamos é de uma CLI que funcione via SSH, escreva um pcap rotativo sem supervisão e leia filtros BPF da mesma forma que o mecanismo de captura do Wireshark faz. Testamos sete ferramentas que fazem exatamente isso, em hosts Windows e Linux, e as classificamos por força.

O que procurar em uma ferramenta de captura de pacotes headless

Uma captura remota tem restrições diferentes de uma de desktop. Seis coisas fazem diferença:

Essa é a lista de verificação. Agora as ferramentas.

Comparação rápida

FerramentaMelhor paraPlataformasPlano gratuitoPreço inicial/mêsAvaliação
TSharkDissectores completos do Wireshark na linha de comandoWindows, macOS, LinuxSimGratuito5/5
tcpdumpCapturas headless onipresentes no Linux e BSDLinux, macOS, BSDSimGratuito5/5
pktmonCapturas do Windows sem instalar nadaWindows 10, 11, Server 2019+SimGratuito4/5
tcpflowReconstruindo fluxos TCP em arquivosLinux, macOSSimGratuito4/5
ngrepCorrespondência de padrão estilo grep pelo fioLinux, macOS, WindowsSimGratuito4/5
ZeekTransformando pacotes em logs pesquisáveisLinux, macOS, BSDSimGratuito4.5/5
TermsharkInterface do Wireshark dentro de uma sessão SSHLinux, macOS, Windows, BSDSimGratuito4/5

As ferramentas

1. TShark, para dissectores completos do Wireshark na linha de comando

TShark vem com Wireshark e executa o mecanismo dissector exato, menos a GUI. Cada protocolo que o Wireshark decodifica, TShark decodifica para stdout, e cada filtro de exibição que conhecemos do Wireshark funciona literalmente (-Y "http.request.method == POST"). Aponte para uma interface com -i eth0, adicione -w capture.pcap para escrever, adicione -b duration:600 -b files:24 para girar a cada hora por um dia completo, e temos captura e análise não supervisionadas em um binário.

Onde é insuficiente: no Windows, ele precisa da instalação completa do Wireshark para pegar o Npcap; em imagens Linux reduzidas, ele puxa as bibliotecas dissector, que não são pequenas. Descriptografia TLS ao vivo ainda precisa de um arquivo keylog, igual à GUI.

Preço: Gratuito, código aberto, GPLv2.

Plataformas: Windows, macOS, a maioria das distribuições Linux, BSD.

Download: Fundação Wireshark

Resumo: o padrão quando queremos o cérebro do Wireshark sem a janela do Wireshark.

2. tcpdump, para capturas headless no Linux e BSD

tcpdump é a ferramenta que todo host Unix já possui, ou está a um pacote de possuir. tcpdump -i eth0 -w /var/log/capture.pcap -G 3600 -C 200 'tcp port 443' registra em um pcap rotativo que podemos puxar mais tarde e abrir no Wireshark, TShark ou qualquer uma das ferramentas abaixo. Sua sintaxe de filtro BPF corresponde exatamente aos filtros de captura do Wireshark, e o binário pesa menos de 2 MB na maioria das distribuições.

Onde é insuficiente: sem filtros de exibição, sem decodificação de protocolo além do modo -vvv integrado. No macOS Big Sur e posterior, algumas interfaces estão bloqueadas sem permissões adicionais.

Preço: Gratuito, código aberto, BSD de 3 cláusulas.

Plataformas: Linux, macOS, FreeBSD, OpenBSD, NetBSD.

Download: Grupo Tcpdump

Resumo: a resposta reflexiva em qualquer caixa Unix que funcione headless.

3. pktmon, para capturas do Windows sem instalar nada

pktmon é o Packet Monitor que a Microsoft fornece com Windows 10, Windows 11 e Windows Server 2019 e posterior. pktmon start --capture --pkt-type all --file-size 200 registra em um arquivo ETL que convertemos com pktmon pcapng (ou, em versões mais antigas, pktmon etl2txt) e abrimos no Wireshark ou TShark em outro lugar. Para uma caixa Server Core, ou um laptop endurecido onde instalar um sniffer é um tíquete de mudança, pktmon faz a captura com ferramentas já em disco.

Onde é insuficiente: a CLI é verbosa, sua sintaxe de filtro usa IDs de componente em vez de BPF, e a etapa ETL-para-pcap é um movimento adicional que nos vincula a uma máquina Windows para a conversão.

Preço: Gratuito, fornecido com Windows.

Plataformas: Windows 10, Windows 11, Windows Server 2019+.

Download: Microsoft Learn

Resumo: a resposta quando o host é Windows e mexer no inventário de software não é.

4. tcpflow, para reconstrução de fluxos TCP em arquivos

tcpflow captura tráfego ao vivo (ou lê um pcap) e escreve cada fluxo TCP reconstruído em seu próprio arquivo, uma direção por arquivo. Muitas vezes é o que realmente queremos quando a pergunta é “o que esse cliente enviou para esse servidor” e folhear pacotes no Wireshark é a altitude errada. É fornecido em Debian, Ubuntu, Fedora e Homebrew, e sua linguagem de filtro é BPF puro.

Onde é insuficiente: UDP é um cidadão de segunda classe; TLS e outros fluxos criptografados despejam ciphertext assim como tcpdump. Os arquivos reconstruídos também crescem rapidamente em capturas longas.

Preço: Gratuito, código aberto, GPLv3.

Plataformas: Linux, macOS.

Download: Simson Garfinkel no GitHub

Resumo: a escolha quando o entregável é “o corpo HTTP”, não “o rastreamento de pacotes”.

5. ngrep, para correspondência de padrão estilo grep pelo fio

ngrep traz um padrão familiar no estilo POSIX para tráfego ao vivo e arquivos pcap. ngrep -q -W byline -d eth0 'GET|POST' 'tcp port 80' imprime apenas pacotes cuja carga corresponde à regex, com o filtro BPF ao redor estreitando o lado da interface. Para perguntas rápidas como “o cliente está enviando o cabeçalho Host errado” ou “a resposta contém essa cadeia de erro”, ngrep supera a ginástica de filtro de exibição.

Onde é insuficiente: não compreende framing TLS ou HTTP/2, portanto qualquer coisa criptografada volta como ruído. Seu ciclo de lançamento desacelerou, e embora a maioria das distribuições ainda o empacote, algumas não fazem.

Preço: Gratuito, código aberto, BSD revisado.

Plataformas: Linux, macOS, Windows via WSL.

Download: ngrep no GitHub

Resumo: o que recorrer quando nosso primeiro instinto é grep.

6. Zeek, para transformar pacotes em logs pesquisáveis

Zeek, anteriormente Bro, fica entre captura bruta e um IDS completo. Em vez de pcap, escreve logs estruturados por protocolo (conn.log, dns.log, http.log, ssl.log, x509.log e dezenas de outros) que podemos grep, enviar para Splunk ou Loki, ou alimentar um SIEM. Em um laboratório caseiro ou um roteador com uma porta espelhada, Zeek nos dá semanas de dados de comportamento em uma pegada que pcap não consegue tocar.

Onde é insuficiente: não é uma instalação de cinco minutos; espere uma etapa de compilação ou um pacote de distro mais uma passagem de configuração leve. A curva de aprendizado é real, e o valor aparece no segundo dia, não no dia zero.

Preço: Gratuito, código aberto, BSD revisado.

Plataformas: Linux, macOS, FreeBSD.

Download: Projeto Zeek

Resumo: a escolha quando queremos responder perguntas semanas depois, não ficar olhando para pacotes hoje.

7. Termshark, para interface do Wireshark dentro de uma sessão SSH

Termshark é um front-end de terminal para TShark. Abra um pcap ou anexe a uma interface ao vivo e obteremos uma lista de pacotes familiar, árvore de protocolo e painel hex, tudo renderizado no terminal já aberto. Funciona via SSH, via tmux, via console serial em uma VM headless, onde quer que TTY seja tudo o que temos.

Onde é insuficiente: em 80 colunas, o layout fica apertado, e capturas ao vivo em links com velocidade de pacote muito alta podem ficar lentas na UI. É um visualizador, não um substituto para coleção com script.

Preço: Gratuito, código aberto, MIT.

Plataformas: Linux, macOS, Windows, FreeBSD.

Download: Termshark

Resumo: o mais próximo que chegamos do Wireshark em uma caixa que nunca terá uma tela.

Como escolher

FAQ

Qual é a melhor ferramenta de captura de pacotes headless para um servidor Windows?

pktmon no Windows Server 2019 e posterior. É fornecido com o SO, captura na camada ETW, gira por conta própria e sai pcapng diretamente em versões atuais. Quando precisamos dos dissectores do Wireshark, convertemos o arquivo e o abrimos no TShark em uma estação de trabalho.

Podemos executar TShark ou tcpdump sem root?

Sim no Linux, com setcap cap_net_raw,cap_net_admin+eip no binário. Isso concede privilégios de captura a um executável específico sem dar ao chamador root completo. No BSD, adicione o usuário ao grupo que possui os dispositivos bpf. No Windows, TShark precisa de Administrador para falar com Npcap.

Como giramos capturas para que uma sessão de longa duração não preencha o disco?

tcpdump usa -G <seconds> para rotação baseada em tempo e -C <MB> para baseada em tamanho, combinada com -W <count> para limitar quantos arquivos são mantidos. TShark expõe o mesmo via -b duration: e -b filesize:. pktmon é limitado com --file-size e seu modo de log circular. Zeek gira seus logs em um cronograma fixo por si próprio.

A linguagem de filtro de exibição do Wireshark é a mesma que a sintaxe do tcpdump?

Não. O filtro de captura de tcpdump e TShark (-f) usa sintaxe BPF (tcp port 443 and host 10.0.0.1). O filtro de exibição de Wireshark e TShark (-Y) é uma linguagem diferente (tcp.port == 443 && ip.addr == 10.0.0.1). Ambos valem a pena aprender; o filtro do lado da captura funciona na velocidade do kernel, o do lado da exibição funciona sobre pacotes já capturados.

pktmon pode substituir completamente o Wireshark?

Não. pktmon é uma ferramenta de captura, não um analisador. Registra em ETL, converte para pcapng em versões mais recentes e para. Para decodificar apertos de mão TLS, fluxos HTTP/2 ou QUIC, ainda abrimos o pcap resultante no Wireshark ou TShark. Os dois se complementam, não se substituem.

É seguro executar essas ferramentas em um host de produção?

Sim, com cuidado razoável. A captura de pacotes é passiva e não modifica o tráfego, mas o custo da CPU em um link ocupado não é zero, e os arquivos pcap podem crescer rapidamente. Limite o disco com uma política de rotação, estreite o filtro BPF para limitar a CPU e prefira uma porta espelhada ou torneira para captura em linha onde o perfil de risco importa.