A faire en équipes de deux personnes
Développement à faire en Python 3
- A partir d’une capture Wireshark, extraire la valeur de la PMKID utilisant Scapy
- Ecrire un script Python pour Cracker la passphrase WPA utilisant la PMKID
Pour l'explication de l'attaque, référez vous à la video suivante :
Dans cette première partie, vous allez réutiliser le script de dérivation de clés que vous avez rendu pour le labo WPA. Il vous faudra également le fichier de capture PMKID_handshake.pcap contenant une tentative d’authentification WPA pas réussie réalisée par un attaquant.
La PMKID est contenue dans le premier message du 4-way handshake de certains AP. Les AP de l'opérateur Sunrise en Suisse, par exemple, sont confirmés comme étant vulnérables. Il s'agit donc d'un AP de Sunrise qui a été utilisé pour faire la capture.
Voici ce que vous devez faire pour cette première partie :
- Modifier votre script WPA pour qu’il récupère automatiquement, à partir de la capture, la valeur de la PMKID
- Vous aurez aussi besoin de récupérer les valeurs du
ssid
,APmac
etClientmac
(ceci est normalement déjà fait par votre script)
L'attaque PMKID est une attaque par dictionnaire qui calcule systématiquement une PMK à partir de la passphrase. Cette PMK est utilisée comme clé pour SHA-1 calculé sur une concatenation du string "PMK Name" et les adresses MAC de l'AP et la STA. Les premiers 128 bits (6 octets) du résultat de ce calcul doivent correspondre à la valeur de la PMKID obtenue à partir du premier message du 4-way handshake.
Utilisant votre script précédent, le modifier pour réaliser les taches suivantes :
- Lire une passphrase à partir d’un fichier (wordlist) → La passphrase utilisée dans la capture est
admin123
- Dériver la PMK à partir de la passphrase que vous venez de lire et des autres éléments nécessaires contenus dans la capture (cf exercice 1)
- Calculer la PMKID (cf vidéo YouTube)
- Comparer la PMKID calculée avec celle récupérée de la capture :
- Identiques → La passphrase utilisée est correcte
- Différents → Essayer avec une nouvelle passphrase
A manière de comparaison, réaliser l'attaque sur le fichier de capture utilisant la méthode décrite ici.
Un fork du repo original . Puis, un Pull Request contenant vos noms et :
- Script
pmkid_attack.py
abondamment commenté/documenté + fichier wordlist- Capture d’écran de votre script en action
- Captures d'écran de votre exercice 3
- Envoyer le hash du commit et votre username GitHub et les noms des participants par email au professeur et à l'assistant
Le 06 mai 2021 à 23h59