Existe-t-il un outil pour diviser un fichier de capture de paquets (au format pcap) en fichiers distincts pour chaque connexion TCP? (autre qu'un script shell maison qui a probablement besoin de s'exécuter deux fois sur la capture ...). Quelque chose comme `` suivre le flux TCP '' de Wireshark mais pour la ligne de commande (je crains que Wireshark consomme une grande quantité de mémoire lors de l'affichage d'une capture de paquets de 700 Mo)
J'ai regardé tcpflow mais il semble produire des fichiers beaucoup plus gros que les fichiers pcap d'origine et ils ne semblent pas être au format pcap.
linux
command-line-interface
tcp
pcap
Andre Holzner
la source
la source
Réponses:
Vous pouvez également utiliser PcapSplitter qui fait partie du package PcapPlusPlus . Il fait exactement ce dont vous avez besoin (qui divise 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 une grande fichier pcap contenant des milliers de connexions ou même 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 fait pour plusieurs plateformes
EDIT: apparemment, une nouvelle version de PcapPlusPlus est sortie 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 binaires que le lien que j'ai fourni précédemment. Vous pouvez le trouver ici
la source
Vous pouvez utiliser
tcpdump
pour extraire les parties du pcap que vous voulez ... supposons que vous recherchez des paquets dans une connexion socket entre TCP / 55777 sur un hôte et TCP / 80 sur un autre. Votre fichier source estbigfile.pcap
, qui est un vidage de nombreuses sessions HTTP vers l'hébergeur en question ...Cela va tirer tous les paquets vers et depuis TCP / 55777
bigfile.pcap
et les copiersession.pcap
.la source
-s0
-il un effet lorsqu'il est utilisé avec-r
?Un peu exagéré, mais en utilisant
tshark
(livré avecwireshark
), vous pourriez faire aveczsh
: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).la source
tcpflow est ce que vous voulez - divise les pcaps en un fichier par session TCP
http://www.circlemud.org/jelson/software/tcpflow/
la source
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)
la source
inspiré par @sch voici une version bash:
le nom du fichier sera comme ça:
stream number__time__source IP__port__destination IP__port.pcap
tr -d '\r'
est destiné aux utilisateurs de Windows, car tshark dans Windows affiche CR LF.Modifier :
cette solution avec tshark est si lente mais sûre. SplitCap est super rapide mais quand il y a une erreur dans un paquet, il se bloque, tandis que tshark ne vous informe que de l'erreur mais continue:
et enfin il y a PcapSplitter qui est super rapide aussi mais il a besoin du pilote winpcap, il ne fonctionne pas avec le pilote npcap dans windows.
Mais il existe une solution à SplitCap: en utilisant pcapfix, je peux réparer les paquets corrompus, puis SplitCap ne se bloque plus. et c'est ce que j'utilise maintenant, parce que tshark est si lent à se séparer.
et une solution à PcapSplitter que j'ai faite était d'injecter la DLL winpcap en utilisant n'importe quelle méthode mais alors que nous avons SplitCap pourquoi le faire?
la source