Vous êtes sur la page 1sur 7

Crack de clé WPA en quelques heures faille WPS

Wi-Fi Protected Setup (WPS) est un standard de réseau local sans fil simple et sécurisé. Le but du protocole
WPS est de simplifier la phase de configuration de la sécurité des réseaux sans fil. Une grave vulnérabilité de la
méthode PIN a été démontrée en décembre 2011 par Stefan Viehböck. Cette publication s’accompagne d’une
application appelée reaver-wps qui implémente l’attaque et permet à l’attaquant de récupérer la clé WPA du rou-
teur. Nous allons donc voir comment cracker un réseau wifi en attaquant le WPS avec reaver !

Présentation du WPS
Wi-Fi Protected Setup (WPS) est un standard de réseau local sans fil simple et sécurisé. Conçu par la Wi-Fi Al-
liance, il a été lancé début 2007.
Le but du protocole WPS est de simplifier la phase de configuration de la sécurité des réseaux sans fil. Il per-
met à des particuliers ayant peu de connaissances sur la sécurité de configurer un accès WPA, supporté par
les appareils Wi-Fi.
Ce standard met l’accent sur l’utilisabilité et la sécurité, et le concept se décline en quatre façons d’établir un
réseau domestique. L’utilisateur voulant ajouter un périphérique au réseau peut utiliser au choix :
la méthode PIN (Personal Identification Number), un numéro à lire sur une étiquette (ou un écran) du nouvel
appareil, et à reporter sur le « représentant » du réseau (le point d’accès ou le registrar).
la méthode PBC, où l’utilisateur presse un bouton (physique ou virtuel), à la fois sur le point d’accès et sur
le nouvel appareil.
la méthode NFC, où l’utilisateur approche le nouvel appareil du point d’accès pour établir une
communication en champ proche entre eux.
Une grave vulnérabilité de la méthode PIN a été démontrée en décembre 2011 par Stefan Viehböck. Cette publi-
cation s’accompagne d’une application appelée reaver-wps qui implémente l’attaque et permet à l’attaquant de
récupérer la clé WPA du routeur.

Compréhension du mécanisme à l’origine de la faille de sécurité


Dans la prochaine section de ce tutoriel, nous allons voir en détails le fonctionnement de la méthode PIN utili-
sée par la norme WPS ainsi que les différentes failles qui nous permettront de mettre en place une attaque.
La méthode s’articule autour de l’authentification par PIN entre le client et le routeur. Un nombre PIN est
composé de 8 chiffres :

Le checksum est calculé à partir des sept premiers chiffres. C’est un chiffre dont le but principal est d’assurer
la sécurité et l’intégrité du code PIN qui pourrait se retrouver altérer lors de la phase de communication entre le
client et le routeur.
Nous en arrivons à la première faille de sécurité. Le nombre de combinaisons possibles est réduit de 10^8 à
10^7 soit tout de même 10.000.000.
La seconde faille de sécurité est de loin la plus intéressante car, comme nous allons le voir par la suite, nous
permettra de tomber à seulement 11.000 combinaisons possibles soit dix fois rien quand on parle de brute-
force !
Dans une norme sans faille, quand un routeur envoie un code PIN au routeur, celui devrait lui renvoyer le mes-
sage « OUI, ce code est correct » ou « NON, code incorrect ». Dans ce cas là, nous serions obligés de tester les
10.000.000 de combinaisons jusqu’à temps arrivé au bon code PIN.
En réalité, le routeur va nous renvoyer plusieurs messages différents dits personnalisés (M4, M6, M7) selon la
validité d’un sous-ensemble de ce code PIN.
Si le client reçoit un message de type M4, il sait que le premier groupe de chiffres est faux ;
Si le client reçoit un message de type M6, il sait que le second groupe de chiffres est erroné ;
Si le client reçoit un message de type M7, le code PIN est valide.
Cette forme d’authentification fait décroître de façon très importante le nombre maximal de combinaisons pos-
sibles, le faisant passer de 10^7 à seulement 10^4 + 10^4.
Mais comment nous avons précédemment que le dernier chiffre sert pour le checksum, il y a tout au plus 10^4
+ 10^3 = 11.000 combinaisons possibles.
L’algorithme est donc le suivant :

Voici à titre d’exemple, le déroulement de cet algorithme :

Dans l’exemple, les checksums ont été pris au hasard. L’algorithme de calcul de checksum peut être consul-
table dans les sources de reaver-wps mais ce n’est pas l’objectif de ce tutoriel que de vous montrer en détails
comment ce checksum est calculé.

Utilisation de reaver-wps et liste des fonctionnalités


Maintenant que nous avons vu ensemble les grandes lignes, il est temps de passer à la pratique.
Pour cela, vous aurez besoin de :
Backtrack 5 R3 - available here: http://www.backtrack-linux.org/downloads/
Une connexion internet pour pouvoir télécharger walsh
Si vous bloquez à cette étape, je vous invite à regarder mon autre tutoriel sur comment installer
BackTrack 5 sur une clé usb bootable avec la persistence.

Installation de Walsh
Walsh est un utilitaire non compris dans Backtrack 5 R3 qui permet de scanner les AP qui possèdent le WPS.
Pour le télécharger, rentrez la commande suivante :
wget http://reaver-wps.google.com/files/reaver-1.3. tar . gz
Vérifiez qu’il n’y a pas de version plus récente que la 1.3, si c’est le cas, prenez la dernière version.

Si vous n’avez pas de connexion internet sous la main, assurez-vous d’avoir au préalable téléchargé reaver-
1.3.tar.gz depuis un hotspot avec accès internet (type McDo).
Une fois téléchargé, décompressez le avec la commande tar –xvf :
tar -xvf reprendre-1.3. tar . gz

Naviguez dans reaver-1.3/src/ et exécutez ./configure pour créer le MakeFile.

Tapez simplement make pour démarrer la compilation.


Deux nouveaux exécutables sont apparus : reaver et walsh (en vert).
Avant d’exécuter walsh, il est nécessaire de démarrer son interface en mode monitoring (mon0) de la manière
suivante :
airmon-ng start wlan0

Remarque : Dans mon cas, mon interface s’appelle wlan0. Dans votre situation, cela peut être eth0, eth1, wlan0,
wlan1…
Pour checker, tapez ifconfig dans votre terminal.
Si votre interface n’est pas visible, tapez ifconfig –a pour voir toutes les interfaces (down et up).
Sélectionnez votre interface et rentrez la commande ifconfig <interface> up pour l’activer.
Vous pouvez à présent scanner les AP avec la commande :
./walsh –i <interface_monitoring>

Retenez le BSSID de l’AP qui vous intéresse. Dans notre cas : 00 :26 :44 :FA :XX :XX.

Reaver
A présent, je vous conseille d’utiliser le reaver fourni avec Backtrack 5 R3 et non celui que vous avez généré
avec la commande make (comme le cas de walsh).
La commande de l’attaque est :
reaver -b (bssid de l’AP) –vv –l 320 -i mon0
Et c’est parti !

Si vous voulez quitter reaver, pensez que la session sera automatiquement sauvegardée dans un fichier situé
dans /usr/local/share/reaver/etc.

Pour ceux qui n’ont pas créé de clé BT avec le mode persistent, le contenu sera supprimé à chaque démarrage.
C’est pourquoi je vous conseille de mettre les deux fichiers de reaver sur une autre clé usb.

Il vous suffira alors de les replacer dans /usr/local/share/reaver/etc pour reprendre la session automatiquement
Dans mon cas, les deux fichiers de sauvegarde de session sont 002644FAXXXX.wpc (nom du BSSID de l’AP) et
reaver.db.
Une fois que vous aurez trouvé les 4 premiers PINs, les prochains iront jusqu’au message M6. Un message M7
signifiera que ce sera le bon code PIN ! Vous n’aurez alors plus qu’à demander à l’AP de vous envoyer la clé
WPA via le réseau (reaver s’en chargera

Finalement après des heures (voire même des jours), vous aurez l’écran suivant :

Il vous suffit maintenant d’aller dans Internet > Wicd puis de rentrer la WPA PSK dans le champ WPA de l’AP.
Une fois sur le réseau, il vous suffira de rentrer dans la console d’administration et de noter sur papier blanc la
vraie clé WPA qui permettra à n’importe quel ordinateur de se connecter sur le nouveau réseau.
Résultats
En général, une tentative d’authentification prend entre 0.5 et 3 secondes.
La plupart des routeurs ont implémenté un mécanisme de blocage contre les attaques de type bruteforce de ce
genre. L’algorithme de blocage est la plupart du temps de la forme :
Si le nombre de tentatives est supérieur à 5, alors patienter 5 min et recommencer.
Pour les FAI qui n’ont pas implémentés ce mécanisme, une attaque peut se terminer en moins de 4h (à 1.3 se-
condes/tentative).

Remarque : Le temps moyen est égal à la moitié du temps maximal car on considère que le code PIN suit une
loi aléatoire uniforme.