Solution 1 :
Vous pouvez utiliser tcpdump
pour extraire les parties du pcap que vous voulez ... supposons que vous recherchiez des paquets dans une connexion socket entre TCP/55777 sur un hôte et TCP/80 sur un autre. Votre fichier source est bigfile.pcap
, qui est un sniffer dump de nombreuses sessions HTTP vers l'hébergeur en question...
tcpdump -r bigfile.pcap -w session.pcap -s0 tcp and port 55777
Cela extraira tous les paquets allant et venant de TCP/55777 dans bigfile.pcap
et copiez-les dans session.pcap
.
Solution 2 :
Vous pouvez également utiliser PcapSplitter qui fait partie du package PcapPlusPlus. Il fait exactement ce dont vous avez besoin (c'est-à-dire diviser les fichiers pcap par connexion TCP ou UDP), il est multi-plateforme et il n'a pas de limite sur le nombre de connexions dans le fichier d'origine (vous pouvez donc l'utiliser pour diviser un grand pcap contenant des milliers de connexions voire plus). Le lien ci-dessus est pour le code source, mais si vous voulez un binaire compilé - voici un lien pour les binaires que j'ai créés pour plusieurs plates-formes
MODIF : apparemment, une nouvelle version de PcapPlusPlus a été publiée et contient des binaires PcapSplitter pour un grand nombre de plates-formes (Windows, Ubuntu 12.04/14.04, Mac OSX Mavericks/Yosemite/El Captian). Je pense qu'il vaut mieux utiliser ces fichiers binaires que le lien que j'ai fourni précédemment. Vous pouvez le trouver ici
Solution 3 :
tcpflow est ce que vous voulez - divise les pcaps en un seul fichier par session TCP
http://www.circlemud.org/jelson/software/tcpflow/
Solution 4 :
Un peu exagéré, mais en utilisant tshark
(livré avec wireshark
), vous pourriez faire avec zsh
:
file=file.pcap
tshark -Tfields -e tcp.stream \
-e frame.time_epoch \
-e ip.src \
-e tcp.srcport \
-e ip.dst \
-e tcp.dstport -r $file |
sort -snu |
while read -A f; do
tshark -r $file -2R "tcp.stream == $f[1]" -w ${(j:-:)f[2,-1]}.pcap
done
Ce qui génère des fichiers nommés comme 1509466312.202450000-10.0.0.1-58892-10.0.0.2-80.pcap
(basé sur le premier paquet vu pour chaque connexion).
Solution 5 :
Il semble y avoir cet outil qui pourrait fonctionner (je ne l'ai pas utilisé personnellement)
http://www.netresec.com/?page=SplitCap (basé sur Windows)
SplitCap est un séparateur de fichiers pcap opensource gratuit (comme dans la bière). SplitCapsplit un gros fichier pcap en plusieurs fichiers basés sur des sessions TCP et UDP, un fichier pcap par session. SplitCap peut également être utilisé pour diviser un fichier pcap en un fichier pcap par paire d'hôtes au lieu d'une session.