Sécurité des réseaux sans fil

Laboratoire 802.11 Sécurité WPA Entreprise

A faire en équipes de deux personnes

Objectif :

  1. Analyser les étapes d’une connexion WPA Entreprise avec une capture Wireshark
  2. Implémenter une attaque WPE (Wireless Pwnage Edition) contre un réseau WPA Entreprise

Quelques éléments à considérer pour les parties 2 et 3 :

Les parties 2 et 3 nécessitent du matériel particulier. Si vous avez travaillé jusqu'ici avec l'interface WiFi interne de votre laptop, il y a des fortes probabilités qu'elle puisse aussi être utilisée pour les attaques Entreprise. Cela dépendra de la capacité de votre interface d'être configurée en mode AP. Ces attaques ne fonctionnent pas avec toutes les interfaces Alfa. Il faudra utiliser le bon modèle.

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 voulez utiliser votre propre interface

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
  • Il est impératif de bien fixer le cannal lors de vos captures

Travail à réaliser

1. Analyse d’une authentification WPA Entreprise

Dans cette première partie (la moins fun du labo...), vous allez capturer une connexion WPA Entreprise au réseau de l’école avec Wireshark et fournir des captures d’écran indiquant dans chaque capture les données demandées.

A tittre d'exemple, voici une connexion WPA Entreprise qui contient tous les éléments demandés. Vous pouvez utiliser cette capture comme guide de ce que la votre doit contenir. Vous pouvez vous en servir pour votre analyse comme dernière ressource si vos captures ne donnent pas le résultat désiré ou s'il vous manquent des éléments importants dans vos tentatives de capture.

Pour réussir votre capture, vous pouvez procéder de la manière suivante :

  • Identifier l'AP le plus proche, en identifiant le canal utilisé par l’AP dont la puissance est la plus élevée (et dont le SSID est HEIG-VD...). Vous pouvez faire ceci avec airodump-ng, par exemple
  • Lancer une capture avec Wireshark
  • Etablir une connexion depuis un poste de travail (PC), un smartphone ou n'importe quel autre client WiFi. Attention, il est important que la connexion se fasse à 2.4 GHz pour pouvoir sniffer avec les interfaces Alfa
  • Comparer votre 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 (TLS?, TTLS?, PEAP?, LEAP?, autre?)
    • Phase d’initiation
    • 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 par Wireshark comme « Application data »)
    • 4-way handshake

Répondez aux questions suivantes :

Question : Quelle ou quelles méthode(s) d’authentification est/sont proposé(s) au client ?

Réponse : Dans la capture nous avons seulement une méthode proposée, EAP-PEAP.


Question: Quelle méthode d’authentification est finalement utilisée ?

Réponse: EAP-PEAP car c'est la seule proposée.


Question: Arrivez-vous à voir l’identité du client dans la phase d'initiation ? Oui ? Non ? Pourquoi ?

Réponse: Oui, le chiffrement n'a pas encore eu lieu.


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: Oui, pour s'identifier. (EAP-PEAP utilise un certificat PKI)

  • b. Le client envoie-t-il un certificat au serveur ? Pourquoi oui ou non ?

Réponse: Non, le client est déjà authentifié à l'aide son nom d'utilisateur et son mot de passe.


ATTENTION : pour l'utilisation des deux outils suivants, vous ne devez pas configurer votre interface en mode monitor. Elle sera configurée automatiquement par l'outil en mode AP.

2. Attaque WPA Entreprise (hostapd)

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 dictionnaire ou même 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. Si votre connexion ne vous propose pas d'accepter le nouveau certificat, faites une recherche pour configurer votre client pour ignorer les certificats lors de l'authentification.

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 mais si vous en trouvez une qui vous rend les choses plus faciles, vous pouvez l'utiliser et nous apprendre quelque chose ! Dans le doute, utiliser la version originale...). Lire la documentation du site de l’outil, celle de Kali ou d’autres ressources sur Internet pour comprendre son utilisation
  • Modifier la configuration de hostapd-wpe pour proposer un réseau semblable (mais pas le même !!!) 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 SSID 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, hashcat ou asleap, par exemple) pour attaquer le hash capturé (utiliser un mot de passe assez simple pour minimiser le temps)

Répondez aux questions suivantes :

Question : Quelles modifications sont nécessaires dans la configuration de hostapd-wpe pour cette attaque ?

Réponse : Il faut modifier le SSID et l'interface.


Question: Quel type de hash doit-on indiquer à john ou l'outil que vous avez employé pour craquer le handshake ?

Réponse: NETNTLM. Dans la doc il est écrit: Alternatively MSCHAPv2 credentials are outputted in john the rippers NETNTLM format.


Question: Quelles méthodes d’authentification sont supportées par hostapd-wpe ?

Réponse: Pour cite le readme: hostapd-wpe supports the following EAP types for impersonation:

  1. EAP-FAST/MSCHAPv2 (Phase 0)
  2. PEAP/MSCHAPv2
  3. EAP-TTLS/MSCHAPv2
  4. EAP-TTLS/MSCHAP
  5. EAP-TTLS/CHAP
  6. EAP-TTLS/PAP

output hostpapd mdp trouvé

3. En option, vous pouvez explorer d'autres outils comme eapeak ou crEAP pour les garder dans votre arsenal de pentester.

(Il n'y a pas de rendu pour cette partie...)

Livrables

Un fork du repo original . Puis, un Pull Request contenant :

  • Captures d’écran + commentaires
  • Réponses aux questions

Échéance

Le 1 juin 2023 à 23h59