GNU/Linux >> Tutoriels Linux >  >> Ubuntu

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

Dans ce guide, je vais vous montrer comment analyser les paquets réseau sous Linux. J'utiliserai les outils Tcpdump et Wireshark. Ce didacticiel utilise Ubuntu comme système d'exploitation, mais il s'applique également à d'autres distributions Linux.

Pourquoi avez-vous besoin de Tcpdump ?

Une question évidente qui peut venir à l'esprit est pourquoi se soucier de Tcpdump alors que vous pouvez presque tout faire avec Wireshark. Eh bien, voici la réponse à cela :parfois, il est plus pratique d'utiliser Tcpdump pour la capture de paquets par rapport à Wireshark. Par exemple, si la machine cible sur laquelle vous capturez le paquet est une machine distante sur laquelle Wireshark n'est pas installé ou s'il s'agit simplement d'une machine sans tête distante, dans les deux cas, Tcpdump est très pratique. Pour examiner les différentes options pouvant être utilisées avec Tcpdump, recherchez les pages de manuel.

Qu'est-ce que Tcpdump ?

Tcpdump est une alternative en ligne de commande à Wireshark. Il a le même objectif que Wireshark, qui capture et analyse le trafic. Tcpdump est une application distincte et ne doit pas être considérée comme une interface de ligne de commande Wireshark. Comme il est basé sur l'interface de ligne de commande, il n'est pas aussi simple à gérer que Wireshark. Les nouveaux utilisateurs peuvent trouver cela intimidant au début lorsqu'ils commencent à l'utiliser et peuvent trouver de nombreuses commandes et syntaxes difficiles à mémoriser.

Aperçu de ce didacticiel

Passons maintenant à l'objectif principal de ce guide. Dans ce guide, nous verrons comment interagir entre Tcpdump et Wireshark. Ici, nous soulignons le travail que nous allons faire dans ce guide :

  1. Connexion avec la machine distante (hôte 2) avec SSH.
  2. Capturer le trafic avec Tcpdump et enregistrer la capture.
  3. Envoi du fichier de capture à la machine sur site (hôte 1) sur laquelle Wireshark est installé.
  4. Utilisation de Wireshark pour analyser la session Tcpdump capturée.

Vérification préalable au vol

Pour ce didacticiel, nous utilisons deux machines Ubuntu 20.04. Vous devez les configurer vous-même. Notre configuration IP est la suivante :

Hôte 1 (ordinateur sur site) :192.168.186.150

Hôte 2 (ordinateur distant) :192.168.186.201

Les étapes mentionnées dans ce guide sont censées fonctionner sur n'importe quel système Linux avec les exigences suivantes :

  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 aller plus loin, connectez-vous de votre machine sur site (Hôte 1) à la machine distante (Hôte 2) avec le protocole d'accès SSH. Nous avons déjà mis en place la connexion SSH entre les deux machines. Nous allons donc utiliser la commande ci-dessous depuis le terminal Host 1 pour nous connecter à Host 2 :

$ ssh ‘nom_utilisateur’@’IP_of_Host2’

Remplacez ici 'user_name' par le nom d'utilisateur de l'Hôte 2 auquel nous nous connectons et 'IP_of_Host2' est l'adresse IP de l'Hôte 2. Voir l'image ci-dessous pour référence :


Vérifiez maintenant les interfaces disponibles sur la machine distante sur laquelle Tcpdump peut capturer. Pour cela utilisez 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 (moniteur Bluetooth Linux) [aucun]
6.nflog (interface Linux netfilter log (NFLOG)) [aucun]
7.nfqueue (Linux netfilter file d'attente (interface NFQUEUE) [aucun]
8.bluetooth0 (numéro d'adaptateur Bluetooth 0) [aucun]


Comme vous pouvez le voir, l'interface "enpos3" est opérationnelle. Définissons-la donc comme l'interface cible et exécutons la commande tcpdump ici. Lorsque vous sentez que vous avez capturé suffisamment de paquets, appuyez simplement sur 'Ctrl+c' pour terminer la capture de paquets. La commande est :

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


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

  1. -s :les anciennes versions des paquets de coupure Tcpdump à 68 ou 96 octets. L'option "-s" est utilisée pour capturer des paquets de pleine longueur.
  2. -i :Il sélectionne l'interface à écouter.
  3. -w :Il enregistre les paquets bruts capturés dans un fichier au lieu de les afficher sur le terminal.

Le trafic capturé est stocké dans le fichier nommé 'my_remote_capture.pcap'. Nous allons maintenant transférer ce fichier vers l'hôte 1 pour analyse avec Wireshark. Pour transférer le fichier, nous utilisons la commande 'scp'. Encore une fois, nous avons déjà configuré 'scp' pour fonctionner entre les deux machines. La syntaxe de la commande est la suivante :

$ 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 aussi l'IP de l'Hôte 1.


Sur la machine sur site (hôte 1) vérifiez si vous avez reçu le fichier. Dans notre cas, nous avons bien reçu le fichier et nous l'ouvrirons à l'aide de Wireshark comme indiqué ci-dessous :


Voici la capture d'écran du fichier de capture de l'hôte 1 :

Analyse du fichier de capture

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


Dans l'image ci-dessus, nous ne pouvons voir que les paquets avec le protocole 'SSH'.

Récapitulatif… 

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


Ubuntu
  1. Installer et démarrer avec MySQL Workbench sur Ubuntu

  2. Installation de WordPress sur Ubuntu Linux avec Apache et MySQL

  3. Erreurs avec Vagrant et Ubuntu 12.10 avec RVM ?

  4. Problème avec Nvidia Gpu et Ubuntu 16.04 ?

  5. Capturer des paquets avec tcpdump

Installation de Lighttpd avec prise en charge de PHP5 et MySQL sur Ubuntu 10.04

Hébergement virtuel avec vsftpd et MySQL sur Ubuntu 12.04

Hébergement virtuel avec vsftpd et MySQL sur Ubuntu 12.10

Installation de Nginx avec prise en charge de PHP5 et MySQL sur Ubuntu 8.10

Installer et utiliser Wireshark sur Ubuntu Linux

Comment installer et utiliser Wireshark sur Ubuntu 21.04