Wireshark

 

Pour comprendre le réseau, observer les différents protocoles ou encore les paquets de données échangés, la technique la plus répandue  consiste à écouter (sniffer ) le réseau. Il s'agit de capturer et de visualiser le trafic pendant son transit. L'outil idéal pour ça est Wireshark mais son utilisation n'est pas que passive car plusieurs des protocoles utilisés encore aujourd'hui envoient encore des informations sensibles et importantes sans les chiffrer.

 

Ces données transmises sans chiffrement sont appelées texte en clair, car elles peuvent être lues par un être humain sans déchiffrement. L'écoute d'un tel trafic permet parfois d'obtenir un accès au système cible.

 

Encore une fois cet outil ne se limite pas à l'utilisation de Linux, il est exécutable depuis n'importe quel système d'exploitation.

 

Pour l'installer sur Windows :

 

Rendez-vous sur https://www.wireshark.org/#download

 

 

Comment connaître sa version de Windows  : dans le cmd tapez winver

 

 

Vous voulez plus de détail : tapez dans le cmd, systeminfo

 

 

Pratique pour connaître le type de système 32 ou 64 bits

 

Ensuite suivez les instructions d'installation standards

 

Même chose pour MacOS:

 

Cela ne diffère pas d'une autre installation de logiciel classique

 

Pour Linux :

 

 

Si vous voulez sniffer le réseau avec wireshark il va falloir accorder les privilèges au logiciel pour un utilisateur non-root :

 

 

Voilà votre système est prêt. Pour lancer wireshark :

 

 

Sur Windows et Mac cliquez sur l'icône:

 

Au démarrage vous aurez ceci si vous êtes en connexion filaire (eth0) :

 

 

Ou bien ceci si vous êtes en connexion wifi (wlan0), ici nous utilisons en même temps kali en machine virtuelle

 

 

Attention lorsque vous allez démarrer la capture en cliquant sur l'aileron bleu vous allez probablement capturer beaucoup de trafic et risquez de vous perdre et ne rien comprendre.

 

Commençons par filtrer notre capture:

 

On clique une fois sur wifi pour sélectionner la zone puis dans Enter a capture filter, tapons icmp, nous venons de demander à wireshark de ne sniffer que des paquets ICMP (voir chapitre Protocoles internet) :

 

 

Cliquez maintenant sur l'aileron bleu (démarrer la capture de paquet)

 

Et là.....suspense....rien ne se passe ;) portant il est bien marqué Capture en cours de Wi-Fi (icmp)

 

 

Pas de panique ! Nous allons nous même générer l'envoie de paquets ICMP grâce à la commande ping (voir chapitre Ping)

 

Faisons un ping google.com

 

 

Et là, retournons sur Wireshark

 

 

Nous avons ici 8 paquets (pour rappel windows émet 4 paquets), 4 requêtes et 4 réponses

 

Les paquets générés par les requêtes ping de notre ordinateur vers google.com sont affichées

 

Analysons tout ça :

 

 

La section supérieure affiche la liste des trames PDU c'est à dire Le Protocol Data Unit ou Unité de données de protocole (PDU) est l'unité de mesure des informations échangées dans un réseau informatique.

Appliqué au système de couches du modèle OSI, le PDU de :

  1. La couche physique est le bit.
  2. La couche liaison est la trame.
  3. La couche réseau est le paquet.
  4. La couche transport est le segment pour TCP, et le datagramme pour UDP.
  5. Les couches application, présentation et session sont les données.

 

 

Dans la colonne Source nous avons notre IP.

Dans la colonne Destination l'IP de l'ordinateur auquel nous avons envoyé notre requête.

 

Cette trame  N° 1 étant sélectionnée regardons la partie centrale :

 

 

Ici nous pouvons visualiser clairement les différentes couches d'encapsulation du paquet et nous avons le détail de chaque encapsulation en cliquant sur chaque triangle qui permet de dérouler l'en tête afin de voir l'ensemble des champs correspondant.

 

Les 4 entrées présentent correspondent aux différentes encapsulations du paquet, ordonnées de la couche la plus basse à la couche la plus haute voici l'encapsulation d'un paquet icmp :

 

Frame 1 c'est la couche physique, on voit ici que le paquet fait 74 bytes (octets) c'est à dire 592 bits (1octet = 8bits)

 

Attention bytes et bits sont de faux amis, en français bytes veut dire octets et bit se traduit par bit

 

La zone inférieur montre la frame sous forme octale on voit ici que Frame 1 correspond à la totalité des octets puisqu'il s'agit du paquet dans son ensemble tel qu'il est transmis.

 

Ensuite la couche Ethernet correspond à la couche liaison de données ,on l'appel ici la trame, on peut y observer ici l'adresse MAC de la Source et du Destinataire.

 

On peut voir dans la zone inférieure la forme octale de la trame.

 

Ici Internet Protocol correspond à la couche réseau , on parle ici de paquet, on y lit ici l'adresse IP de la source et du destinataire.

 

 

Et sous sa forme octale dans la zone inférieure.

 

Et enfin l'ICMP qui est le datagram relatif à la couche transport et qui contient les données (Data) de la couche application.

 

 

Nous avons choisi ici l'envoie de paquets ICMP afin de simplifier l'analyse, maintenant que vous avez compris les bases...

Application dans le hacking:

 

Maintenant voyons comment Wireshark peut être utilisé afin de récupérer vos identifiants en sniffant vos communications.

 

Pour cela rendons nous sur une site vulnérable destiné à la pratique du hacking : http://www.vulnweb.com/

 

 

rendons nous sur l'URL : http://testhtml5.vulnweb.com ,bien sur comme nous l'avons vu au chapitre requête HTTP, ce que nous allons faire est possible car nous sommes en HTTP et non HTTPS.

 

Après avoir ouvert wireshark, démarrons la capture puis rendons nous sur l'URL.

 

 

Je tape : monmotdepasseintrouvable, cliquer sur Login.

 

 Puis je me rend sur Wireshark,  cette fois vous allez voir beaucoup de traffic car nous n'avons pas filtré la capture :

 

 

recherchons une réponse HTTP (HTTP POST), la première en bleu est la bonne : POST /login HTTP/1.1, il s'agit clairement de la réponse du serveur auquel nous venon de nous authentifier en tant que username : admin et password : monmotdepasseintrouvable. Double cliquons dessus :

 

 

Et là, BINGO! tout y est en clair

 regardons la version hexadécimale du paquet décodé en ASCII, wireshark le décode pour vous.

 

 

Maintenant imaginez qu'il soit possible de faire la même chose avec vos données personnelles comme votre numéro de compte bancaire par exemple, précédemment nous nous étions simplement authentifié sur une page web créé pour tester les vulnérabilités de ce type de protocole.

 

Retour sur http://www.vulnweb.com/ et sur l'URL : http://testphp.vulnweb.com/

 

Aller sur Sign up puis remplir le questionnaire, vous faîtes ça très régulièrement lorsque vous surfez sur internet, ne mettez pas d'information sensible sur ce site.

 

 

Cliquons sur signup et allons voir notre capture wireshark

 

 

Voilà nous sommes dans la base de donnée de ACUNETIX ART, malheureusement nos infos ont également transité sur la toile et sont visible en clair grâce à wireshark.

 

 

Tout y est, ça fait froid dans le dos...

 

Pensez à toutes les fois ou vous voulez accéder à un site marchand et ou vous devez rentrer vos coordonnées personnelles.

 


HTTP : les données ne sont pas chiffrées

Toutes les URL qui commencent par HTTP utilisent un protocole simple de transfert hypertexte. HTTP est un système sans état, ce qui signifie qu’il permet de créer des connexions à la demande. Lorsque vous cliquez sur un lien, une connexion est sollicitée et votre navigateur web envoie la demande au serveur qui répond en ouvrant la page. Plus la connexion est rapide plus les données s’affichent rapidement.

En tant que protocole de couche d’application, l’unique objectif de HTTP est d’afficher les informations demandées sans se soucier de la façon dont ces informations se déplacent d’un endroit à un autre. Malheureusement, cela signifie que HTTP peut être intercepté et éventuellement détourné, ce qui rend les informations et leurs destinataires (c’est-à-dire vous) vulnérables.