Vous êtes sur la page 1sur 9

Introduction à Wireshark

Laila El Aimani

Remarque: Ce cours pratique est basé sur les cours de Kurose et


Ross, disponibles au site http://www-
net.cs.umass.edu/wireshark-labs/
© 2005-21012, J.F Kurose and K.W. Ross, All Rights Reserved

Wireshark (anciennement Ethereal) est un logiciel libre d'analyse de


protocole, ou « packet sniffer », utilisé dans le dépannage et l'analyse de
réseaux informatiques, le développement de protocoles, l'éducation et la rétro
ingénierie, mais aussi le piratage. Wireshark est multiplatesformes, il
fonctionne sous Windows, Mac OS X, Linux, Solaris, ainsi que sous FreeBSD.
Wireshark reconnait 759 protocoles.

Site officiel : http://www.wireshark.org/

Documentation :
http://www.wireshark.org/docs/wsug_html_chunked/index.html

Figure 1 illustre la structure d'un « packet sniffer » ou renifleur de paquet. A droite dans
la figure, on trouve les protocoles (dans ce cas, les protocoles Internet ) et les
applications (e.g. navigateur Web ou client ftp) s'exécutant sur votre ordinateur. Le «
packet sniffer », montré dans le rectangle en pointillés dans la figure 1 est un ajout au
logiciel habituel sur votre ordinateur, et se compose de deux parties. La bibliothèque de
capture de paquets reçoit une copie de chaque trame de la couche de liaison, qui est
envoyée ou reçue par votre ordinateur. Il est à noter que les messages échangés par les
protocoles des couches supérieures telles que HTTP, FTP, TCP, UDP, DNS ou IP sont
tous encapsulés dans des trames de la couche de liaison qui sont transmis sur des supports
physiques tels que le câble Ethernet. Dans la figure 1, le support physique utlisé est un
réseau Ethernet, ainsi tous les messages des protocoles des couches supérieures sont
encapsulés dans des trames Ethernet. Capturer toutes les trames de la couche de liaison
vous donne donc tous les messages envoyés/reçus de/par tous les protocoles et les
applications s'exécutant sur votre ordinateur.
packet sniffer

packet application (e.g., www


application
analyzer browser, ftp client)

operating
system Transport (TCP/UDP)
packet Network (IP)
capture copy of all Ethernet
frames sent/received
Link (Ethernet)
(pcap)
Physical

to/from network to/from network


Figure 1: Packet sniffer structure

Le second composant d'un renifleur de paquet est l'analyseur de paquets, qui montre le
contenu de tous les champs d'un message de protocole. Pour ce faire, l'analyseur de
paquet doit «comprendre» la structure de tous les messages échangés par les protocoles.
Par exemple, supposons que nous nous intéressons à l'affichage des différents champs de
messages échangés par le protocole HTTP dans la figure 1. L'analyseur de paquet
comprend le format des trames Ethernet, et peut donc identifier le datagramme IP dans
une trame Ethernet. Il comprend également le format du datagramme IP, afin qu'il puisse
y extraire le segment TCP. Enfin, il comprend la structure du segment TCP, et peut donc
extraire le message HTTP contenu dans ce segment TCP. Enfin, il comprend le protocole
HTTP et sait, par exemple, que les premiers octets d'un message HTTP contiendront la
chaîne "GET", "POST" ou "HEAD", comme le montre la figure 2.8 dans le texte.
Nous utiliserons le renifleur de paquets Wireshark [ http://www.wireshark.org/ ] pour ces
cours pratiques, ce qui nous permet d'afficher le contenu des messages envoyés/reçus
de/par les protocoles à différents niveaux de la pile de protocole. (Techniquement
parlant, Wireshark est un analyseur de paquets qui utilise une bibliothèque de capture de
paquets sur votre ordinateur ) . Wireshark est un analyseur de protocoles réseau libre qui
fonctionne sur Windows, Linux/Unix et Mac. Il s'agit d'un analyseur de paquets idéal
pour nos travaux pratiques - il est stable, a une large base d'utilisateurs bien documenté
qui comprend un guide de l'utilisateur
( http://www.wireshark.org/docs/wsug_html_chunked/ ), pages man (http :/ /
www.wireshark.org/docs/man-pages/ ), et une FAQ détaillée
( http://www.wireshark.org/faq.html ), riche en fonctionnalités qui inclut la capacité
d'analyser des centaines de protocoles, et a une interface utilisateur bien conçue . Il
fonctionne sur les ordinateurs utilisant Ethernet, série ( PPP et SLIP), réseaux sans fil
802.11, et de nombreuses autres technologies de couche de liaison (si le système
d'exploitation sur lequel il s'exécute permet Wireshark de le faire) .

Obtenir Wireshark
Afin d'exécuter Wireshark, vous devez avoir accès à un ordinateur qui supporte
Wireshark et libpcap ou une bibliothèque de capture de paquets WinPCap. Le logiciel de
libpcap devrait ainsi être installé, s'il n'est pas déjà installé dans votre système
d'exploitation, lorsque vous installez Wireshark. Voir
http://www.wireshark.org/download.html pour obtenir une liste des systèmes
d'exploitation pris en charge et les sites de téléchargement.

Téléchargez et installez le logiciel Wireshark:


Aller à http://www.wireshark.org/download.html et télécharger et installer le binaire
Wireshark pour votre ordinateur.
Le produit Wireshark FAQ a un certain nombre de conseils utiles et des informations
intéressantes, en particulier si vous avez du mal à installer ou exécuter Wireshark.

Exécuter Wireshark
Lorsque vous exécutez le programme Wireshark, vous aurez un écran de démarrage,
comme indiqué ci-dessous :

Figure 2: Initial Wireshark Screen

Regardez le côté supérieur gauche de l'écran - vous verrez une "Interface List". Il s'agit de
la liste des interfaces réseau sur votre ordinateur. Une fois que vous choisissez une
interface, Wireshark va capturer tous les paquets sur cette interface. Dans l'exemple ci-
dessus, il existe une interface Ethernet (Gigabit Network Connection) et une interface
sans fil ("Microsoft").
Si vous cliquez sur une de ces interfaces pour lancer la capture de paquets (par exemple,
pour Wireshark pour commencer à capturer tous les paquets envoyés vers / à partir de
cette interface), un écran comme celui ci-dessous s'affiche, affichant les informations sur
les paquets capturés. Une fois vous commencez la capture de paquets, vous pouvez
l'arrêter en sélectionnant Stop dans le menu.

command
menus

display filter
specification

listing of
captured
packets

details of
selected
packet
header

packet content
in hexadecimal
and ASCII

Figure 3: Wireshark Graphical User Interface, during packet capture and analysis

L'interface Wireshark dispose de cinq éléments principaux:


 Les menus de commande sont des menus déroulants standards situés en haut de
la fenêtre. Les menus «File» et «Capture» sont particulièrement intéressants pour
nous. Le menu «File» vous permet de sauvegarder les paquets capturés ou ouvrir
un fichier contenant des paquets précédemment capturés, et quitter l'application
Wireshark. Le menu «Capture» permet de commencer la capture des paquets.
 La fenêtre «packet-listing» affiche un résumé d'une ligne pour chaque paquet
capturé, y compris le numéro de paquet (attribué par Wireshark, ce n'est pas un
numéro de paquet contenu dans l'en-tête de n'importe quel protocole), l'heure à
laquelle le paquet a été capturé, la source du paquet et l'adresses de la destination,
le type de protocole et les informations spécifiques au protocole, contenues dans
le paquet. La liste des paquets peut être triée selon l'une de ces catégories en
cliquant sur un nom de colonne. Le champ type de protocole liste le protocole de
plus haut niveau qui a envoyé ou reçu ce paquet, c'est à dire, le protocole qui est
la source pour ce paquet.
 La fenêtre «packet-header details» fournit des détails sur le paquet sélectionné
(surligné) dans la fenêtre «packet-listing». (Pour sélectionner un paquet dans la
fenêtre «packet-listing», placez le curseur sur le résumé du paquet dans la fenêtre
«packet-listing» et cliquez avec le bouton gauche de la souris.). Ces informations
incluent des informations sur la trame Ethernet (en supposant que le paquet a été
envoyé/reçu sur une interface Ethernet) et le datagramme IP qui contient ce
paquet. Les détails sur Ethernet et sur la couche IP qui sont affichés peuvent être
agrandis ou réduits en cliquant sur les cases moins/plus à gauche de la trame
Ethernet ou la ligne du datagramme IP dans la fenêtre «packet details». Si le
paquet a été transporté par TCP ou UDP, les détails seront affichés, et ils peuvent
peut être également élargis ou réduits au minimum. Enfin, les détails concernant
le protocole de plus haut niveau qui a envoyé ou reçu ce paquet sont également
fournis.
 La fenêtre «packet-contents» affiche tout le contenu de la trame capturée, en
format ASCII and hexadécimal.
 Le champ «packet display filter» se situe en haut de l'interface graphique
utilisateur de Wireshark. Dans ce champ, le nom de protocole ou d'autres
informations peuvent être saisies afin de filtrer les informations affichées dans la
fenêtre packet-listing (ainsi que dans les fenêtres packet-header et packet-
contents). Dans l'exemple ci-dessous, nous allons utiliser le champ «packet
display filter» pour cacher (ne pas afficher) les paquets qui ne correspondent pas
aux messages HTTP.

Tester Wireshark
La meilleure façon d'apprendre un nouveau logiciel consiste à l'essayer ! Nous
supposerons que votre ordinateur est connecté à Internet via une interface Ethernet filaire.
En effet, il est recommandé de faire ce premier cours pratique sur un ordinateur qui a une
connexion Ethernet filaire, plutôt qu'une connexion sans fil. Procéder comme suit:

1. Démarrez votre navigateur web préféré, pour afficher votre page d'accueil
sélectionnée.

2. Démarrez le logiciel Wireshark. Vous allez voir d'abord une fenêtre similaire à
celle illustrée dans la figure 2. Wireshark n'a pas encore commencé la capture des
paquets.

3. Pour commencer la capture de paquets, sélectionnez le menu « Capture » et


sélectionnez « Interfaces ». Cela affichera la fenêtre « Wireshark: Capture
Interfaces » comme le montre la figure 4.
Figure 4: Wireshark Capture Interface Window

4. Vous aller voir une liste des interfaces sur votre ordinateur ainsi qu'une
énumération de paquets observés sur ces interfaces. Cliquez sur «Start» pour
choisir l'interface sur laquelle vous souhaitez lancer la capture des paquets (dans
ce cas, c'est la connexion réseau Gigabit). La capture de paquets va maintenant
commencer - Wireshark capte désormais tous les paquets envoyés/reçus de/par
votre ordinateur!

5. Une fois vous commencez la capture de paquets, une fenêtre similaire à celle de
la figure 3 apparaît. Cette fenêtre affiche les paquets capturés. En sélectionnant les
menus «Capture» et «Stop», vous pouvez arrêter la capture de paquets. Mais
n'arrêtez pas maintenant la capture de paquets. Essayons d'abord de capturer
quelques paquets intéressants. Pour ce faire, nous allons avoir besoin de générer
du trafic réseau. Faisons ça à l'aide d'un navigateur Web, qui utilise le protocole
HTTP pour télécharger du contenu à partir d'un site web.

6. Pendant que Wireshark est en cours d'exécution, entrez l'URL:


http://gaia.cs.umass.edu/wireshark-labs/INTRO-wireshark-file1.html
et affichez cette page dans votre navigateur. Pour afficher cette page, votre
navigateur contacte le serveur HTTP à gaia.cs.umass.edu et échange des messages
HTTP avec le serveur afin de télécharger ladite page. Les trames Ethernet
contenant ces messages HTTP (ainsi que toutes les autres trames qui passent par
votre adaptateur Ethernet) seront capturées par Wireshark.

7. Après avoir affiché la page d'intro - wireshark- file1.html ( il s'agit d'une simple
ligne de félicitations ), arrêtez la capture de paquets Wireshark en choisissant
«Stop» dans la fenêtre de capture Wireshark. La fenêtre principale Wireshark doit
maintenant ressembler à la figure 3 . Vous avez maintenant les paquets live qui
contiennent tous les messages de protocoles échangés entre votre ordinateur et
d'autres entités du réseau ! Les échanges de messages HTTP avec le serveur Web
de gaia.cs.umass.edu devraient apparaître quelque part dans la liste des paquets
capturés. Mais il y aura aussi beaucoup d'autres types de paquets affichés (voir,
par exemple, les nombreux types de protocoles indiqués dans la colonne Protocole
dans la figure 3). Même si la seule action que vous avez pris consistait à
télécharger une page web, il y avait évidemment beaucoup d'autres protocoles en
cours d'exécution sur votre ordinateur qui sont invisibles par l'utilisateur. Nous en
apprendrons beaucoup plus au fur et à mesure que nous progressions dans le cours
!

8. Tapez "http" (sans les guillemets et en minuscules - tous les noms de protocole
sont en minuscules dans Wireshark) dans la fenêtre «display filter» en haut de la
fenêtre principale Wireshark. Puis cliquez sur «Apply» (à droite de l'endroit où
vous avez entré "http"). Cela va restreindre l'affichage aux messages HTTP dans
la fenêtre «packet-listing».

9. Cherchez le message GET de HTTP qui a été envoyé à partir de votre ordinateur
au serveur HTTP gaia.cs.umass.edu. (Cherchez dans la portion de la liste des
paquets capturés ( voir figure 3) qui affiche le mot clé "GET " suivi de l'URL de
gaia.cs.umass.edu que vous avez entrée). Lorsque vous sélectionnez le message
GET, la trame Ethernet, le datagramme IP, le segment TCP, et l'en-tête du
message HTTP seront affichés dans la fenêtre «packet-header». En cliquant sur '+'
et '-' pointant vers la droite et pointant vers le bas sur le côté gauche de la fenêtre
«packet details», vous pouvez réduire la quantité d'informations affichées dans
Frame, Ethernet, IP et TCP. Maximisez l'information affichée sur le protocole
HTTP. Votre écran Wireshark devrait ressembler à la Figure 5.

10. Quittez Wireshark.

Félicitations ! Vous avez terminé le premier cous pratique de Wireshark.


Figure 5: Wireshark window after step 9
A rendre
Le but de ce premier cours pratique consiste principalement à vous introduire le logiciel
Wireshark. Les questions suivantes vont démontrer votre capacité à obtenir, et mettre
Wireshark en marche, ainsi que votre aptitude à explorer certaines de ses fonctionnalités.
Répondez aux questions suivantes, en fonction de votre expérience avec Wireshark:

 Lister 3 différents protocoles apparaissant dans la colonne de protocoles dans la


fenêtre non filtrée «packet-listing» à l'étape 7 ci-dessus.

 Combien de temps s'est écoulé entre l'envoi de la requête GET de HTTP et la


réception de la réponse OK? (Par défaut, la valeur de la colonne «Time» dans la
fenêtre packet-listing est la quantité de temps, en secondes, depuis le démarrage
de la capture avec Wireshark. Pour afficher ce champ en format heure du jour,
sélectionnez dans le menu «View», puis «Display Format», puis «Time-of-day».

 Quelle est l'adresse Internet de gaia.cs.umass.edu (également connu sous le nom


www-net.cs.umass.edu)? Quelle est l'adresse Internet de votre ordinateur?

 Imprimer les deux messages HTTP (GET et OK) mentionnés dans la question 2
ci-dessus. Pour ce faire, sélectionner «Print» dans le menu «File», puis
sélectionner les boutons radio «Selected Packet Only» and «Print as displayed»,
puis cliquer sur OK.

Vous aimerez peut-être aussi