GithubHelp home page GithubHelp logo

heigvd-swi-labo6-wpa-entreprise's Introduction

Sécurité des réseaux sans fil

Laboratoire 802.11 Sécurité WPA Entreprise

A faire en équipes de deux personnes

Étudiants: Stefan Dejanovic, Nathanaël Mizutani

Objectif :

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

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

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

Travail à réaliser

1. Analyse d’une authentification WPA Entreprise

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

Comparaison entre l'authentification en théorie et en pratique

En théorie l'authentification à l'aide de WPA Entreprise se passe comme suit:

Diagramme Authentification WPA Entreprise

Dans la capture on observe les échanges suivants:

Authentification WPA Entreprise dans la pcap

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.

Étapes de l'authentification WPA Entreprise

Dans la capture on a, dans l'ordre:

Requête et réponse d’authentification système ouvert

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

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é

Identification

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:

identité client

Négociation de la méthode d’authentification entreprise

Négaciation du type d'EAP

Négociation de la suite cryptographique a utiliser et échange de certificats

Client Hello

Dans son message Client Hello, le client envoie:

  • l'ID de session:

    ID session

  • Son nonce:

    Nonce client

  • Les suites cryptographiques qu'il supporte:

    Suites cryptographiques client

  • Les algorithmes de signatures qu'il supporte:

    Algorithmes de signature client

  • Les courbes elliptiques qu'il supporte:

    Courbes elliptiques client

    Par contre le client ne donne aucune méthode de compression:

    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:

Server Hello

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é.

Ouverture du tunnel TLS

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.

Échange chiffré dans un tunnel TLS

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.

Fermeture du tunnel TLS

4-way Handshake

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 : Le serveur propose la méthode d'authentification EAP-TLS au client.

PEAP


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:

PEAP proposition

Acceptation du serveur:

PEAP accepté


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:

Certificats envoyés

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


2. (Optionnel) 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 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)

Répondez aux questions suivantes :

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

Répondez aux questions suivantes :

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:

Livrables

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

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

Échéance

Le 1 juin 2020 à 23h59

heigvd-swi-labo6-wpa-entreprise's People

Contributors

natmiz avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.