Comment filtrer, diviser ou fusionner des fichiers pcap sous Linux
Si vous êtes un administrateur réseau impliqué dans le test d'un système de détection d'intrusion ou d'une politique de contrôle d'accès au réseau, vous pouvez souvent vous fier à une analyse hors ligne utilisant des vidages de paquets collectés. Lorsqu'il s'agit de stocker les vidages de paquets, le format de vidage de paquets de libpcap (format pcap) est le plus largement utilisé par de nombreux programmes open source de détection et de capture de paquets. Si les fichiers pcap sont utilisés dans le cadre de tests d'intrusion ou de tout type d'analyse hors ligne, il est souvent nécessaire de manipuler les fichiers pcap avant de les injecter dans le réseau.
Dans ce tutoriel, je vais présenter les outils de manipulation pcap utiles et montrer leurs cas d'utilisation.
Présentation d'Editcap et Mergecap
Wireshark, le renifleur de paquets basé sur une interface graphique le plus populaire, est en fait livré avec une suite d'outils de ligne de commande très utiles. Parmi eux se trouvent editcap et mergecap. Le premier est un éditeur pcap polyvalent qui peut filtrer ou diviser un fichier pcap de différentes manières. Ce dernier vous permet de fusionner plusieurs fichiers pcap en un seul. Ce didacticiel est basé sur ces outils CLI Wireshark.
Si Wireshark est déjà installé, ces outils sont déjà disponibles pour vous. Sinon, installez les outils de ligne de commande Wireshark sous Linux. Notez que sur les distributions basées sur Debian, vous pouvez installer les outils de ligne de commande Wireshark sans installer l'interface graphique de Wireshark, tandis que sur les distributions basées sur Red Hat, vous devez installer l'intégralité du package Wireshark.
Installez les outils de ligne de commande Wireshark sur Debian, Ubunu ou Linux Mint
sudo apt-get install wireshark-common
Installez les outils de ligne de commande Wireshark sur Fedora, CentOS ou RHEL
sudo yum install wireshark
Une fois que vous avez installé les outils CLI Wireshark, vous pouvez commencer à utiliser les outils editcap et mergecap.
Filtrer un fichier Pcap
editcap vous permet de filtrer un fichier d'entrée pcap de différentes manières et d'enregistrer le résultat dans un nouveau fichier pcap.
Tout d'abord, vous pouvez filtrer un fichier d'entrée pcap en fonction de l'heure de début et/ou de l'heure de fin. Les options -A et -B sont utilisées pour capturer uniquement les paquets dont l'heure d'arrivée se situe dans une plage horaire spécifique (par exemple, entre 14h30 et 14h35). Le format d'heure à utiliser est AAAA-MM-JJ HH:MM:SS.
editcap -A '2014-12-10 10:11:01' -B '2014-12-10 10:21:01' input.pcap output.pcap
Si vous souhaitez extraire des paquets N spécifiques d'un fichier d'entrée pcap, vous pouvez également le faire. La commande ci-dessous extrait 100 paquets (de 401 à 500) de input.pcap et les enregistre sous output.pcap :
editcap input.pcap output.pcap 401-500
Si vous souhaitez filtrer les paquets en double dans un fichier pcap, utilisez l'option -D . Cela comparera chaque paquet aux paquets précédents () en termes de longueur de paquet et de hachage MD5, et éliminera le paquet si une correspondance est trouvée.
editcap -D 10 input.pcap output.pcap
37568 packets seen, 1 packets skipped with duplicate window of 10 packets.
Alternativement, vous pouvez définir en termes d'intervalle de temps. Si vous utilisez l'option -w , il comparera chaque paquet à tous les paquets arrivés dans les secondes pour déterminer sa duplicité.
editcap -w 0.5 input.pcap output.pcap
50000 packets seen, 0 packets skipped with duplicate time window equal to or less than 0.500000000 seconds.
Diviser un fichier Pcap
editcap peut également être utile si vous souhaitez diviser un gros fichier pcap en plusieurs fichiers pcap plus petits.
Pour diviser un fichier pcap en plusieurs fichiers pcap du même nombre de paquets :
editcap -c <packets-per-file> <input-pcap-file> <output-prefix>
Chaque fichier pcap de sortie aura le même nombre de paquets et sera nommé .
Pour diviser un fichier pcap en plusieurs fichiers pcap avec le même intervalle de temps :
editcap -i <seconds-per-file> <input-pcap-file> <output-prefix>
Fusionner les fichiers Pcap
Si vous souhaitez combiner plusieurs fichiers pcap en un seul, mergecap est pratique.
Lors de la combinaison de fichiers pcap, mergecap, par défaut, s'appuie sur les informations d'horodatage par paquet dans les fichiers pcap pour trier les paquets par ordre chronologique.
mergecap -w output.pcap input.pcap input2.pcap [input3.pcap . . .]
Si vous souhaitez ignorer les informations d'horodatage et fusionner simplement plusieurs fichiers pcap dans leur ordre dans la ligne de commande, utilisez l'option -a.
Par exemple, la commande suivante écrira tous les paquets de input.pcap vers output.pcap, suivis de tous les paquets dans input2.pcap.
mergecap -a -w output.pcap input.pcap input2.pcap
Résumé
Dans ce tutoriel, j'ai présenté plusieurs cas d'utilisation de manipulation de fichiers pcap à l'aide de editcap et mergecap. En plus de ceux-ci, il existe d'autres outils liés à pcap, par exemple, reordercap pour réorganiser les paquets, text2pcap pour envoyer du texte à pcap . ), pcap-diff pour effectuer des diff sur les fichiers pcap, etc. Certains de ces pcap Les outils peuvent être très pratiques avec les outils d'injection de paquets pour les tests de pénétration du réseau et à diverses fins de dépannage du réseau, alors mieux vaut savoir qu'ils existent !
Utilisez-vous un outil pcap ? Si oui, quel est votre cas d’utilisation ?
