Wireshark, prise en main

Lors du développement d’une application web ou d’un site internet d’une manière générale, il devient important de pouvoir analyser les informations transmises entre le serveur et le client.

Pour cela il existe un grand nombres d’outils, propriétaires ou non, permettant d’analyser les trames réseaux et les paquets échangés. Nous allons nous intéresser ici à Wireshark.

Par où commencer?

Par l’installation probablement… Voici un exemple pour une distribution Linux GNU/Debian ou Ubuntu :

sudo apt-get install wireshark

Une fois l’installation effectuée vous pouvez exécuter Wireshark.

wireshark

Vous aurez probablement des problèmes pour capturer des trames réseaux de base. La première solution consisterait à lancer wireshark avec les droits sysadmin en fesant `sudo wireshark` ou `gksu wireshark`. Mais ceci n’est pas une bonne pratique. Il faut mieux donner les droits de capture aux utilisateurs qui en ont besoin.

Bienvenue dans Wireshark

Interface de Wireshark

Wireshark au lancement

Une fois l’application démarrée, vous pouvez lancer une capture sur l’interface réseau de votre choix soit par le menu ‘Capture’ -> ‘Interfaces’ soit par la liste affichée à l’écran de démarrage.
Pour cet exemple, nous allons capturer le trafic sur l’interface eth0, à savoir la première interface Ethernet.

Une fois l’interface sélectionnée et la capture commencée Wireshark affiche la liste des trames reçus et envoyés sur cette interface.
Lors de la capture, la fenêtre principale est divisée en trois zones.

  • La liste des trames entrantes et sortantes
  • Le détail de la trame sélectionnée
  • Les données brutes de la trame sélectionnée

Utilisation de Wireshark

Options de capture

Avant de lancer une capture vous pouvez modifier les options de celle-ci afin de l’adapter à vos besoins. Les options sont accessibles grâce au deuxième bouton de la barre d’outils ou via le menu ‘Capture’ -> ‘Options’
Vous pouvez choisir l’interface sur laquelle la capture sera effectuée, sauvegarder les trames dans un fichier ou dans plusieurs fichiers tout les X Mo ou toutes les X minutes, choisir quand arrêter la capture etc.
Il est aussi possible de na pas capturer tout le trafic mais uniquement celui qui nous intéresse en ajoutant un filtre dans les options de la capture. Ici nous mettrons le filtre suivant :

ip.src == 192.168.0.42 || ip.dst == 192.168.0.42

Ce filtre permet de ne capturer que les trames en provenance ou à destination de la machine utilisée et de ne pas capturer les autres trames transitant sur le réseau.
Les opérateurs logiques tels que `&&` et `||` sont acceptés dans les filtres.

Capture de trames

Capture sur eth0

Une fois le filtre mis en place et la capture démarrée, l’affichage passe en mode capture, comme décrit précédemment la fenêtre est découpée en trois partie.
Une nouvelle possibilité de filtrage vous est offerte au niveau de l’affichage des trames capturées dans la partie haute de la fenêtre.
Dans ce cas nous allons saisir ‘http’ afin de filtrer l’affichage des trames HTTP uniquement.

Maintenant que tout nos filtres sont paramétrés, nous n’affichons que les requêtes HTTP arrivant ou partant de notre machine.
À partir de là, nous pouvons sélectionner une requête dans la partie haute de la fenêtre et son contenue s’affiche alors dans la partie du milieu. Il est alors possible de vérifier que la requête est bien conforme à nos attentes.

Si la requête ou la réponse sont trop longues, celles-ci ne seront pas affichées d’une manière très lisible dans la partie détail. dans ce cas vous pouvez faire un clique droit sur la trame et sélectionner ‘Follow TCP Stream’ (suivant le protocole avec lequel vous travaillez vous pouvez choisir de suivre un flux TCP, UDP ou SSL).

Une fois votre capture effectuée vous aurez sûrement envie de l’arrêter. Pour ce faire, il vous suffira de cliquer sur le quatrième bouton de la barre d’outil, ou de passer par le menu ‘Capture’ -> ‘Stop’
Il se peut que vous vouliez recommencer la capture afin de vous débarrasser de la liste des paquets capturés. Pour cela le cinquième bouton de la barre d’outil est pour vous, vous pouvez aussi le faire via le menu ‘Capture’ -> ‘Restart’

Voilà qui clôture cette mini introduction à Wireshark. Il y a beaucoup d’autres fonctionnalités dans cette application, mais avec celles présentées ici, vous devriez déjà pouvoir isoler et analyser les requêtes qui vous intéressent.

Laisser un commentaire

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