Capturer les paquets avec Tcpdump et les analyser avec Wireshark sur Ubuntu

Dans ce guide, je vais te montrer comment analyser les paquets de réseau sur Linux. J’utiliserai les outils Tcpdump et Wireshark. Ce tutoriel utilise Ubuntu comme système d’exploitation, mais il est aussi applicable à d’autres distributions Linux.

Pourquoi as-tu besoin de Tcpdump ?

Une question évidente qui peut venir à l’esprit est : pourquoi s’intéresser à Tcpdump alors que tu peux presque tout faire avec Wireshark. Eh bien, voici la réponse à cette question : Parfois, il est plus pratique d’utiliser Tcpdump pour capturer des paquets que Wireshark. Par exemple, si la machine cible sur laquelle tu captures des paquets est une machine distante sur laquelle Wireshark n’est pas installé ou s’il s’agit simplement d’une machine distante sans tête, dans les deux cas, Tcpdump est très pratique. Pour voir les différentes options qui peuvent être utilisées avec Tcpdump, cherche les pages de manuel.

Qu’est-ce que Tcpdump ?

Tcpdump est une alternative en ligne de commande à Wireshark. Il sert le même objectif que Wireshark, à savoir capturer et analyser le trafic. Tcpdump est une application distincte et ne doit pas être considéré comme une interface de ligne de commande de Wireshark. Comme il est basé sur l’interface de ligne de commande, il n’est pas aussi simple à manipuler que Wireshark. Les nouveaux utilisateurs peuvent le trouver décourageant au début lorsqu’ils commencent à l’utiliser et peuvent trouver de nombreuses commandes et syntaxes difficiles à mémoriser.

Grandes lignes de ce tutoriel

Passons maintenant à l’objectif principal de ce guide. Dans ce guide, nous allons voir comment nous pouvons faire interagir Tcpdump avec Wireshark. Nous indiquons ici le travail que nous allons faire dans ce guide :

  1. Se connecter à la machine distante (hôte 2) avec SSH.
  2. Capturer le trafic avec Tcpdump et enregistrer la Capture.
  3. Envoyer le fichier de capture à la machine sur place (hôte 1) sur laquelle Wireshark est installé.
  4. Utiliser Wireshark pour analyser la session Tcpdump capturée.

Vérification avant le vol

Pour ce tutoriel, nous utilisons deux machines Ubuntu 20.04. Tu dois les configurer toi-même. Notre configuration IP est la suivante :

Hôte 1(Machine sur place) : 192.168.186.150

Hôte 2(Machine distante) : 192.168.186.201

Les étapes mentionnées dans ce guide sont censées fonctionner sur n’importe quel système Linux si les conditions suivantes sont remplies :

  1. Hôte sur site(Hôte 1) avec Wireshark installé et SSH configuré.
  2. Accès SSH de l’hôte sur site (hôte 1) à l’hôte distant (hôte 2).
  3. Tcpdump et SSH configurés sur l’hôte distant (hôte 2).
  4. Compte utilisateur ‘sudo’ sur l’hôte 2 pour exécuter Tcpdump et également sur l’hôte 1 (selon la configuration de Wireshark).

Commençons…

Pour continuer, connecte ta machine sur place (Hôte 1) à la machine distante (Hôte 2) avec le protocole d’accès SSH. Nous avons déjà configuré la connexion SSH entre les deux machines. Nous allons donc utiliser la commande ci-dessous depuis le terminal de l’hôte 1 pour nous connecter à l’hôte 2 :

$ ssh ‘nom_de_l’utilisateur’@’IP_de_l’hôte2’.

Remplace ici ‘nom_utilisateur’ par le nom d’utilisateur de l’hôte 2 auquel nous nous connectons et ‘IP_de_l’hôte2’ par l’adresse IP de l’hôte 2. Voir l’image ci-dessous pour référence :

Accéder à l'hôte 2 avec SSH
Vérifie maintenant les interfaces disponibles sur la machine distante sur lesquelles Tcpdump peut capturer. Pour cela, utilise la commande :

$ tcpdump –list-interfaces

Exemple de sortie :

1.enp0s3 [Up, Running]
2.lo [Up, Running, Loopback]
3.any (Pseudo-appareil qui capture sur toutes les interfaces) [Up, Running]
4.eno1 [Up]
5.bluetooth-monitor (Bluetooth Linux Monitor) [none]
6.nflog (interface de journal du filtre réseau Linux (NFLOG)) [aucun]
7.nfqueue (interface de file d’attente du filtre réseau Linux (NFQUEUE)) [aucun]
8.bluetooth0 (adaptateur Bluetooth numéro 0) [aucun]

Interfaces de listage
Comme tu peux le voir, l’interface ‘enpos3’ est opérationnelle. Définissons-la donc comme interface cible et exécute la commande tcpdump ici. Lorsque tu penses avoir capturé suffisamment de paquets, appuie simplement sur ‘Ctrl+c’ pour terminer la capture de paquets. La commande est la suivante :

$ sudo tcpdump -s 65535 -i enp0s3 -w my_remote_capture.pcap

Exécute la commande Tcpdump
Dans la commande ci-dessus, nous avons utilisé les options suivantes avec Tcpdump :

  1. -s : Les anciennes versions de Tcpdump coupent les paquets à 68 ou 96 octets. L’option ‘-s’ est utilisée pour capturer les paquets dans leur intégralité.
  2. -i : Elle sélectionne l’interface à écouter.
  3. -w : Elle enregistre les paquets bruts capturés dans un fichier au lieu de les afficher sur le terminal.

Le trafic capturé est enregistré dans le fichier nommé ‘my_remote_capture.pcap’. Nous allons maintenant transférer ce fichier vers l’hôte 1 pour l’analyser avec Wireshark. Pour transférer le fichier, nous utilisons la commande ‘scp’. Là encore, nous avons déjà configuré ‘scp’ pour qu’il fonctionne entre les deux machines. La syntaxe de la commande est indiquée ci-dessous :

$ scp my_remote_capture.pcap ‘username’@’IP_of_remote_machine’ :

Ici, ‘username’ est le nom de l’utilisateur sur l’hôte 1 et ‘IP_of_remote_machine’ est également l’IP de l’hôte 1.

Transférer le fichier de capture à l'aide de SCP
Sur la machine sur place (hôte 1), vérifie si tu as reçu le fichier. Dans notre cas, nous avons reçu le fichier avec succès et nous allons l’ouvrir à l’aide de Wireshark comme indiqué ci-dessous :

Ouverture du fichier de capture à l'aide de Wireshark
Voici la capture d’écran du fichier de capture de l’hôte 1 :

Capture le fichier de l'hôte 1

Analyse du fichier de capture

Appliquons un filtre d’affichage sur le fichier ci-dessus. Comme nous nous sommes connectés à l’hôte 2 en utilisant SSH, il devrait y avoir des traces du protocole SSH. Dans le champ de texte correspondant au filtre d’affichage, saisis ‘ssh’ :

Appliquer le filtre d'affichage
Dans l’image ci-dessus, nous pouvons voir uniquement les paquets avec le protocole ‘SSH’.

Conclusion…

Félicitations, nous avons enfin démontré comment nous pouvons faire une capture à distance sur une machine. Nous avons vu comment nous pouvons combiner Tcpdump avec Wireshark.

Vous aimerez aussi...