16/12/2024

Administration Réseau

Lecture et écriture de fichier avec TCPdump

I. Présentation de TCPdump

TCPdump est, comme son nom peut l'indiquer, un analyseur de flux et de paquets réseau. Son rôle est donc de capturer tout ou partie d'un flux réseau transitant au travers une ou plusieurs interfaces d'une machine. L'analyse réseau est souvent utilisée dans l'administration système à des fins d'apprentissage et également à des fins de diagnostiques. C'est intéressant, car on voit exactement le contenu de ce qui arrive et sort via le réseau. L'avantage de TCPdump est qu'il s'utilise en ligne de commande sous Linux au contraire de Wireshark qui possède une interface graphique.

Le fait que TCPdump s'utilise en ligne de commande le rend plus simple d'utilisation sur des serveurs dépourvus d'interface graphique sur lesquels on souhaite effectuer des analyses et des captures réseau. Dans ce billet, nous travaillerons avec TCPdump 4.6.2 qui utilise la version  1.6.2 de la librairie libpcap et nous allons voir comment gérer l'écriture et la lecture de fichier avec TCPdump.

II. Enregistrer dans un fichier avec TCPdump

L'enregistrement des flux capturés dans un fichier peut se faire très simplement avec TCPdump, c'est d'ailleurs particulièrement intéressant lorsqu'on laisse tourner TCPdump plusieurs heures ou que l'on analyse une grande quantité de paquets. Il faut reconnaître que l'utilisation d'un sniffeur en ligne de commande a pour inconvénient une difficulté d'exploitation et de lecture des résultats en grande quantité. On peut donc enregistrer nos fichiers au format PCAP (rapport à la librairie utilisée par beaucoup de logiciels pour la capture et l'analyse réseau : libpcap).

Pour enregistrer le trafic capturé, il suffit de rajouter l'option "-w" (pour "write") puis le nom de notre fichier ".pcap" à la fin de notre ligne de commande TCPdump, ainsi pour un sniff basique, on utilisera la ligne de commande suivante :

tcpdump -i eth0 -w save.pcap

Tout le trafic capturé ne s'affichera alors plus sur le terminal comme en temps normal lors d'une analyse avec TCPdump, mais ira alors directement dans le fichier "save.pcap".

Note : Pour couper l'analyse réseau et fermer le fichier .pcap, il suffit de saisir CTRL + C au clavier.

D'autres options plutôt pratiques sont présentes dans TCPdump, si l'on effectue une analyse réseau de plusieurs heures voir plusieurs jours comme c'est le cas lors d'enregistrement permanent du trafic réseau, il peut être utile de séparer nos fichiers en fonction d'une valeur temporelle ou une valeur de taille. Cela est possible via les options "-G" et "-C". L'option "-G" permet de créer un nouveau fichier au-delà d'une certaine période donnée. On va également y ajouter un horodatage"strftime" qui est tout simplement la façon dont nos fichiers vont être nommés dynamiquement . Par exemple si on souhaite au cours d'une capture réseau avoir un fichier par période d'une minute, on utilisera la commande suivante :

tcpdump -i eth0 -G 60 -w  %H%M%S_w1.pcap

Ici, %H sera remplacé par l'heure de création du nouveau fichier, %M par la minute et %S par la seconde. Ainsi, chaque nouveau fichier créé (au bout de 60 secondes) n’effacera pas le précédent, ce qui est le cas si on ne spécifie pas d'horodatage strftime. Après avoir laissé cette commande tourner quelques minutes, voici les fichiers pcap que je pourrais trouver  :

tcpdump pcap fichier
Nomenclature des fichiers horodatés avec TCPdump

On voit donc que plusieurs fichiers ont été créés et ont été nommés en fonction de l'heure, minute et seconde de création suivie de "_w1.pcap". Cela permet au final de segmenter de façon très précise nos enregistrements. Nous pouvons également fonctionner en fonction de la taille du fichier capturé et non en fonction d'un délai fixé. Pour cela, il faut utiliser l'option "-C", on spécifiera ensuite la valeur en million d'octets (on parle ici d'un million tout rond, pas un million au sens "octal", 1 000 000 et non 1 048 576). Pour rappel 1 000 000 d'octets est égal à 1 Mo. Si je souhaite par exemple avec des fichiers .pcap de 2 Mo chacun lors d'une capture continue :

tcpdump -i eth0 -C 2 -w  w1.pcap

Voilà les différents fichiers .pcap que l'on pourra alors avoir :

tcpdump pcap fichier
Nomenclature des fichiers incrémentés

On voit donc que les fichiers sont nommés comme indiqué suivi d'un numéro incrémenté.

III. De TCPdump à Wireshark avec les fichiers pcap

Via la possibilité d'enregistrement du trafic capturé dans un fichier au format ".pcap", on peut alors très simplement exporter ces fichiers sur un poste possédant une interface graphique avec Wireshark pour étudier ce fichier et ce qu'il contient en profitant de la puissance et de la précision de l'interface graphique Wireshark. Une fois le fichier enregistré au format ".pcap" comme avec les méthodes indiquées plus haut, il nous suffit alors d'ouvrir Wireshark et d'aller dans  "File" puis "Open" :

 

tcpdump pcap fichier wireshark
Ouverture d'un nouveau fichier dans Wireshark

On va ensuite aller chercher nos fichiers au format ".pcap" :

tcpdump pcap fichier wireshark
On ouvre un fichier au format PCAP

Puis on pourra les étudier et y appliquer des filtres via Wireshark, c'est ici tout l'avantage d'utiliser des formats similaires entre deux outils :

tcpdump pcap fichier
Contenu du fichier PCAP enregistré avec TCPdump

 

IV. Lire un fichier PCAP dans TCPdump

Pour ceux qui préfèrent lire des fichiers avec TCPdump ou qui n'ont pas le choix que d'utiliser la ligne de commande pour cela, il existe également une fonction de lecture des fichiers au format ".pcap" dans TCPdump. Pour lire un fichier pcap, on utilisera l'option "-r" (pour "read") :

tcpdump -r fichier.pcap

Voici le résultat d'une lecture de fichier dans TCPdump :

tcpdump pcap fichier
Lecture d'un fichier PCAP dans TCPdump

Notez que lors de la lecture d'un fichier ".pcap", on peut très bien y appliquer des filtres pour réduire la quantité de données affichées.

author avatar
Mickael Dorigny Co-founder
Co-fondateur d'IT-Connect.fr. Auditeur/Pentester chez Orange Cyberdéfense.
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Envoyer par mail

Laisser un commentaire

Votre adresse e-mail 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.