Menu Fermer

WireShark : capture et analyse réseau

WireShark est un outil puissant qui permet de capturer les paquets réseaux passant par une interface.
Ensuite on peut en analyser le contenu à la recherche d’occurrence ou pour effectuer des statistiques.
WireShark peut donc être utilisé pour analyser le réseau ou éventuellement déterminer si une machine est infectée en analysant les connexions effectuées par les malwares.
On peut aussi s’en servir pour débugger des problèmes de connectivités.

Bref l’usage de WireShark est multiple, cette page vous donne quelques aperçus de ses possibilités.
Voici un tutoriel pour débuter dans l’utilisation de WireShark.

WireShark : capture et analyse réseau
WireShark : capture et analyse réseau

Le principe et présentation de WireShark

Le principe fonctionne comme tout autre outil d’analyse qui existe, on capture les paquets d’une interface réseaux et on applique des filtres pour capture et trouver ce qui nous intéresse.
WireShark permet d’appliquer des filtres directement à la capture ou sur les résultats de la capture.

Bien entendu, en ce qui concerne le contenu des paquets (les données), seules les connexions non chiffrées pourront être analysées.
On voit donc l’importance d’utiliser les connexions sécurisées surtout lors des authentification (échange de mot de passe) par exemple en utilisant des sites HTTPs ou un VPN.
Plus d’informations sur le chiffrement, sur notre article complet : Quand et Pourquoi crypter/chiffrer ses connexions

Notez qu’il existe une autre multitude d’outil pour capture les paquets qui passent par une interface.
Notamment sous GNU/Linux (ngrep, tshark, tcpdump, etc). Mais tous ne sont pas équivalents.
Voici par exemple une capture de ngrep en action, où l’on voit bien les connexion WEB (et pas que WEB) établies avec les GET :

ngrep sniffer / capture les paquets réeaux

Pour la capture et l’analyse des connexions HTTP sur Windows, il est plutôt conseillé d’utiliser Fiddler :

WireShack : capture et analyse réseau

Voici l’adresse du site WEB
L’installation ne pose pas de problèmes particulier, il faut simplement se laisser guider.

L’interface de WireShark est assez simple, nous avons :

  1. Le filtre qui permet de filtrer les résultats qui se trouvent en 2.
  2. Les paquets capturés.
  3. Les informations sur le paquets capturés avec les différentes couches de transport.
WireShark : Sniff/Analyse réseau

Les menus de WireSharck :

  • Le menu Capture permet de démarrer une capture réseau (ou la première irone de barre d’icône).
  • Le menu Analyse permet d’effectuer quelques filtres et ouvrir des complètement d’informations sur des paquets.
  • Enfin le menu Statistics offre des statistiques allant jusqu’à la possibilité d’effectuer des graphiques.

Puis les paquets réseaux capturés s’affichent en 3.
C’est à partir de cet endroit donc que l’on peut analyser les trames réseaux.
On y a trouve

  • Le timestamp
  • L’adresse IP source et de destination
  • Le protocole
  • et enfin le contenu du paquet réseau

Enfin les lignes ont des couleurs différentes selon le type de connexion, par exemple:

  • En vert les connexions HTTP.
  • En gris, les connexion SYN.
  • En jaune, les requêtes netbios.
  • Les requêtes DNS sont en bleus.
  • En cyant, les connexions TCP classiques

Les filtres Wireshark

Jouer avec les filtres

Les filtres sont particulièrement intéressant lorsque la capture contient une multitude de paquets afin de trouver ce que l’on cherche.
Il est possible d’ajouter un filtre lors de l’analyse à partir du bouton Options.

WireShark permet d’enregistrer les filtres pour une utilisation ultérieure.
Sinon il suffit de les saisir dans la barre au dessus des paquets.

WireShark le filtre de capture réseau

De même il est possible à partir du bouton Filtre d’appliquer des filtres sur l’affichage des paquets.
Le bouton Expression permet de lister les filtres.
Vous pouvez les retrouver aussi dans la documentation sur le site de WireShark : http://www.wireshark.org/docs/dfref/

Les commutateurs communs :

  • == : dont l’occurrence est égale à
  • != : dont l’occurrence est différente de
  • > ou >= : strictement supérieur ou supérieur et égal
  • < ou <= : strictement inférieur ou strictement inférieur
  • contains qui contient
  • matchs pour des comparaisons avec des expressions régulières

Vous pouvez enfin insérer plusieurs filtres avec and ou or

Liste de quelques filtres

On peut déjà filtrer sur le protocole.
Lorsque vous tapez le début, Wiresharck vous propose de compléter avec les filtres existants.
Et il y en a vraiment beaucoup.
Par exemple ci-dessous tous les filtres HTTP.

WireSharck et les filtres

Ainsi par exemple si l’on souhaite filtrer pour voir obtenir que les connexions HTTP ou DNS.

WireSharck filtrer les connexions DNS
WireSharck filtrer les connexions HTTP

ou encore les connexions OpenVPN :

WireSharck filtrer les connexions OpenVPN

Puis il existe aussi des filtres sur les adresses IP :

  • ip.addr == 192.168.1.27 : pour avoir que les paquets de cette adresse ip
  • ip.addr != 38.101.166.24 : pour NE PAS avoir les paquets de cette ip
  • ip.src == 38.101.166.24 : pour filtrer sur les ip sources
  • ip.dst == 38.101.166.24 : pour filtrer sur les ip distantes
WireShark : Sniff/Analyse réseau

Vous pouvez ensuite filtrer sur le protocole HTTP pour avoir que les GET par exemple :

ip.addr == 192.168.1.26 and http.request.method == "GET"
WireShark : Sniff/Analyse réseau

On peut aussi jouer sur les URLs :

  • http.request.uri == “https://www.malekal.com/”
  • http.host matches “malekal\.(org|com|net)”

Enfin vous pouvez aussi filtrer les requêtes DNS ou les connexions SYN pour cela :

ip.addr == 192.168.1.139 and not dns and not tcp.seq == 0

Bref, WireShark possède une multitude de filtrer pour effectuer vraiment ce que l’on veut.
A vous ensuite de chercher dans les expressions fournies.

TCP Stream

WireShark permet ensuite l’analyse des paquets et notamment de suivre les données par les séquences Stream.
En effectuant un clic droit sur un paquet puis Follow TCP Stream, WireShark vous permet de visualiser les données (en rose, la connexion cliente et en bleu la réponse du serveur).
WireShark permet ensuite de filtrer les paquets ayant cette même séquence (ex : tcp.stream eq 1).

WireSarhck filtre TCP Stream

Pour filtrer sur les paquets de votre choix , vous devez regarder l’index dans les Transmission Control Protocol => tcp.stream eq index
Pour plus d’informations sur les Transmission Control Protocole, se rendre sur la page suivante de Wikipedia : http://en.wikipedia.org/wiki/SCTP_packet_structure

WireSarhck filtre TCP Stream

Export en fichier PCAP

WireShark donne la possibilité d’enregistrer les captures réseaux effectués.
Vous pouvez exporter les informations et paquets au format texte.
Notamment les formats TXT, XML CSV et JSON sont supportés.

Wiresharck export en CSV, JSON ou Texte

Mais Wireshark supporte aussi les formats PCAP.
Il s’agit d’un format de supervision réseau utilisé aussi par TCPdump.
Vous pouvez alors charger un fichier PCAP et même en faire glisser plusieurs vers WireShark pour les concaténer.

Wiresharck export en PCAP

Capture de trafic réseau malveillant avecc WireShark

On peux ensuite utiliser WireShark pour déterminer si une machine est infectée.
Par exemple les Datas ci-dessous montre une connexion IRC d’un botnet, on y voir les ordres de téléchargement via les commandes .asc et .http

Capture de trafic réseau malveillant avecc WireShark

Ici le téléchargement d’un PE (fichier executable).
On voit le HTTP GET en haut avec le nom du fichier word.exe et en bleu la réponse du serveur qui fourni le fichier exécutable.

WireShark : Sniff/Analyse réseau

Un SPAMBot en action où on peut alors capturer les emails de spam envoyés.

Capture de trafic réseau malveillant avecc WireShark
Capture de trafic réseau malveillant avecc WireShark

Statistiques WireSharck

WireShark offre aussi la possibilité d’effectuer des statistiques à partir du menu Statistics
Cela peut à des statistiques générales (protocoles utilisé, paquets envoyés etc) à des statistiques sur les adresses IP, de destination/source.
Les statistiques prennent en compte les filtres, il est alors tout à fait possible d’effectuer les statistiques sur une machine.

Menu Statistics / Conversation / TCP montre les communications par IP et protocoles et le volume échangé.
Notez le bouton Follow Stream qui permet de filtrer ensuite sur la ligne sélectionnée.

Les Statistiques WireSharck

Le menu Statistics / Protocol Hierarchy donne une liste des protocoles utilisés avec le pourcentage du volume échangé.

Les Statistiques WireSharck

Enfin il est aussi possible de créer des graphiques (Menu Statistics / IO Graphs).

La capture d’écran ci-dessous montre le volume échangé de la machine 192.16.1.27 par rapport à l’activité globale capturé.

Les Statistiques WireSharck

Le graphique  ci-dessous lui montre l’activité SMTP de la même machine par rapport à son activité globale.
Le graphique montre bien la mise en route du Spambot.

Les Statistiques WireSharck