Ethereal pour sniffer le réseau et analyser les trames

I. Introduction à Ethereal

Ethereal est un analyseur de protocole de réseau pour Unix et Windows. Il examine les données à partir d'un réseau en direct ou à partir d'une capture de fichier sur disque.
Vous pourrez ensuite naviguer interactivement sur les données capturées.
Le but de ce tutorial est de vous aider à capturer des trames. Qu'est ce qu'une trame ?
C'est un bloc d'information transmis sur une liaison de données, au niveau 2 du modèle OSI, entre deux contrôleurs de transmission. Si vous ne savez pas ce qu'est le modèle OSI, vous pouvez vous reporter au tutorial sur le modèle réseau OSI et les couches.


tutorial Ethereal reseaux logo
Voici le site officiel de l'éditeur :
http://www.ethereal.com/

II. Explications

Etape 1 : Installation de Ethereal


Une fois Ethereal téléchargé, lancez l'exécutable. Voici ci-dessous une petite animation pour vous aider à installer ce programme. J'ai volontairement marqué "DEBUT de l'installation" et "FIN de l'installation" pour mieux vous y retrouver. L'installation est très simple comme vous pouvez le voir; elle se compose de deux packages "Ethereal" et "WinPcap" regroupés tous deux sous le meme fichier d'installation.

tutorial Ethereal reseaux installation

Etape 2 : Capture de trames avec Ethereal

Vous voici donc arrivé sur l'interface principale de Ethereal. Afin d'effectuer votre capture de trames, allez dans le menu Capture puis cliquez sur Options :

tutorial Ethereal reseaux utilisation image14

Dans la fenêtre suivante, choisissez l'interface sur laquelle vous voulez écouter. Si vous en avez qu'une, le choix ne sera pas très difficile. Si vous avez du mal à trouver la bonne, vous devez apercevoir la marque et le modèle de votre carte réseau utilisée pour votre connexion internet, ainsi que l'adresse IP en dessous.
Par défaut, l'espace réservé à la collecte des données (Buffer size) est défini à 1MB. Cela devrait être suffisant. Dans le cas contraire, augmentez le.
Activer l'option Capture packets in promiscuous mode. En fait, cette option permet à la carte réseau de lire et d'intercepter tout le trafic sur le réseau. Dans le cas contraire, celle-ci n'interceptera que les trames qui lui sont destinées et ainsi vous ne verrez pas toutes les trames Multicast et Broadcast.
Laissez le champ Capture Filter vide dans un premier temps. Nous verrons par la suite comment le remplir.
Nous ne toucherons pas non plus aux autres options.

Pour terminer, cliquez sur Start :
tutorial Ethereal reseaux utilisation image15

La capture est en cours :

tutorial Ethereal reseaux utilisation image16

Pour l'exemple, j'ai laissé tourner la capture pendant 30 secondes en actualisant des pages web. Pour arrêter la capture, cliquez sur Stop. Ethereal va alors afficher les trames perçues par la carte réseau dans un format lisible. Voici ce que cela m'a donné :

tutorial Ethereal reseaux utilisation image17

Je vais maintenant vous détailler tout cela au mieux :
La fenêtre est divisée en trois parties comme vous pouvez le voir.
Dans la première partie, vous pouvez apercevoir toutes les trames que Etheral a capturé. On y trouve donc les adresses IP des machines qui ont dialoguées entre elles. Par exemple ici, j'ai actualisé la page d'acceuil de Google. Vous pouvez donc voir qu'une communication a été établie entre ma machine et le serveur web de Google. On remarque qu'il y a eu beaucoup d'échanges et cela est normal. On y trouve également tous les protocoles utilisés lors de l'échange de ces données.
La deuxième partie de la fenêtre reprend ici la trame sélectionnée et la détaille soit dans les sept couches du modèles OSI, ou dans les quatre couches du modèle IP. Cela dépend du type de trames et du protocole utilisée lors de l'envoi de celles-ci.
La troisième et dernière partie est une vision de la trame en codage hexadécimal. Vous pouvez par exemple apercevoir le code héxadécimal de votre adresse IP. Je rappelle qu'une adresse IP est représentée le plus souvent en binaire.


Détaillons maintenant la partie la plus intéressante qui est la première :

Vous avez donc vos différentes trames qui s'affichent :

- La première colonne correspond au numéro de la trame.
- La deuxième colonne correspond au temps écoulé depuis le départ de la capture et l'arrivée de la trame.
- La troisième colonne correspond à l'adresse IP (source) ou nom de la machine émettrice.
- La quatrième colonne correspond à l'adresse IP (destination) ou nom de la machine réceptrice.
- La cinquième colonne correspond au protocole utilisée entre les deux machines.
- La sixième colonne correspond aux informations complémentaires.

A noter que la quantité de trames capturées peut très vite devenir importante en nombre, notamment dans le cas de plusieurs communications établies en même temps, lorsqu'on appelle plusieurs sites web. C'est pourquoi nous allons voir comment filtrer ces trames.

Etape 3 : Filtrer les trames

Avant de lancer votre capture, cliquez sur Capture puis Capture Filters.

tutorial Ethereal reseaux utilisation image20

Vous pourrez par exemple filtrer par type de protocole (udp, http, tcp...) comme vous pouvez le voir dans la fenêtre suivante. Maintenant, imaginez deux machines sur votre réseau. Celle où l'on capture possède l'adresse IP 192.168.1.33. Nous voulons capturer uniquement les trames échangées entre celle-ci et la seconde machine avec l'adresse IP 192.168.1.34.
Pour cela, dans le champ Filter name, entrez le nom de votre filtre puis dans le champ Filter string entrez "host 192.168.1.34". Enfin cliquez sur Save.
tutorial Ethereal reseaux utilisation image18

Retournez dans le menu Capture et cliquez sur Start.
Reprenez les mêmes options que précédemment.
Cliquez sur le bouton Capture Filter et sélectionnez votre filtre.
Enfin, cliquez sur Start pour démarrer la capture avec le filtre en question.

Une autre méthode consiste à capturer toutes les trames dans un premier temps et de filtrer par la suite. L’avantage de cette solution est d’avoir toujours la capture de départ et d’y appliquer par la suite autant de filtres que l’on souhaite.
Pour cela, après la capture de trames, allez dans le menu Analyze puis cliquez sur Display Filters...

tutorial Ethereal reseaux utilisation image19

Répètez les mêmes opérations que précédemment mais cette fois indiquez la valeur "ip.addr==192.168.1.34" dans le champ Filter String et cliquez sur Save pour sauvegarder le filtre et/ou sur OK pour l'appliquer :

tutorial Ethereal reseaux utilisation image21

A noter qu'il existe une méthode plus rapide : Vous avez une barre nommée Filter en haut de la fenêtre. Vous pouvez entrer "ip.addr==192.168.1.34" comme précédemment et faire Apply. Cela revient au même. Pour revenir à la capture initiale, il vous suffira de cliquer sur le bouton Clear.


Etape 4 : Options supplémentaires

Voyons maintenant quelques options plus en détails. Faites un clic droit sur l'une des trames. (nous nous intéresserons plus particulièrement à la fonction Print) :

tutorial Ethereal reseaux utilisation image22

Une fonction intéressante est Follow TCP Stream. Elle permet, à partir d’une IP sélectionnée (source ou destination), de suivre le dialogue "en clair" dans une fenêtre. Attention : cette fonction devient d’un usage illégale si les personnes ne vous donnent pas l’autorisation ; c’est assimilable à de la violation de correspondance privée !

Intéressons nous maintenant à la fonction Print. Celle-ci nous permet en faite d'enregistrer sur un fichier toutes les informations sur une ou plusieurs trames, et ce sur les trois parties décrites plus haut. Par exemple, vous voulez gardez les informations de deux ou plusieurs trames. Par un clic droit sur celles-ci, faites "Mark Packet(toggle)" pour chaque trame puis cliquez ensuite sur Print.

Dans la fenêtre suivante, cochez Output to file et choisissez un emplacement où sauvegarder le fichier puis un nom. Vous pouvez très bien nommer le fichier en extension ".txt". Sélectionnez ensuite Marked packets only. Si le codage hexadécimal vous intéresse, cochez Packet bytes. Enfin, cliquez sur Print :

tutorial Ethereal reseaux utilisation image23
Votre fichier est créé.

III. Conclusion du tutorial

Voilà, nous venons de voir comment capturer des trames avec Ethereal, en ésperant que vous avez appris quelque chose. Si vous aimez comprendre ce qui se passe dans les tuyaux, ce logiciel est très bon pour vous, d'autant plus qu'il est gratuit. Celui-ci sert à surveiller le réseau mais peut aussi servir à dépanner, dans certains cas mais ce cas de figure s'adresse le plus souvent à des personnes ayant des bonnes notions de réseaux informatiques. A noter que nous venons de voir simplement la fonction principale du logiciel, donc si vous voulez l'exploiter encore plus je vous laisse découvrir les autres options.