Manipulation avancée des fichiers PCAP avec editcap

I. Présentation d'editcap et mergecap

Lors de la manipulation et l'étude de paquets réseaux en tant qu'administrateur systèmes, administrateur réseaux ou même dans le domaine de la sécurité et du forensic, on peut vite être amené à manipuler des fichiers au format PCAP, par exemple pour effectuer des filtres dessus, en fusionner ou en couper en plusieurs petits fichiers. C'est ce que nous allons voir dans ce cours.


Pour rappel, un fichier PCAP est un fichier issu d'un sniffe de flux réseaux (par exemple avec Wireshark ou TCPDump), ce sniff réseaux ayant été traité avec la librairie libpcap qui produit justement un enregistrement au format PCAP (ou PCAPNG parfois). Ces fichiers peuvent alors être transportés, stockés et rouverts plus tard, on voit alors tout l'intérêt de savoir les manipuler avec précisions.

II. Installation d'editcap et de mergecap

Editcap fait partie de l'environnement des outils Wireshark, il permet de lire une grande partie des paquets capturés par Wireshark (ou d'autre application comme TCPDump) à partir d'un fichier, on pourra optionnellement les convertir et les trier selon divers critères  et écrire le résultat dans un nouveau fichier au format PCAP. L'utilisation typique est le fait d'avoir un gros fichier PCAP dont on souhaite filtrer le contenu pour l'écrire dans un nouveau fichier à part.

Mergecap est un outil complémentaire d'Editcap qui n'interviendra que pour une utilisation particulière : la fusion de plusieurs fichiers au format PCAP.

Editcap et Mergecap seront donc présents sur votre système Linux dès que vous installerez Wireshark, si vous souhaitez tout de même n'installer que editcap et mergecap, ceux-ci sont  contenus dans le paquet "Wireshark-common", pour Debian et Ubuntu :

apt-get install wireshark-common

Pour CentOS/RHEL, il faut passer par l'installer de Wireshark directement :

yum install wireshark

Editcap est un outil très complet, bien que nous ne verrons que quelques une de ses fonctionnalités dans ce cours.

III. Couper un fichier PCAP

Nous allons tout d'abord voir comment couper un fichier PCAP. On va simplement mettre en entrée un fichier PCAP puis obtenir un second fichier PCAP à partir de celui-ci en lui appliquant une règle spécifique qui peut, par exemple, être un certain nombre de paquets ou un temps défini. Il peut parfois être pratique de savoir comment couper un très gros fichier PCAP en plusieurs fichiers plus petits pour les faire analyser par plusieurs personnes par exemple. Voici la syntaxe générale d'editcap dans ce contexte :

editcap -c <paquets-par-fichiers> <fichier-pcap-entrée> <préfixe-fichier-pcap-sortie>

Plus clairement, voici comment utiliser editcap avec un fichier PCAP si on souhaite le couper en plusieurs fichiers de 10 000 paquets :

editcap -c 10000 capture.pcap capture-partie

Je mets donc avec l'option "-c" ("count") le nombre de paquets par fichier, ensuite le fichier à lire ("capture.pcap") puis le préfixe des fichiers en sortie, soit "capture-partie", la suite du nom des fichiers sera complétée automatiquement par editcap. En sortie, avec un fichier PCAP de 73 000 paquets, voici ce que j'aurai :

couper-fichier-pcap-editcap
Fichiers résultant du tri automatique d'editcap

J'ai donc bien 7 fichiers de 10 000 paquets  au format PCAP, quelle précision !

On peut aussi effectuer un découpage chronologique, c'est à dire en fonction de la durée de la capture initiale. Voici la syntaxe générale :

editcap -i <secondes-par-fichiers> <fichier-pcap-entrée> <préfixe-fichier-pcap-sortie>

Par exemple si l'on souhaite effectuer un découpage pour avoir des fichiers contenant 60 secondes de capture chacun, on utilisera la commande suivante :

editcap -i 60 capture.pcap capture-partie

Nous aurons donc en sortie un résultat similaire à celui précédent sauf que nous aurons cette fois-ci des fichiers correspondant à 60 secondes de capture chacun.

IV. Fusionner des fichiers PCAP

Nous allons maintenant voir comment fusionner des fichiers au format PCAP, on peut par exemple avoir besoin de cette manipulation si l'on dispose de plusieurs fichiers PCAP obtenus sur des écoutes procédées sur des machines différentes que l'on souhaite analyser en même temps. Supposons que l'on dispose d'un fichier capture1.pcap, d'un fichier capture2.pcap et d'un fichier capture3.pcap. On va vouloir fusionner les trois dans un fichier capture-123.pcap :

merge capture-123.pcap capture1.pcap capture2.pcap capture3.pcap

On se retrouvera donc avec le fichier capture-123.pcap contenant les paquets des trois autres.

V. Filtrer le contenu d'un fichier PCAP

Nous allons maintenant voir une utilisation un peu plus avancée de l’outil editcap. On va en effet chercher à ouvrir un fichier PCAP, filtrer son contenu, puis écrire ce qui est sorti du filtre dans un nouveau fichier.

On peut par exemple avec editcap effectuer un filtre sur une fenêtre de temps très précise. Si j'effectue un enregistrement du trafic réseau permanent que j'enregistre dans un fichier PCAP, puis que je souhaite récupérer ce qu'il s'est passé entre 21:14:00 et 21:15:00 le 3 février 2015, on pourra utiliser la ligne de commande suivante :

editcap -A '2015-03-02 21:14:00' -B '2015-03-02 21:15:00' capture-input.pcap capture-sortie.pcap

J'aurais donc dans le fichier "capture-sortie.pcap" les paquets reçus et émis dans la fenêtre de temps précisée grâce à l'option "-A" pour la date de début et "-B" pour la date de fin.

Note : Attention à bien utiliser le bon format de date, à savoir "AAAA-MM-DD HH:MM:SS"

Également, on pourra très facilement extraire un nombre précis de paquets dans une capture au format PCAP. Par exemple si l'on souhaite extraire les paquets du numéro 1500 au numéro 1700 :

editcap apture-input.pcap capture-sortie.pcap 1500-1700

Nous avons ici vu différents contextes d'utilisation des outils editcap et mergecap qui font partie de la suite Wireshark, ceux-ci peuvent être utilisés dans nombre d'autres contextes, mais la construction des syntaxes ressemblera à ce que l'on a vu ici.

 

 

Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Partager sur Google+ Envoyer par mail

Mickael Dorigny

Fondateur d'IT-Connect.fr et d'Information-security.fr. Auditeur sécurité chez Amossys.

    mickael has 478 posts and counting.See all posts by mickael

    Une pensée sur “Manipulation avancée des fichiers PCAP avec editcap

    • Bonjour
      Merci pour cette documentation très bien détaillée.
      Je développe avec WinDev et dois récupérer des trames de pesées qu’une balance envoie sur un port éthernet. Existe-t-il un logiciel qui convertisse un fichier pcap en fichier txt (ou autre format ASCII) avec une ligne de commande ?
      Merci pour votre aide.

      Répondre

    Laisser un commentaire

    Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

     

    Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.