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:
- Suporte a filtros BPF. A mesma sintaxe
tcp port 443 and host 10.0.0.1deve funcionar; um filtro que falha na captura não pode ser recuperado depois. - Binário pequeno, poucas dependências. Imagens Alpine e Debian reduzidas não devem exigir X11 apenas para registrar o tráfego.
- Rotação e escrita para pcap. Capturas à noite preenchem discos; um buffer circular via
-C,-Gou um sinalizador equivalente importa mais do que qualquer recurso de GUI. - Operação sem root quando possível.
setcap cap_net_rawnos permite descartar root em caixas compartilhadas. - Saída ciente do protocolo. Quando a resposta é “essa solicitação DNS está malformada”, uma linha decodificada vence um despejo hexadecimal.
- Amigável com SSH. Saída segura de TTY, sem bloqueios ncurses, sem suposições sobre um terminal de 200 colunas.
Essa é a lista de verificação. Agora as ferramentas.
Comparação rápida
| Ferramenta | Melhor para | Plataformas | Plano gratuito | Preço inicial/mês | Avaliação |
|---|---|---|---|---|---|
| TShark | Dissectores completos do Wireshark na linha de comando | Windows, macOS, Linux | Sim | Gratuito | 5/5 |
| tcpdump | Capturas headless onipresentes no Linux e BSD | Linux, macOS, BSD | Sim | Gratuito | 5/5 |
| pktmon | Capturas do Windows sem instalar nada | Windows 10, 11, Server 2019+ | Sim | Gratuito | 4/5 |
| tcpflow | Reconstruindo fluxos TCP em arquivos | Linux, macOS | Sim | Gratuito | 4/5 |
| ngrep | Correspondência de padrão estilo grep pelo fio | Linux, macOS, Windows | Sim | Gratuito | 4/5 |
| Zeek | Transformando pacotes em logs pesquisáveis | Linux, macOS, BSD | Sim | Gratuito | 4.5/5 |
| Termshark | Interface do Wireshark dentro de uma sessão SSH | Linux, macOS, Windows, BSD | Sim | Gratuito | 4/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
- Se o host for uma caixa Windows moderna que não possuímos: pktmon. Nada para instalar, nada para explicar à segurança.
- Se o host for Linux ou BSD e o possuirmos: tcpdump para captura, TShark para análise em nossa própria estação de trabalho.
- Se a captura tiver que acontecer dentro de um contêiner ou imagem Alpine: tcpdump, ou um sidecar TShark mínimo. tcpflow quando os fluxos TCP são o entregável real.
- Se precisarmos de uma visão em forma de Wireshark mas apenas tivermos SSH: Termshark. É a maneira mais rápida de obter uma interface familiar em uma caixa estranha.
- Se a pergunta for “algum pacote contém a string X”: ngrep. Indique o padrão, obtenha os pacotes.
- Se nos importarmos com o comportamento ao longo das semanas, não os últimos cinco minutos: Zeek. Transforma a rede em um conjunto de dados consultável.
- Se estivermos fazendo análise forense em um pcap capturado por outra pessoa: TShark na linha de comando, tcpflow quando os artefatos importam mais do que a ordem do fio.
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.