Comment utiliser tcpdump pour surveiller notre réseau

Table des matières

Dans ce tutoriel, nous allons voir comment travailler avec tcpdump. C'est un outil open source pour la ligne de commande, il est utilisé pour surveiller le réseau, nous pouvons le comprendre comme un analyseur de paquets qui transitent par le réseau où vous exécutez le programme. Il est utilisé dans les environnements Unix, bien qu'il existe une variante pour Windows appelée WinDump. Un tutoriel sur EtherApe peut vous intéresser, qui est un outil pour voir graphiquement l'état de notre réseau.

Dans le didacticiel, nous travaillerons à partir de Linux, en particulier sous Ubuntu 16.04, pour que l'outil fonctionne, nous devons l'exécuter avec des privilèges élevés, à l'exception de certaines options, qui seront nécessaires.

On peut utiliser tcpdump pour diverses tâches, telles que le débogage de nos applications réseau, la lecture des données qui sont envoyées entre les utilisateurs sur le réseau dans lequel nous sommes, etc. Nous allons mettre sa syntaxe ci-dessous :

 tcpdump [-aAbdDefhHIJKlLnNOpqRStuUvxX #] [-B size] [-c count] [-C file_size] [-E quelque chose: secret] [-F file] [-G secondes] [-i interface] [-j tstamptype] [- M secret] [--number] [-Q in | out | inout] [-r fichier] [-s snaplen] [--time-stamp-precision precision] [--immediate-mode] [-T type] [ --version] [-V fichier] [-w fichier] [-W nombre de fichiers] [-y type de liaison de données] [-z commande] [-Z utilisateur] [expression]
Cet outil dispose d'un grand nombre de paramètres que nous pouvons utiliser, nous allons en voir ici.

Quelques paramètres de tcpdump

  • : Imprimer les packages en code ASCII.
  • -X: Imprimer les paquets en hexadécimal.
  • -RÉ: Affiche les interfaces disponibles.
  • -c nombre : Il fermera le programme lorsque le nombre de paquets indiqué aura été capturé.
  • -je interface : Le programme écoute sur l'interface spécifiée.
  • -JE: Met l'interface en mode moniteur.
  • -p: Il ne met pas l'interface en mode promiscuité.
  • -f fichier: La sortie est stockée dans le fichier que nous indiquons.
  • -h: Affiche l'aide pour son utilisation.

Si nous voulons voir tous les paramètres disponibles, sous Linux, nous utilisons :

 homme tcpdump
L'utilisation de cette commande est plus complète que l'aide offerte par le paramètre -h ou alors --aider, ce qui ne nous montrerait que ce qui suit :

Nous allons voir 10 exemples pour démarrer dans cet outil puissant.

NoterDans presque tous les exemples vous verrez que sudo est utilisé avant tcpdump, comme dit précédemment, il est nécessaire de le lancer avec des privilèges élevés, si vous utilisez le terminal en tant que root alors il n'est pas nécessaire de mettre quoi que ce soit devant tcpdump. Si vous souhaitez arrêter la capture vous pouvez combiner les touches :

CTRL + C

Exemple 1
L'exemple le plus simple utilisant le paramètre . Pour cela nous exécutons :

 tcpdump -A

Voyons un exemple avec un peu plus de contenu.

Exemple 2
Nous allons maintenant filtrer par hôte et ajouter le mode verbeux avec le paramètre -v:

 sudo tcpdump hôte 192.168.66.130 -v
Vous trouverez ci-dessous une image utilisant la commande ci-dessus :

Pour l'image, j'ai fait un ping à partir d'une autre machine, donc on peut voir ICMP. Passons au troisième exemple.

Exemple 3
Dans cet exemple, nous allons regarder les paquets du même hôte, mais cette fois les paquets qui ont à voir avec le port 80 :

 sudo tcpdump hôte 192.168.66.130 et port 80 -v
Si nous regardons la capture, nous verrons quelque chose de similaire à ce qui suit :

Vous pouvez voir à quel point cet outil est facile à manipuler, passons à autre chose.

Exemple 4
On va utiliser l'exemple 3 et on va le modifier, on veut filtrer les paquets d'origine 192.168.66.130 qui vont sur le port 80 :

 sudo tcpdump src hôte 192.168.66.130 et dst port 80 -v
On voit qu'on a utilisé le conditionnel et, pour que les deux conditions soient remplies, on peut aussi utiliser or, si l'on veut qu'une seule d'entre elles soit remplie. Si nous regardons les captures d'écran, nous voyons une requête POST.

Passons au cinquième exemple.

Exemple 5
Nous allons capturer des paquets indiquant une interface :

 sudo tcpdump -i ens33
NoterVotre interface est probablement eth0, vous pouvez le voir avec la commande ifconfig, mais aussi avec le paramètre -D de tcpdump cela fonctionnera pour nous, nous le verrons dans l'exemple suivant.

Ci-dessous, vous pouvez voir une image de la capture.

Allons-y pour le prochain.

Exemple 6
Dans cet exemple, la seule chose que nous allons faire est de montrer les interfaces disponibles, pour cela nous exécutons :

 tcpdump -D
Dans ce cas, il n'est pas nécessaire d'être root.

Nous allons continuer.

Exemple 7
Nous voulons capturer 3 paquets qui sont destinés au port 1987 et lorsque cela se produit, arrêtez le programme :

 sudo tcpdump -c 3 dst port 1987
On peut voir sur l'image suivante que seuls 3 paquets sont capturés :

Voyons quelques autres exemples.

Exemple 8
Lorsque nous souhaitons obtenir tous les paquets de trafic TCP qui ne vont pas vers un certain port, par exemple le port 80, nous exécuterons ce qui suit :

 sudo tcpdump pas le port 80 et tcp
La sortie est similaire, donc dans cet exemple aucune capture n'est définie. Passons à l'avant-dernier exemple.

Exemple 9
Nous allons capturer 2 paquets d'une interface spécifique, et nous les afficherons au format hexadécimal, pour cela nous devons exécuter :

 sudo tcpdump -i ens33 -x -c 2
Ci-dessous, vous pouvez voir le résultat :

Bon passons au dernier exemple du tutoriel.

Exemple 10
Dans cet exemple, nous allons enregistrer la capture dans un fichier pour la regarder plus tard. La capture est limitée à 3 paquets et une interface est spécifiée, nous allons donc exécuter :

 sudo tcpdump -w test.pcap -i ens33 -c 3
Voyons une capture d'écran :

Si nous voulons lire ce fichier maintenant, nous devons exécuter :

 tcpdump -r test.pcap
Nous pouvons le voir dans l'image suivante:

Le tutoriel sur tcpdump est arrivé jusqu'ici, il a de nombreuses possibilités et de nombreuses options, donc pour apprendre à bien manier cet outil, il est préférable de s'entraîner et de découvrir toutes ses fonctionnalités petit à petit. Vous pouvez également être intéressé à lire quelque chose sur l'outil netcat, voici donc un lien vers un didacticiel avec des exemples :

Comment utiliser netcat

Avez-vous aimé et aidé ce tutoriel ?Vous pouvez récompenser l'auteur en appuyant sur ce bouton pour lui donner un point positif

Vous contribuerez au développement du site, partager la page avec vos amis

wave wave wave wave wave