WireShark : sniff et analyse réseau

WireShark est un outil puissant qui permet de capturer les paquets passant par une interface et d’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.
Bref l’usage de WireShark est multiple, cette page vous donne quelques aperçus de ses possibilités.

WireShark : sniff 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 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). 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 :

WireShark : sniff/analyse réseau

Première utilisation

L’adresse du site WEB : http://www.wireshark.org/
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

Le menu Capture permet de démarrer une captureré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.

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 requetes netbios.
  • Les requêtes DNS sont en bleus.
  • En cyant, les connexions TCP classiques

Jouer avec les filtres

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

Les filtres peuvent être enregistrés pour une utilisation ultérieure.

WireShark : sniff/analyse 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

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

Quelques filtres

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

Voici quelques filtres sur les IP :

  • ip.addr == 192.168.1.27 : pour avoir que les paquets de cette 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

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 paquents ayant cette même séquence (ex : tcp.stream eq 1).

WireShark : Sniff/Analyse réseau

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

WireShark : Sniff/Analyse réseau

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 Wiresharck 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 et Malwares

On peux ensuite utiliser WireSharck 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

WireShark : Sniff/Analyse réseau

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 :

WireShark : Sniff/Analyse réseau
WireShark : Sniff/Analyse réseau

Statistiques

WireSharck offre aussi la possibilité d’effectuer des statistiques à partir du menu Statistics
Cela peut à des statistiques généraels (protocoles utilisé, paquets envoyés etc) à aller de la longueur des paquets ou des statistiques sur les 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.

WireShark : Sniff/Analyse réseau

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

WireShark : Sniff/Analyse réseau

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

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

WireShark : Sniff/Analyse réseau

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.

WireShark : Sniff/Analyse réseau
image_pdfimage_print
(Visité 7 943 fois, 7 visites ce jour)