como dividir um arquivo pcap em um conjunto de arquivos menores

47

Eu tenho um arquivo pcap enorme (gerado pelo tcpdump). Quando tento abri-lo no wireshark, o programa fica sem resposta. Existe uma maneira de dividir um arquivo em um conjunto menor para abri-los um por um? O tráfego capturado em um arquivo é gerado por dois programas em dois servidores, portanto, não posso dividir o arquivo usando os filtros tcpdump 'host' ou 'port'. Eu também tentei o comando 'split' do linux :-) mas sem sorte. O Wireshark não reconheceria o formato.

facha
fonte
Quão grande é enorme? É muito maior que a RAM disponível?
pehrs
2
Um pouco tarde, mas o motivo pelo qual o Wireshark não lê arquivos que são gerados splité porque a divisão será dividida nos limites exatos de bytes. É altamente provável que um pacote seja dividido, o que invalida parte do conteúdo do arquivo.
precisa

Respostas:

72

Você pode usar o próprio tcpdump com as opções -C, -r e -w

tcpdump -r old_file -w new_files -C 10

A opção "-C" especifica o tamanho do arquivo para dividir. Por exemplo: no caso acima, o tamanho dos novos arquivos será de 10 milhões de bytes cada.

Dan Andreatta
fonte
Você é um humano incrível, Dan.
Lobi
Existe uma maneira de fazer isso sem desmembrar uma sessão? (Supondo que uma única sessão seja menor que o argumento limite de tamanho).
spanishgum
Rápido: tcpdump -r old_file -w new_files -C 1000 divide em cada 955MB de tráfego registrado
gies0r 25/07
18

Use o editcaputilitário que é distribuído com o Wireshark.

Dan Carley
fonte
5
editpcap -c 1000 input.pcap output.pcapserá dividido input.pcapem capturas com no máximo 1000 pacotes por captura. A saída será vários arquivos de captura formatados comooutput_{index}_{timestamp}.pcap
blachniet 28/02
11
Obrigado blachniet pelo exemplo! Mas é só que editcapnão editpcap, né?
Lindhe
3

Sei que essa resposta é um pouco tarde, mas também pode servir a outras pessoas. Encontrei uma ótima ferramenta para dividir arquivos pcap: PcapSplitter . Faz parte da biblioteca PcapPlusPlus , o que significa que é multiplataforma (Win32, Linux e Mac OS) e pode dividir arquivos pcap com base em critérios diferentes, como tamanho do arquivo (o que você parece precisar), mas também por conexão, cliente / servidor IP, porta do servidor (semelhante ao protocolo), contagem de pacotes, etc. Achei muito útil. O link acima é para o código fonte, mas se você não quiser / sabe compilar, criei binários compilados para várias plataformas com as quais estou usando esta ferramenta. Eu recomendo muito esta ferramenta

EDIT: aparentemente uma nova versão do PcapPlusPlus foi lançada e contém binários PcapSplitter para várias plataformas (Windows, Ubuntu 12.04 / 14.04, Mac OSX Mavericks / Yosemite / El Captian). Eu acho que é melhor usar esses binários do que o link que eu forneci anteriormente. Você pode encontrá-lo aqui

fx23
fonte
2

A melhor e mais rápida maneira é usar o SplitCap, que pode dividir arquivos grandes de despejo de pacotes com base em sessões, por exemplo. Dessa forma, você obteria cada sessão TCP em um arquivo PCAP separado. O SplitCap também pode separar pacotes em arquivos pcap com base nos endereços IP.

Você pode ler mais sobre o SplitCap no blog da Netresec: http://www.netresec.com/?page=Blog&month=2011-05&post=Split-or-filter-your-PCAP-files-with-SplitCap

Faça o download do SplitCap aqui: http://www.netresec.com/?page=SplitCap

Boa sorte!

Netresec
fonte
Existem versões do Linux?
ychaouche
Este é um bom programa, por não ter a capacidade de trabalhar com arquivos pcapng.
Guntram Blohm apoia Monica
0
tcpdump -w trace.pcap -W 48 -G 300 -C 100 -i any port 41110
  • -G 300 girará em 5 minutos
  • -W 48 contagem de arquivos
  • -C 100 tamanho do arquivo 100 MB
  • port você pode especificar a porta com base no aplicativo
user531905
fonte