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.
Table des matières
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 :
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 :
- Le filtre qui permet de filtrer les résultats qui se trouvent en 2.
- Les paquets capturés.
- Les informations sur le paquets capturés avec les différentes couches de transport.
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.
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.
Ainsi par exemple si l’on souhaite filtrer pour voir obtenir que les connexions HTTP ou DNS.
ou encore 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
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"
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).
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
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.
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.
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
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.
Un SPAMBot en action où on peut alors capturer les emails de spam envoyés.
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.
Le menu Statistics / Protocol Hierarchy donne une liste des protocoles utilisés avec le pourcentage du volume échangé.
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é.
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.