59 votes

Comment diviser un fichier pcap en un ensemble de fichiers plus petits

J'ai un énorme fichier pcap (généré par tcpdump). Lorsque j'essaie de l'ouvrir dans Wireshark, le programme devient simplement non réactif. Existe-t-il un moyen de diviser un fichier en plusieurs fichiers plus petits pour les ouvrir un par un? Le trafic capturé dans un fichier est généré par deux programmes sur deux serveurs, donc je ne peux pas diviser le fichier en utilisant des filtres tcpdump 'host' ou 'port'. J'ai également essayé la commande linux 'split' :-) mais sans succès. Wireshark ne reconnaîtrait pas le format.

0 votes

À quel point est énorme? Est-ce beaucoup plus grand que la RAM disponible?

3 votes

Un peu tard, mais la raison pour laquelle Wireshark ne lit pas les fichiers qui sont le résultat de split est que split divisera sur des limites exactes d'octets. Il est très probable que cela divise un paquet qui invalide une partie du contenu du fichier.

87voto

Dan Andreatta Points 5352

Vous pouvez utiliser tcpdump lui-même avec les options -C, -r et -w

tcpdump -r old_file -w new_files -C 10

L'option "-C" spécifie la taille du fichier à diviser en. Par exemple, dans le cas ci-dessus, la taille des nouveaux fichiers sera de 10 millions d'octets chacun.

0 votes

Y a-t-il un moyen de faire cela sans rompre une session? (En supposant qu'une seule session soit plus petite que l'argument de limite de taille).

0 votes

Rapide : tcpdump -r old_file -w new_files -C 1000 divise tous les 955 Mo de trafic enregistré

0 votes

J'ai un fichier pcap de 2 Go, pour moi il crée seulement un split de 200 Mo et commence ensuite à renvoyer une erreur. longueur de capture de paquets non valide 2704320705, plus grande que snaplen de 262144

25voto

Dan Carley Points 24959

Utilisez l'editcap utilitaire qui est distribué avec Wireshark.

9 votes

editpcap -c 1000 input.pcap output.pcap divisera input.pcap en captures contenant un maximum de 1000 paquets par capture. La sortie sera constituée de plusieurs fichiers de capture formatés comme output_{index}_{timestamp}.pcap

1 votes

Merci blachniet pour l'exemple! Mais c'est juste editcap, pas editpcap, non?

0 votes

Un autre exemple pour obtenir des enregistrements dans l'intervalle de temps spécifié A-B : editcap -A "2021-08-07 16:00:00.901917" -B "2021-08-07 16:30:00.901917" input.pcap output.pcap

4voto

Hillcow Points 101

Je sais que cette réponse est un peu tardive, mais elle peut également être utile à d'autres personnes. J'ai trouvé un excellent outil pour diviser les fichiers pcap: PcapSplitter. Cela fait partie de la bibliothèque PcapPlusPlus ce qui signifie qu'il est multiplateforme (Win32, Linux et Mac OS), et il peut diviser les fichiers pcap en fonction de différents critères tels que la taille du fichier (ce dont vous semblez avoir besoin) mais aussi par connexion, adresse IP client/serveur, port serveur (similaire au protocole), nombre de paquets, etc. Je l'ai trouvé très utile. Le lien ci-dessus est pour le code source, mais si vous ne voulez pas/ne savez pas comment compiler, j'ai créé des binaires compilés pour plusieurs plateformes avec lesquelles j'ai utilisé cet outil. Je recommande vivement cet outil.

EDIT: Apparemment, une nouvelle version de PcapPlusPlus a été publiée et elle contient des binaires de PcapSplitter pour beaucoup de plateformes (Windows, Ubuntu 12.04/14.04, Mac OSX Mavericks/Yosemite/El Captain). Je pense qu'il est préférable d'utiliser ces binaires que le lien que j'ai fourni précédemment. Vous pouvez les trouver ici

2voto

Netresec Points 21

La meilleure et la plus rapide façon d'aller est d'utiliser SplitCap, qui peut diviser de gros fichiers de captures de paquets en fonction des sessions par exemple. De cette façon, vous obtiendriez chaque session TCP dans un fichier PCAP séparé. SplitCap peut également séparer les paquets en fichiers pcap en fonction des adresses IP.

Vous pouvez en savoir plus sur SplitCap sur le blog de Netresec : http://www.netresec.com/?page=Blog&month=2011-05&post=Split-or-filter-your-PCAP-files-with-SplitCap

Téléchargez SplitCap ici : http://www.netresec.com/?page=SplitCap

Bonne chance!

1 votes

Y a-t-il des versions de Linux ?

0 votes

C'est un bon programme, mais il lui manque la capacité de travailler avec les fichiers pcapng.

0voto

user531905 Points 1
tcpdump -w trace.pcap -W 48 -G 300 -C 100 -i any port 41110
  • -G 300 il va tourner tous les 5 minutes
  • -W 48 nombre de fichiers
  • -C 100 taille de fichier 100 Mo
  • port vous pouvez spécifier le port en fonction de l'application

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X