Introduction
WEP (Wired Equivalent Privacy) est un protocole de sécurité Wi-Fi obsolète et non sécurisé. L'une de ses vulnérabilités critiques peut être exploitée par l'attaque KoreK Chop-Chop. Cette attaque permet à un attaquant de déchiffrer un paquet de données WEP sans connaître la clé secrète du réseau. Elle fonctionne en devinant chaque octet du texte clair du paquet, un par un, et en utilisant les réponses du point d'accès pour valider chaque supposition.
Dans ce laboratoire, vous utiliserez la suite aircrack-ng, un ensemble d'outils puissant pour l'audit des réseaux sans fil, afin de réaliser une attaque Chop-Chop. Vous apprendrez à utiliser aireplay-ng pour cibler un paquet de données chiffré à partir d'un fichier de capture, le déchiffrer octet par octet, et comprendre comment les données résultantes peuvent être utilisées dans des attaques ultérieures.
Capture d'un paquet de données chiffré de la cible
Dans cette étape, vous commencerez par localiser le fichier de capture de paquets nécessaire. Dans un scénario réel, vous utiliseriez un outil comme airodump-ng pour surveiller un réseau en direct et capturer le trafic. Cependant, pour simplifier ce laboratoire et nous concentrer sur l'attaque elle-même, un fichier de capture pré-fait nommé chopchop-test.cap vous a été fourni dans le répertoire ~/project.
Tout d'abord, confirmez que le fichier existe dans votre répertoire actuel.
ls -l
Vous devriez voir chopchop-test.cap dans la sortie.
total 4
-rw-r--r-- 1 labex labex 124 Mar 20 10:00 chopchop-test.cap
Ensuite, inspectons ce fichier avec aircrack-ng pour confirmer qu'il contient des données d'un réseau WEP. Cette commande lit le fichier de capture et affiche un résumé des réseaux et des données qu'il contient.
aircrack-ng chopchop-test.cap
La sortie affichera le BSSID (adresse MAC) du point d'accès et indiquera qu'il utilise le chiffrement WEP.
Opening chopchop-test.cap
Read 1 packets.
## BSSID PWR Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID
1 00:13:10:36:7D:4F -32 0 1 0 6 54 WEP WEP <length: 0>
Choosing first network as target.
Cela confirme que notre fichier de capture est prêt pour l'attaque.
Lancer l'attaque Chop-Chop avec aireplay-ng -4
Dans cette étape, vous allez initier l'attaque Chop-Chop en utilisant aireplay-ng. Cet outil est utilisé pour injecter et rejouer des trames sans fil. L'attaque Chop-Chop est spécifiée avec l'option -4.
Normalement, lors d'une attaque en direct, vous spécifieriez le BSSID du point d'accès et votre interface réseau. Cependant, comme nous travaillons avec un fichier de capture, nous utiliserons l'option -r pour lire les paquets directement depuis notre fichier. aireplay-ng extraira automatiquement les informations nécessaires, comme le BSSID, du fichier.
Exécutez la commande suivante pour lancer l'attaque :
aireplay-ng -4 -r chopchop-test.cap
Après avoir exécuté la commande, aireplay-ng lira le fichier, trouvera un paquet de données approprié et vous demandera confirmation pour procéder à l'attaque.
Opening chopchop-test.cap
Read 1 packets.
Size: 88, FromDS: 1, ToDS: 0 (AP -> STA)
BSSID = 00:13:10:36:7D:4F
Dest. MAC = 00:0F:B5:AB:CB:C3
Source MAC = 00:13:10:36:7D:4F
Use this packet ? (y/n)
L'outil a identifié un paquet de données et est prêt à commencer le processus de déchiffrement. Vous continuerez à l'étape suivante.
Laisser l'attaque déchiffrer le paquet octet par octet
Dans cette étape, vous allez procéder à l'attaque et observer aireplay-ng déchiffrer le paquet. L'outil attend actuellement votre confirmation de l'étape précédente.
Tapez y et appuyez sur Entrée pour commencer le processus de déchiffrement.
y
Une fois que vous aurez confirmé, aireplay-ng lancera le cœur de l'attaque Chop-Chop. Il tentera de deviner la valeur de chaque octet des données du paquet, en commençant par le dernier octet. Dans une attaque en direct, il enverrait chaque supposition au point d'accès et analyserait la réponse pour voir si la supposition était correcte. Dans notre simulation basée sur un fichier, ce processus est émulé.
Vous verrez une sortie montrant la progression de l'attaque. Elle affichera le nombre de paquets envoyés (pour chaque supposition) et vous notifiera chaque fois qu'elle déchiffrera avec succès un octet.
Saving chosen packet in replay_src-0320-100520.cap
The interface MAC (00:00:00:00:00:00) doesn't match the selected packet BSSID (00:13:10:36:7D:4F).
Run airodump-ng on channel 6 to be sure you are on the right channel.
If airodump-ng is running and the BSSID is not in range, please try to re-run airodump-ng.
Got a deauthentication packet! (Waiting 3 seconds)
Saving chosen packet in replay_src-0320-100520.cap
Offset 34 ( 0% done) | xor = 00 | pt = 00 | 1/ 1 ACKs
...
Offset 1 (97% done) | xor = 00 | pt = 00 | 1/ 1 ACKs
Offset 0 (98% done) | xor = 00 | pt = 00 | 1/ 1 ACKs
Done.
Le processus continuera jusqu'à ce que tous les octets du paquet aient été déchiffrés. Il suffit d'attendre que le processus se termine.
Sauvegarder le paquet déchiffré et le fichier XOR PRGA
Dans cette étape, vous allez sauvegarder les résultats de l'attaque Chop-Chop réussie. Une fois que aireplay-ng aura terminé le déchiffrement du paquet entier, il vous demandera de sauvegarder les résultats.
L'outil affichera un message similaire à celui-ci :
Packet is 88 bytes, plain text is 60 bytes.
Sent 34 packets, got 34 ACKs.
Use this packet ? (y/n)
Tapez y et appuyez sur Entrée pour sauvegarder la sortie.
y
Lors de la sauvegarde, aireplay-ng crée deux fichiers importants dans votre répertoire ~/project :
- Un fichier
.cap(par exemple,replay_dec-....cap) : Ce fichier contient le paquet en texte clair maintenant déchiffré. - Un fichier
.xor(par exemple,replay_dec-....xor) : Ce fichier contient le flux de clés de l'algorithme de génération pseudo-aléatoire (PRGA - Pseudo-Random Generation Algorithm) qui a été utilisé pour chiffrer le paquet original. Ce flux de clés est le résultat le plus précieux de l'attaque.
Vérifions que ces fichiers ont été créés. Utilisez la commande ls pour lister tous les fichiers .cap et .xor dans le répertoire.
ls -l *.cap *.xor
Vous verrez le fichier de capture original, un fichier source, et les deux nouveaux fichiers replay_dec-* générés par l'attaque.
-rw-r--r-- 1 root root 124 Mar 20 10:00 chopchop-test.cap
-rw-r--r-- 1 root root 124 Mar 20 10:05 replay_dec-0320-100520.cap
-rw-r--r-- 1 root root 60 Mar 20 10:05 replay_dec-0320-100520.xor
-rw-r--r-- 1 root root 124 Mar 20 10:05 replay_src-0320-100520.cap
Comprendre le cas d'utilisation des attaques Chop-Chop
Dans cette étape, vous apprendrez l'application pratique de l'attaque Chop-Chop. Bien que nous ayons réussi à déchiffrer un paquet, l'attaque elle-même ne révèle pas la clé WEP. Son véritable pouvoir réside dans la récupération du flux de clés PRGA, qui est stocké dans le fichier .xor.
Ce flux de clés récupéré peut être utilisé avec un autre outil, packetforge-ng, pour créer de nouveaux paquets valides. Vous pouvez forger n'importe quel type de paquet (comme une requête ARP) et le chiffrer avec ce flux de clés connu. En injectant ce paquet forgé dans le réseau, vous pouvez tromper le point d'accès pour qu'il génère plus de trafic. Ce nouveau trafic fournit plus d'Initialisation Vectors (IVs) uniques, qui peuvent ensuite être utilisés dans une attaque statistique (comme l'attaque standard aircrack-ng) pour casser la clé WEP beaucoup plus rapidement.
Par conséquent, l'attaque Chop-Chop est un outil essentiel pour générer du trafic sur un réseau autrement calme, permettant des attaques de cassage de clés beaucoup plus efficaces.
Pour voir à quoi ressemble le flux de clés récupéré, vous pouvez inspecter le fichier .xor en utilisant xxd, un outil qui crée un dump hexadécimal d'un fichier. Utilisez un joker (*) pour faire correspondre le nom de fichier généré.
xxd replay_dec-*.xor
La sortie sera une représentation hexadécimale des données du flux de clés qui ont été récupérées du paquet.
00000000: 0102 0304 0506 0708 090a 0b0c 0d0e 0f10 ................
00000010: 1112 1314 1516 1718 191a 1b1c 1d1e 1f20 ...............
...
Ces données brutes sont ce que packetforge-ng utiliserait pour construire de nouveaux paquets à injecter.
Résumé
Dans ce laboratoire, vous avez réussi à effectuer une attaque KoreK Chop-Chop contre un réseau WEP simulé.
Vous avez appris à utiliser aireplay-ng avec l'option -4 pour cibler un paquet de données chiffré WEP à partir d'un fichier de capture. Vous avez observé le processus de déchiffrement octet par octet et sauvegardé avec succès les résultats. Plus important encore, vous comprenez maintenant le cas d'utilisation principal de cette attaque : il ne s'agit pas de casser directement la clé WEP, mais de récupérer une petite partie du flux de clés PRGA. Ce flux de clés est un composant essentiel pour forger de nouveaux paquets avec packetforge-ng, qui peuvent ensuite être utilisés pour stimuler le trafic sur un réseau et permettre des attaques statistiques plus rapides et plus efficaces pour récupérer la clé WEP finale. Ce laboratoire met en évidence l'une des nombreuses faiblesses fondamentales du protocole WEP.
