URL: https://linuxfr.org/users/jgoffaux/journaux/wireshark-la-capture-r%C3%A9seau Title: WireShark la capture réseau Authors: Jimmy Goffaux Date: 2010年01月28日T10:39:20+01:00 Tags: wireshark Score: 14 [WireShark](http://www.wireshark.org/) (anciennement Ethereal) est un outils d'analyse des trames réseau. L'application a été renommée car le développeur principal a changé de société : le nom Ethereal appartient à sa société précédente, il n'a donc pu continuer le projet sous le même nom... Wireshark est un analyseur multi plateformes de protocoles réseaux ou « packet sniffer » classique. Son utilité principale est d'examiner les données qui transitent sur un réseau ou de chercher des données ou un fichier sur un disque. L'outil est utilisable sur plusieurs plateformes : Windows (*.exe), Linux (.deb), OS X (*.dmg). Installation : Sous Linux, il suffit de lancer la commande : apt-get install wireshark. _Petite astuce à l'installation : il peut arriver que lorsque l'on exécute Wireshark via l'utilisateur, celui ci ne reconnaisse pas les interfaces réseaux, car l'utilisateur n'as pas les droits d'accès. Il suffit de donner les droits à l'utilisateur ou de lancer directement Wireshark depuis root, mais c'est déconseillé..._ Utilisation simple : L'utilisation de ce type d'outils, permet de se rendre compte de la pertinence des protocoles chiffrés comme [HTTPS](http://fr.wikipedia.org/wiki/Hypertext_Transfer_Protocol#HTTPS), [TLS](http://fr.wikipedia.org/wiki/Transport_Layer_Security) ou [SSL](http://fr.wikipedia.org/wiki/Secure_Sockets_Layer). Voici une petite démonstration d'une connexion à partir d'un client Mozilla-Thunderbird vers un serveur (Protocol [IMAP](http://fr.wikipedia.org/wiki/Internet_Message_Access_Protocol) standard, sans chiffrement). Après configuration du compte IMAP sur le client, on lance l'analyse réseau : voici le détail des échanges entre le client et le serveur. Image : [Par ici](http://08000linux.com/blogs/files/2009/11/capture1.jpg) On peut s'apercevoir que dans les échanges, la ligne avec l'ID 35 contient l'identifiant et le mot de passe de l'utilisateur (test-wireshark/linagora). Pas besoin de plus de commentaire... L'analyse d'une trame hexadécimale. Si l'on souhaite avoir des informations plus précises ou plus poussées, plus bas dans WireShark, il y a la trame correspondante en Hexadécimal : Image : [Par ici](http://08000linux.com/blogs/files/2009/11/capture2.jpg) A partir de là, il est possible de découper la trame. Grâce aux en-têtes, on peut comprendre en détail ce qui se passe. La trame en hexadécimal comprends les différentes couches : hardware, réseau, etc jusqu'à l'applicatif. En voici l'analyse détaillée. La première en-tête est la trame Ethernet : Image : [Par ici](http://08000linux.com/blogs/files/2009/11/ethernet.jpg) La première couleur correspond à l'adresse MAC de destination (si celle ci est à FF:FF:FF:FF:FF:FF c'est bien souvent une requête ARP). La seconde couleur est l'adresse MAC de l'hôte qui envoie sa requête. La couleur rose correspond au type de protocole (IPV4, IPV6, ARP, AppleTalk etc..) étant à '0800' ça sera de l'IPv4 par la suite. En fin de trame la couleur jaune (2 octets) est le CRC, le contrôle d'erreur. Voici la trame IP : Image : [Par ici](http://08000linux.com/blogs/files/2009/11/ip.jpg) La première couleur correspond à la version de l'IP donc 4. La longueur de l'entête est de 5 (cette valeur est toujours comprise entre 5 et 15). Ensuite nous avons 7 octets qui correspondent aux : * Type de service * Longueur totale de l'entête en octets * Identification du numéro de paquets, car un paquet peux être fragmenter en plusieurs trame. * Flags * Fragment Offset Pour avoir plus d'informations sur les cinq points précédents je vous invite à lire la page [Wikipédia](http://fr.wikipedia.org/wiki/IPv4#Fragmentation). En couleur grise, c'est le [TTL](http://fr.wikipedia.org/wiki/Time-To-Live), suivi par le numéro de protocole, étant à '06', le protocole suivant sera du TCP. Ensuite sur 2 octets nous avons une somme de contrôle. Enfin nous arrivons sur les 8 derniers octets de la partie IP qui correspondent aux adresses IP source et destination. '0A 4B 81 29' si on transforme l'hexadécimal en base décimale, on retrouve notre adresse IP source (10.75.129.41), pareil pour l'adresse de destination. Comme trouvé dans la partie IP, le protocole suivant est le [TCP](http://www.commentcamarche.net/contents/internet/tcp.php3), voici la découpe : Image : [Par ici](http://08000linux.com/blogs/files/2009/11/tcp.jpg) Cette partie est en 9 morceaux distincts. Voici à quoi ils correspondent respectivement : * Port source : 'a691' * Port destination : '008f' Si on convertit ces 4 octets on retrouve ces valeurs : '42 641' et '143'. Le lecteur éclairé aura reconnu ici que le port de destination correspond à celui utilisé pour le protocole IMAP, dans sa version non sécurisée. Si on regarde les échanges réseau de la première image, on retrouve bien ces valeurs. Ensuite, il y a : * Numéro de séquence * Numéro d'acquittement * Taille de l'entête : codé sur 4 octets, la valeur '8' indique que l'entête TCP est composée de 4 mots de 32 bits. * Le champs réservé aux drapeaux ([flags](http://www.frameip.com/entete-tcp/#5.7_-_Flags)), de valeur '0 18' * Le champs "fenêtre", permettant de connaître le nombre d'octets que le récepteur souhaite recevoir sans accusé de réception * Somme de contrôle (CRC) : 56 73 * Les champs d'options et de remplissage. Les niveaux supérieurs concernent directement l'application. L'analyse d'une telle trame peut être utile lors d'analyse de problème applicatif ou de problème réseau, afin de savoir ce qu'il se passe concernant le transport des paquets. Ces analyses servent également à procéder à la [rétro-ingénierie](http://fr.wikipedia.org/wiki/R%C3%A9tro-ing%C3%A9nierie) des protocoles propriétaires. C'est à travers cette méthode que Rob Savoye et ses collègues développent le logiciel [Gnash](http://www.gnu.org/software/gnash/), par exemple. Ce journal reste une simple présentation des de Wireshark, et de montrer l'importance des protocoles chiffrées.