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

47

J'ai un énorme fichier pcap (généré par tcpdump). Lorsque j'essaie de l'ouvrir dans WireShark, le programme ne répond plus. 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. Par conséquent, je ne peux pas scinder le fichier à l'aide des filtres "hôte" ou "de port" de tcpdump. J'ai aussi essayé la commande 'split' de linux :-) mais sans succès. Wireshark ne reconnaîtrait pas le format.

facha
la source
Quelle est la taille est énorme? Est-il beaucoup plus grand que la RAM disponible?
pehrs
2
Un peu en retard, mais la raison pour laquelle Wireshark ne lit pas les fichiers dont la sortie splitest sortie est parce que split divisera sur des limites d'octet exactes. Cela risque fort de diviser un paquet, ce qui invalidera une partie du contenu du fichier.
Burhan Ali

Réponses:

72

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 dans lequel se scinder. Exemple: dans le cas ci-dessus, les nouveaux fichiers auront une taille de 10 millions d’octets.

Dan Andreatta
la source
Tu es un humain incroyable, Dan.
lobi
Y a-t-il un moyen de faire cela sans interrompre une session? (En supposant qu'une seule session est inférieure à l'argument de limite de taille).
spanishgum
Rapide: tcpdump -r old_file -w new_files -C 1000 grand écart sur tous les 955MB de trafic enregistré
gies0r
18

Utilisez l' editcaputilitaire distribué avec Wireshark.

Dan Carley
la source
5
editpcap -c 1000 input.pcap output.pcapse séparera input.pcapen captures avec un maximum de 1000 paquets par capture. La sortie sera constituée de plusieurs fichiers de capture formatés comme output_{index}_{timestamp}.pcap
suit:
1
Merci Blachniet pour l'exemple! Mais c'est juste editcap, non editpcap, non?
Linde
3

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

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

fx23
la source
2

Le meilleur moyen et le plus rapide consiste à utiliser SplitCap, qui permet de fractionner des fichiers de vidage de paquets volumineux en fonction de sessions, par exemple. De cette façon, vous obtiendrez chaque session TCP dans un fichier PCAP séparé. SplitCap peut également séparer les paquets en fichiers pcap basés sur des adresses IP.

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

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

Bonne chance!

Netresec
la source
Existe-t-il des versions de Linux?
ychaouche
C’est un bon programme qui manque de la capacité de travailler avec des fichiers pcapng.
Guntram Blohm soutient Monica le
0
tcpdump -w trace.pcap -W 48 -G 300 -C 100 -i any port 41110
  • -G 300 il va tourner dans 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
utilisateur531905
la source