A faire en équipes de deux personnes
Étudiants: Stefan Dejanovic, Nathanaël Mizutani
- Analyser les étapes d’une connexion WPA Entreprise avec une capture Wireshark
- (optionnel) Implémenter une attaque WPE (Wireless Pwnage Edition) contre un réseau WPA Entreprise
- (optionnel) Implémenter une attaque GTC Dowgrade contre un réseau WPA Entreprise
Les parties 2 et 3 sont optionnelles puisque vous ne disposez pas forcement du matériel nécessaire pour les réaliser.
En principe, il devrait être possible de démarrer vos machines en Kali natif (à partir d'une clé USB, avec une distro live par exemple) ou d'employer une autre version de Linux. Si vous n'avez pas une interface WiFi USB externe, vous ne pouvez pas faire ces parties dans une VM Linux.
Dans le cas où vous arriverais à tout faire pour démarrer un Linux natif, il existe toujours la possibilité que votre interface WiFi ne puisse pas être configurée en mode AP, ce qui à nouveau empêche le déroulement des parties 2 e 3.
Ces deux parties sont vraiment intéressantes et je vous encourage à essayer de les faire, si vous avez les ressources. Malheureusement je ne peux pas vous proposer un bonus si vous les faites, puisqu'il risque d'y avoir des personnes qui n'auront pas la possibilité de les réaliser pour les raisons déjà expliquées.
Si toutes les équipes rendent le labo complet, il sera donc corrigé entièrement et les parties 2 et 3 seront considérées pour la note.
Si vous vous lancez dans ces deux parties, voici quelques informations qui peuvent vous aider :
- Solution à l’erreur éventuelle «
Could not configure driver mode
» :
nmcli radio wifi off
rfkill unblock wlan
- Pour pouvoir capturer une authentification complète, il faut se déconnecter d’un réseau et attendre 1 minute (timeout pour que l’AP « oublie » le client)
- Les échanges d’authentification entreprise peuvent être facilement trouvés utilisant le filtre d’affichage «
eap
» dans Wireshark
Dans cette première partie, vous allez analyser une connexion WPA Entreprise avec Wireshark et fournir des captures d’écran indiquant dans chaque capture les données demandées.
- Comparer la capture au processus d’authentification donné en théorie (n’oubliez pas les captures d'écran pour illustrer vos comparaisons !). En particulier, identifier les étapes suivantes :
- Requête et réponse d’authentification système ouvert
- Requête et réponse d’association (ou reassociation)
- Négociation de la méthode d’authentification entreprise
- Phase d’initiation. Arrivez-vous à voir l’identité du client ?
- Phase hello :
- Version TLS
- Suites cryptographiques et méthodes de compression proposées par le client et acceptées par l’AP
- Nonces
- Session ID
- Phase de transmission de certificats
- Echanges des certificats
- Change cipher spec
- Authentification interne et transmission de la clé WPA (échange chiffré, vu comme « Application data »)
- 4-way handshake
En théorie l'authentification à l'aide de WPA Entreprise se passe comme suit:
Dans la capture on observe les échanges suivants:
En appliquant le filtre ((wlan.da == dc:a5:f4:60:bf:50) && (wlan.sa == 30:74:96:70:df:32)) || ((wlan.sa == dc:a5:f4:60:bf:50) && (wlan.da == 30:74:96:70:df:32))
, on isole l'authentification WPA Entreprise entre la station Huawei et l'AP Cisco.
Dans la capture on a, dans l'ordre:
Requête et réponse d’authentification système ouvert
On peut voir dans la capture ci-dessus une authentification Système Ouvert.
Requête et réponse de réassociation
On voit ici une demande de réassociation de HuaweiTe_70:df:32
vers Cisco_60:bf:50
.
Demande d'identité
On constate qu'une fois la demande de réassociation acceptée le serveur demande au client de s'identifier. On peut d'ailleurs voir l'identité du client dans sa réponse:
Négociation de la méthode d’authentification entreprise
Négociation de la suite cryptographique a utiliser et échange de certificats
Dans son message Client Hello
, le client envoie:
-
l'ID de session:
-
Son nonce:
-
Les suites cryptographiques qu'il supporte:
-
Les algorithmes de signatures qu'il supporte:
-
Les courbes elliptiques qu'il supporte:
Par contre le client ne donne aucune méthode de compression:
Le serveur fournit ses certificats au client avec son message Serveur Hello
. Il indique aussi la suite cryptographique sélectionnée, son nonce, la méthode de compression et l'id de session:
Ouverture du tunnel TLS
Le message Change Cipher Spec
indique le passage à une communication chiffrée à l'aide de l'algorithme précédemment négocié.
Authentification interne, Dérivation de la clef WPA, Transfert de la clef
La communication étant chiffrée, Wireshark ne peut pas en lire le contenu.
Confirmation de conformité et de fin d'authentification
Le message Success
indique que l'authentification, ainsi que la dérivation et le transfert de la clef se sont bien passés.
4-way Handshake
Question : Quelle ou quelles méthode(s) d’authentification est/sont proposé(s) au client ?
Réponse : Le serveur propose la méthode d'authentification EAP-TLS au client.
Question: Quelle méthode d’authentification est finalement utilisée ?
Réponse: La méthode EAP-PEAP est finalement utilisée. Il s'agit de celle proposée par le client.
Proposition du client:
Acceptation du serveur:
Question: Lors de l’échange de certificats entre le serveur d’authentification et le client :
- a. Le serveur envoie-t-il un certificat au client ? Pourquoi oui ou non ?
Réponse: Le serveur envoie plusieurs certificats au client, ainsi que sa clef publique. Cela permet au client de l'authentifier.
Les certificats envoyés par le serveur:
- b. Le client envoie-t-il un certificat au serveur ? Pourquoi oui ou non ?
Réponse: Le client n'envoie pas de certificat au serveur car la méthode d'authentification utilisée est EAP-PEAP. Le client n'envoie de certificats que dans le cas où EAP-TLS est utilisé.
Avec EAP-PEAP, le client s'authentifie durant la phase d'authentification interne.
Les réseaux utilisant une authentification WPA Entreprise sont considérés aujourd’hui comme étant très surs. En effet, puisque la Master Key utilisée pour la dérivation des clés WPA est générée de manière aléatoire dans le processus d’authentification, les attaques par dictionnaire ou brute-force utilisés sur WPA Personnel ne sont plus applicables.
Il existe pourtant d’autres moyens pour attaquer les réseaux Entreprise, se basant sur une mauvaise configuration d’un client WiFi. En effet, on peut proposer un « evil twin » à la victime pour l’attirer à se connecter à un faux réseau qui nous permette de capturer le processus d’authentification interne. Une attaque par brute-force peut être faite sur cette capture, beaucoup plus vulnérable d’être craquée qu’une clé WPA à 256 bits, car elle est effectuée sur le compte d’un utilisateur.
Pour faire fonctionner cette attaque, il est impératif que la victime soit configurée pour ignorer les problèmes de certificats ou que l’utilisateur accepte un nouveau certificat lors d’une connexion.
Pour implémenter l’attaque :
- Installer
hostapd-wpe
(il existe des versions modifiées qui peuvent peut-être faciliter la tâche... je ne les connais pas. Dans le doute, utiliser la version originale). Lire la documentation du site de l’outil ou d’autres ressources sur Internet pour comprendre son utilisation - Modifier la configuration de
hostapd-wpe
pour proposer un réseau semblable au réseau de l’école ou le réseau de votre préférence, sachant que dans le cas d'une attaque réelle, il faudrait utiliser le vrai SSI du réseau de la cible - Lancer une capture Wireshark
- Tenter une connexion au réseau (ne pas utiliser vos identifiants réels)
- Utiliser un outil de brute-force (
john
, par exemple) pour attaquer le hash capturé (utiliser un mot de passe assez simple pour minimiser le temps)
Question : Quelles modifications sont nécessaires dans la configuration de hostapd-wpe pour cette attaque ?
Réponse :
Question: Quel type de hash doit-on indiquer à john pour craquer le handshake ?
Réponse:
Question: Quelles méthodes d’authentification sont supportées par hostapd-wpe ?
Réponse:
3. (Optionnel) GTC Downgrade Attack avec EAPHammer
EAPHammer est un outil de nouvelle génération pour les attaques WPA Entreprise. Il peut en particulier faire une attaque de downgrade GTC, pour tenter de capturer les identifiants du client en clair, ce qui évite le besoin de l'attaque par dictionnaire.
- Installer
EAPHammer
. Lire la documentation du site de l’outil ou d’autres ressources sur Internet pour comprendre son utilisation - Modifier la configuration de
EAPHammer
pour proposer un réseau semblable au réseau de l’école ou le réseau de votre préférence. Le but est de réaliser une GTC Downgrade Attack. - Lancer une capture Wireshark
- Tenter une connexion au réseau
Question : Expliquez en quelques mots l'attaque GTC Downgrade
Réponse :
Question: Quelles sont vos conclusions et réflexions par rapport à la méthode hostapd-wpe ?
Réponse:
Un fork du repo original . Puis, un Pull Request contenant :
- Captures d’écran + commentaires
- Réponses aux questions
Le 1 juin 2020 à 23h59