Th3Tul1p3 / HEIGVD-SWI-Labo3-WPA-PMKID

Laboratoire attaque PMKID

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Sécurité des réseaux sans fil

Laboratoire WPA - PMKID

A faire en équipes de deux personnes

Développement à faire en Python 3

Pour cette partie pratique, vous devez être capable de :

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

PMKID attack

Travail à réaliser

1. Obtention de la PMKID et des paramètres pour la dérivation de la PMK

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 et Clientmac (ceci est normalement déjà fait par votre script)

2. Cracker la Passphrase utilisant l'attaque PMKID

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

3. Attaque hashcat

A manière de comparaison, réaliser l'attaque sur le fichier de capture utilisant la méthode décrite ici.

Livrables

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

Échéance

Le 06 mai 2021 à 23h59

About

Laboratoire attaque PMKID


Languages

Language:Python 100.0%