Table des matières
Tutorial: Cracker aisément une clé WEP
Version: 1.0 , 14 Juin 2011
By: nicoweb
Based on original version by darkAudax
Introduction
Ce tutorial vous présente un exemple simple d'utilisation ayant pour objectif de cracker une clé WEP. Ce tutorial est rédigé dans l'objectif de vous permettre de comprendre les techniques en jeu et ainsi de pouvoir faire évoluer vos compétences en termes de sécurité informatique. Ce tutorial prend en compte par défaut que vous possédez une carte réseau wifi ayant des drivers correctement patchés afin de réaliser des injections.
L'objectif principal de ce tutorial est d'utilisation la fonction “replay” de la commande “aireplay-ng” afin de générer un vecteur d'initialisation (VI) unique. Une fois obtenu, la commande “aircrack-ng” utilise ce nouveau vecteur d'initialisation pour cracker la clé WEP. Avant de continuer ce tutorial, il est important de comprendre ce qu'est un paquet ARP. Vous pouvez consulter la section "Qu'est ce qu'un paquet ARP ?" pour plus d'informations à ce sujet.
Vous pouvez également prendre le temps de consulter le guide du newbie Installer Aircrack-ng et celui permettant d'installer les bons drivers pour votre carte réseau Installation des drivers.
Nous vous recommandons de tester ce tutorial sur la box de votre domicile afin de pouvoir bien comprendre les enjeux et les techniques démontrées à travers ce tutorial. Si vous ne possédez votre propre point d'accès, n'oubliez pas de demander la permission au propriétaire du point d'accès sur lequel vous testerez ce tutorial.
N'hésitez pas à transmettre tout feedback constructif, positif, négatif. Des informations supplémentaires sur des bugs ou des astuces sont également appréciés.
Pré-requis
Nous prenons en compte par défaut que :
- vous utilisez des drivers de carte réseau patchés pour l'injection. Vous pouvez utilisez le test d'injection pour confirmer que votre carte réseau dispose bien de la fonction d'injection.
- vous être assez proche physiquement pour recevoir et envoyer des paquets au point d'accès (PA). La capacité d'émission des cartes réseaux sont souvent inférieures à celle des points d'accès. Donc, vous devez être assez proche physiquement du PA pour que vos paquets puissent être bien reçus et traités par le PA. Vous pouvez confirmer cette capacité à communiquer avec le PA en réalisant le test d'injection.
- il existe au moins en équipement réseau client connecté au PA et que celui ci est actif. Ceci est nécessaire car le tutorial nécessite de pouvoir recevoir au moins une requête de paquet ARP, paquets qui ne sont générés, disponibles, que si un ou des équipements réseaux sont connectés au PA.
- vous utilisez la version 0.9 de aircrack-ng. Si vous utilisez une version différente, il est possible que les options des commandes aient changé.
Assurez vous que tous les pré-requis ci avant soient validés, dans le cas contraire faites le nécessaire pour que cela soit le cas. Afin de reproduire le tutorial sur votre machine, vous devrez remplacer “ath0” par le nom d'interface spécifique à votre carte réseau.
Equipement utilisé
Ci après la liste du matériel utilisé pour réaliser ce tutorial :
- Adresse MAC du PC qui exécuté la suite aircrack-ng : 00:0F:B5:88:AC:82
- BSSID (adresse MC du point d'accès (PA)) : 00:14:6c:7E:40:80
- ESSID (nom du réseau wifi du PA) : teddy
- Canal de communication du PA : 9
- Interface réseau sans fil : ath0
Pour reproduire ce tutorial, vous avez besoin des mêmes informations que ci avant pour le réseau que vous souhaitez utiliser.
Plan du tutorial
Pour cracker la clé WEP d'un point d'accès, vous devez rassembler de très nombres vecteurs d'initialisation (VI). Le traffic réseau classique ne génère pas typiquement ce type de VI de manière rapide. Dans la théorie, cela nécessite d'être patient pour générer assez de VI en écoutant simplement le traffic réseau et en le sauvegardant. Etant entendu que les lecteurs de ce tutorial ne sont pas patients, ce tutorial utilisera une technique dite d'injection qui permet d'accélérer le processus de génération de VI. La technique d'injection consiste à faire renvoyer par le PA certains paquets sélectionnés de plus en plus rapidement. Cette technique permet de capture un très large nombre de VI sur une courte période de temps.
Une fois que le nombre de VI est assez conséquents, on les utilise pour déterminer la clé WEP du PA.
Ci après, la liste des étapes basiques qui seront détaillées dans ce tutorial :
- Démarrage de l'interface sans-fil en mode moniteur sur un canal spécifique du PA
- Test des capacités d'injection de l'interface sans-fil sur le PA
- Utilisation de aireplay-ng pour réaliser une fausse authentification sur le PA
- Démarrage de airodump-ng sur le canal de communication du PA avec un filtrage BSSID pour capture les VI uniques
- Démarrage de aireplay-ng en mode ARP-request-replay pour injecter les paquets
- Utilisation de aircrack-ng pour cracker la clé WEP sur la base des VI capturés
Etape 1 - Démarrer l'interface réseau sans-fil en mode moniteur sur le canal de communication du PA
Le but de cette étape est de paramétrer votre carte réseau en mode moniteur. Le mode moniteur est un mode spécial des cartes réseaux qui permet d'écouter chaque paquet qui se promène dans l'air. Par défaut, les cartes réseaux ne lisent que les paquets qui leur sont destinées. En écoutant chaque paquet, il est possible d'en sauvegarder certains qui serviront plus tard pour l'injection. A part pour de rares exceptions, seul le mode moniteur vous permet de pouvoir injecter des paquets (nb: la procédure qui suit est différente pour les cartes non-Atheros).
Premièrement, stopper l'interface ath0 en saisissant :
airmon-ng stop ath0
Le système vous répond :
Interface Chipset Driver wifi0 Atheros madwifi-ng ath0 Atheros madwifi-ng VAP (parent: wifi0) (VAP destroyed)
Saisissez “iwconfig” pour vous assurer que vous n'avez pas d'autres interfaces athX. Le système doit vous répondre un message similaire à celui ci après :
lo no wireless extensions. eth0 no wireless extensions. wifi0 no wireless extensions.
Si vous possédez d'autres interfaces athX, stoppez les. Lorsque vous les avez stoppé, exécutez “iwconfig” pour vous assurez qu'il n'en reste aucune.
Ensuite, saisissez la commande suivant pour démarrer la carte réseau sans-fil en mode moniteur sur le canal 9 :
airmon-ng start wifi0 9
Modifiez la valeur “9” en fonction du canal qu'utilise votre PA. Ce point est important. Vous devez bloquer votre carte réseau sans-fil sur le canal 9 pour que les étapes suivantes de ce tutorial fonctionnent correctement.
Note: Dans la commande ci-avant, nous avons utilisé “wifi0” au lieu de l'interface réseau sans-fil “ath0”. C'est en raison du fait que les drivers madwifi-ng sont utilisés. Pour les autres drivers, utiliser le nom de l'interface réseau sans-fil. Par exemple “wlan0” ou “rausb0”.
Le système vous répond le message suivant :
Interface Chipset Driver wifi0 Atheros madwifi-ng ath0 Atheros madwifi-ng VAP (parent: wifi0) (monitor mode enabled)
Nous noterez bien que “ath0” est listé ci dessus en mode moniteur.
Cela confirme que l'interface est correctement configurée, saisissez à nouveau “iwconfig”.
Le système vous répond le message suivant :
lo no wireless extensions. wifi0 no wireless extensions. eth0 no wireless extensions. ath0 IEEE 802.11g ESSID:"" Nickname:"" Mode:Monitor Frequency:2.452 GHz Access Point: 00:0F:B5:88:AC:82 Bit Rate:0 kb/s Tx-Power:18 dBm Sensitivity=0/3 Retry:off RTS thr:off Fragment thr:off Encryption key:off Power Management:off Link Quality=0/94 Signal level=-95 dBm Noise level=-95 dBm Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0
Dans la réponse du système ci-dessus, on peut voir que ath0 est en mode moniteur, sur une fréquence de 2.452GHz qui correspond au canal de communication 9 et que le champ “Access Point” indique l'adresse MAC de votre carte réseau sans-fil. Notez que, seuls les drivers madwifi-ng indique l'adresse MAC de votre carte réseau sans-fil, les autres drivers ne font pas cela. Donc, à ce stade, tout est correct dans la configuration de votre matériel. Il est important que vous confirmiez tous les points ci avant, avant de continuer plus loin ce tutorial, auquel cas, les étapes suivantes risqueraient de ne pas fonctionner.
Pour plus d'informations sur les liens entre la fréquence et les canaux de communication vous pouvez consulter le lien suivant http://www.cisco.com/en/US/docs/wireless/technology/channel/deployment/guide/Channel.html#wp134132 qui vous donnera la fréquence correspondante à chaque canal de communication.
Etape 2 - Tester l'injection de paquet avec la carte réseau sans-fil
L'objectif de cette étape est de vous assurer que votre carte réseau est assez proche physiquement du PA afin de pouvoir lui injecter des paquets.
Saisissez :
aireplay-ng -9 -e teddy -a 00:14:6C:7E:40:80 ath0
Ou :
- -9 signifie le mode injection
- -e teddy est le nom de réseau
- -a 00:14:6C:7E:40:80 est l'adresse MAC du PA
- ath0 est le nom de l'interface réseau sans-fil
Le système doit répondre :
09:23:35 Waiting for beacon frame (BSSID: 00:14:6C:7E:40:80) on channel 9
09:23:35 Trying broadcast probe requests...
09:23:35 Injection is working!
09:23:37 Found 1 AP
09:23:37 Trying directed probe requests...
09:23:37 00:14:6C:7E:40:80 - channel: 9 - 'teddy'
09:23:39 Ping (min/avg/max): 1.827ms/68.145ms/111.610ms Power: 33.73
09:23:39 30/30: 100%
La dernière ligne est importante. Idéalement, cette ligne doit dire 100% ou un pourcentage très élevé. Si le pourcentage est faible c'est que vous êtes trop loin du PA ou trop près. Si la valeur est 0%, alors l'injection ne peut pas fonctionner et vous devez, soit patcher vos drivers, soit utiliser d'autres drivers.
Vous pouvez consulter la page sur les tests d'injection pour plus de détails.
Etape 3 - Démarrer airodump-ng pour capturer les VI
L'objectif de cette étape est de capturer les VI générés. Cette étape permet de démarrer airodump-ng pour capturer des VI depuis un point d'accès (PA) spécifique.
Ouvrez une nouvelle session de console pour capturer les VI générés, puis, saisissez :
airodump-ng -c 9 --bssid 00:14:6C:7E:40:80 -w output ath0
Ou :
- -c 9 est le canal de communication du PA.
- -
-bssid 00:14:6C:7E:40:80 est l'adresse MAC du PA. Cela permet d'éliminer le traffic superflu.
- -w output est le préfixe de nom de fichier pour le fichier qui contiendra les VI capturés.
- ath0 est le nom de l'interface réseau.
Lorsque vous aurez commencer à réaliser l'injection, l'écran sera similaire à celui présenté ci après :
CH 9 ][ Elapsed: 8 mins ][ 2007-03-21 19:25 BSSID PWR RXQ Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID 00:14:6C:7E:40:80 42 100 5240 178307 338 9 54 WEP WEP teddy BSSID STATION PWR Lost Packets Probes 00:14:6C:7E:40:80 00:0F:B5:88:AC:82 42 0 183782
Etape 4 - Utilisez aireplay-ng pour réaliser une fausse authentification sur le PA
Afin de pouvoir faire en sorte qu'un point d'accès (PA) accepte un paquet, l'adresse MAC source de la carte envoyant le paquet doit être préalablement associé au PA. Si l'adresse MAC de la carte réseau depuis laquelle vous injectez n'est pas associée, alors le PA ignorera vos paquets et vous renverra des paquets “DeAuthentification” en texte clair. A ce stade, aucun nouveau VI n'est généré parce que le PA ignore les paquets que vous lui injectez.
L'absence d'association avec le PA est la seule et unique raison pour laquelle les injections échouent. Rappelez vous de la règle d'or : l'adresse MAC que vous utilisez pour l'injection doit être associé avec le PA en utilisant la technique de fausse authentification ou en utilisant une adresse MAC déjà associé au PA.
Pour associer votre carte réseau à un PA, utilisez la fausse authentification :
aireplay-ng -1 0 -e teddy -a 00:14:6C:7E:40:80 -h 00:0F:B5:88:AC:82 ath0
Ou :
- -1 signifie mode “fausse authentification”
- 0 délai entre les demandes de réassociation en secondes
- -e teddy est le nom du réseau sans-fil
- -a 00:14:6C:7E:40:80 est l'adresse MAC du PA
- -h 00:0F:B5:88:AC:82 est l'adresse MAC de la carte réseau utilisée pour l'injection
- ath0 est le nom de l'interface réseau
Un succès de cette opération ressemble à cela dans la console :
18:18:20 Sending Authentication Request 18:18:20 Authentication successful 18:18:20 Sending Association Request 18:18:20 Association successful :-)
Une variation pour des PA un peu pointilleux :
aireplay-ng -1 6000 -o 1 -q 10 -e teddy -a 00:14:6C:7E:40:80 -h 00:0F:B5:88:AC:82 ath0
Ou :
- 6000 - réalise une réauthentification toutes les 6000 secondes. La longue période de temps induit l'envoi de paquets keep-alive.
- -o 1 - Permet de n'envoyer qu'un set de paquets à la fois. Par défaut, plusieurs sets sont envoyés en même temps et cela trouble certains PA.
- -q 10 - envoie des paquets keep-alive toutes les 10 secondes.
Un succès de cette opération ressemble à cela dans la console :
18:22:32 Sending Authentication Request 18:22:32 Authentication successful 18:22:32 Sending Association Request 18:22:32 Association successful :-) 18:22:42 Sending keep-alive packet 18:22:52 Sending keep-alive packet # et ainsi de suite
Ci-après un exemple de ce qui est affiché dans la console lorsque l'opération échoue:
8:28:02 Sending Authentication Request 18:28:02 Authentication successful 18:28:02 Sending Association Request 18:28:02 Association successful :-) 18:28:02 Got a deauthentication packet! 18:28:05 Sending Authentication Request 18:28:05 Authentication successful 18:28:05 Sending Association Request 18:28:10 Sending Authentication Request 18:28:10 Authentication successful 18:28:10 Sending Association Request
Notez le message “Got a deauthentification packet” et les essais réitérés dans l'extrait de console ci avant. Ne continuez pas vers l'étape suivante de ce tutorial tant que vous n'avez pas pu réaliser l'opération de fausse authentification de manière correcte.
Astuces pour résolution de problèmes
- Certains PA sont configurés pour n'autoriser uniquement que certaines adresses MAC associées et connectées. Si cela est le cas, vous ne pourrez pas réussir la fausse authentification tant que vous ne connaîtrez pas au minimum l'une des adresses MAC associables au PA. Si vous pensez que cela est un problème, vous pouvez utiliser la commande ci après pendant que vous tentez de réaliser la fausse authentification. Ouvrez une nouvelle session de console et saisissez :
tcpdump -n -vvv -s0 -e -i <interface name> | grep -i -E “(RA:<MAC address of your card>|Authentication|ssoc)”
Vous devez ensuite vous enquérir de rechercher les messages d'erreur.
- Si à tout moment vous souhaitez confirmer que vous êtes correctement associé, vous pouvez utiliser tcpdump et regarder les paquets qui transitent. Ouvrez une nouvelle session de console et saisissez :
You would then look for error messages.
- If at any time you wish to confirm you are properly associated is to use tcpdump and look at the packets. Start another session and…
tcpdump -n -e -s0 -vvv -i ath0
Ci-après, un message d'erreur tcpdump typique de ceux que vous recherchez :
11:04:34.360700 314us BSSID:00:14:6c:7e:40:80 DA:00:0F:B5:88:AC:82 SA:00:14:6c:7e:40:80 DeAuthentication: Class 3 frame received from nonassociated station
Notez que le PA (00:14:6c:7e:40:80) dit à la source (00:0F:B5:88:AC:82) que vous n'êtes pas associé. Cela signifie que le PA ne pourra prendre en compte ou accepter des paquets injectés depuis cette source.
Si vous souhaitez sélectionner uniquement les paquets DeAuth avec tcpdump, vous pouvez utiliser la commande ci-après :
Notice that the access point (00:14:6c:7e:40:80) is telling the source (00:0F:B5:88:AC:82) you are not associated. Meaning, the AP will not process or accept the injected packets.
tcpdump -n -e -s0 -vvv -i ath0 | grep -i DeAuth
Vous pouvez modifier la valeur DeAuth recherché pour d'autres valeurs correspondants aux paquets que vous souhaitez lister avec tcpdump.
Etape 5 - Démarrer aireplay-ng en mode replay de requêtes ARP
L'objectif de cetet étape est de démarrer aireplay-ng dans un mode qui écoute les paquets ARP et les réinject à travers le réseau. Pour une explication détaillée de ARP, vous pouvez consulter le lien suivant PC Magazine page ou encore la page wikipédia traitant de l'ARP. La raison pour laquelle nous choisissons les paquets ARP est que le PA va normalement les rediffuser en regénérant de nouveaux VI. Encore une fois, notre objectif, est d'obtenir un large nombre de VI dans une courte période de temps.
Ouvrez une nouvelle session de console et saisissez :
aireplay-ng -3 -b 00:14:6C:7E:40:80 -h 00:0F:B5:88:AC:82 ath0
Le système va commencer à écouter les requêtes ARP et lorsqu'il captera l'une d'elles, aireplay-ng la capturera immédiatement pour la réinjecter au PA. Vous pouvez consulter la page traitant de la génération d'ARP pour remédier à certains soucis qui pourraient survenir comme par exemple le fait que la console reste bloqué sur le message “got 0 ARP requests” pendant une longue période de temps.
Ci-après, un extrait de la console lorsque des paquets ARP sont injectés :
Saving ARP requests in replay_arp-0321-191525.cap You should also start airodump-ng to capture replies. Read 629399 packets (got 316283 ARP requests), sent 210955 packets...
Vous pouvez confirmer que vous êtes bien en train d'injection en jettant un coup d'oeil avec votre console ouverte sur airodump-ng. Le nombre de paquets de données devrait dès lors croître rapidement. La colonne “#/s” devrait présenter un chiffre décent. Cependant, le caractère décent dépend de nombreux facteurs. Une fourchette moyenne acceptable est de 300 à 400 paquets par seconde. Pour être utilisable, il faut un taux au minimum de 100 paquets par seconde à un taux maximum de 500 paquets par seconde.
Astuces pour résolution de problèmes
- Si vous recevez un message similaire à “Got a deauth/disassoc packet. Is the source mac associated?”, cela signifie que vous avez perdu l'association avec le PA. Tous les paquets que vous injectez seront ignorés. Vous devez reprendre le tutorial à partir de l'étape 3 et réétablir une association entre votre carte réseau et le PA.
Etape 6 - Démarrer aircrack-ng pour obtenir la clé WEP
L'objectif de cette étape est d'obtenir la clé WEP à partir des VI collectés lors des étapes précédentes. Note: dans le cadre de tests éducatifs, vous devriez utiliser une clé WEP de 64 bits pour accélérer l'étape de crack. Dans ce cas, vous pouvez inclure l'option “-n 64” pour limiter les tests aux clés de 64 bits.
Deux méthodes vous seront présentées ci-après. Nous vous conseillons de tester les deux méthodes dans un objectif éducatif. En testant les deux méthodes, vous pourrez voir la différence entre la méthode PTW et la méthode FMS/KoreK. Pour mémoire, la méthode PTW fonctionne uniquement dans le cas ou vous disposez de requêtes ARP et des paquets reçus par la suite. Ce tutorial couvrant la génération de paquets de requêtes ARP, vous pouvez donc utiliser cette méthode. L'autre pré-requis est que vous capturiez les paquets complets avec airodump-ng c'est à dire que vous n'utilisez pas l'option “--ivs”.
Ouvrez une nouvelle session de console et saisissez :
aircrack-ng -b 00:14:6C:7E:40:80 output*.cap
Ou :
- -b 00:14:6C:7E:40:80 permet de sélectionner le PA qui vous intéresse. Ceci est optionnel dans le cas de ce tutorial étant donné que nous avons paramétré airodump-ng pour qu'il ne sélectionne que les paquets du PA.
- output*.cap permet de sélectionner tous les fichiers commençant par “output” et se terminant par “.cap”.
Pour tester également la méthode FMS/KoreK, ouvez une nouvelle session de console et saisissez :
aircrack-ng -K -b 00:14:6C:7E:40:80 output*.cap
Where:
- -K permet d'invoquer la méthode FMS/KoreK
- -b 00:14:6C:7E:40:80 permet de sélectionner le PA qui vous intéresse. Ceci est optionnel dans le cas de ce tutorial étant donné que nous avons paramétré airodump-ng pour qu'il ne sélectionne que les paquets du PA.
- output*.cap permet de sélectionner tous les fichiers commençant par “output” et se terminant par “.cap”.
Si vous utilisez la version 1.0-rc1, ajouter l'option “-K” pour l'attaque FMS/KoreK. (par défaut la version 1.0-rc1 utilisé la méthode PTW).
Vous pouvez lancer aircrack-ng pendant que vous générez des paquets. Dans un délai relativement court, la clé WEP sera calculée et vous sera indiqué dans la console. Vous aurez besoin d'approximativement 250,000 VI pour des clés de 64 bits, et d'environ 1,500,000 VI pour des clés de 128 bits. Si vous utilisez la méthode PTW, vous aurez besoin d'environ 20,000 paquets pour une clé de 64 bits, et entre 45,000 et 80,000 paquets pour une clé de 128 bits. Ces chiffres sont approximatifs et peuvent varier pour de nombreuses raisons.
Ci-après, une console présentant un calcul réussi de clé WEP :
Aircrack-ng 0.9 [00:03:06] Tested 674449 keys (got 96610 IVs) KB depth byte(vote) 0 0/ 9 12( 15) F9( 15) 47( 12) F7( 12) FE( 12) 1B( 5) 77( 5) A5( 3) F6( 3) 03( 0) 1 0/ 8 34( 61) E8( 27) E0( 24) 06( 18) 3B( 16) 4E( 15) E1( 15) 2D( 13) 89( 12) E4( 12) 2 0/ 2 56( 87) A6( 63) 15( 17) 02( 15) 6B( 15) E0( 15) AB( 13) 0E( 10) 17( 10) 27( 10) 3 1/ 5 78( 43) 1A( 20) 9B( 20) 4B( 17) 4A( 16) 2B( 15) 4D( 15) 58( 15) 6A( 15) 7C( 15) KEY FOUND! [ 12:34:56:78:90 ] Probability: 100%
Notez que dans ce cas, il n'aura pas été nécessaire d'obtenir les 250,000 VI estimés pour craquer la clé (dans cet exemple, la méthode FMS/KoreK a été utilisé)
Astuces pour résolution de problèmes
- Assurez vous d'avoir lu toute la documentation du Wiki et des nombreuses commandes utilisées dans ce tutorial
- Consultez la page Tutorial: j'injecte bien des paquets mais le nombre de VI n'augmente pas
Génération de paquets ARP
Afin que ce tutorial puisse fonctionner, vous devez recevoir au moins un paquet ARP. Sur votre réseau personnel, il existe une méthode simple de générer un paquet ARP. Sur un réseau avec ou sans fil, faites un ping d'une IP non existante sur votre réseau LAN. Admettons que la plage d'adresses de votre réseau LAN soit 192.168.1.1 jusqu'à 192.168.1.254. Choisissez une IP entre 1 et 254 qui n'est assignée à aucun matériel de votre réseau. Par exemple, si l'IP 192.168.1.213 n'est pas utilisée, saissisez dans la console “ping 192.168.1.213”. Cela entraînera la diffusion d'un paquet ARP à travers votre réseau wifi, et, dans le cadre de ce tutorial, cela empêcher l'injection de nouveaux paquets si vous utilisez aireplay-ng en même temps.