WIFI Pwnagotchi

De Wiki Campus Cyber
Aller à :navigation, rechercher

Descriptif du use case[modifier | modifier le wikicode]

Détection de vulnérabilités wifi par apprentissage par renforcement.

Objectif[modifier | modifier le wikicode]

Détecter et craquer des réseaux wifi vulnérables.

Pwnagotchi s’appuie sur un modèle A2C (Advantage-Actor-Critic) d’apprentissage par renfor-cement qui apprend de son environnement WiFi environnant afin de maximiser le taux de clés WPA craquables qu'il capture (soit en reniflant de manière passive, soit en effectuant des attaques de désauthentification et d'association). Les paquets sont collectés sur disque sous forme de fichiers PCAP contenant toute forme de poignée de main craquable prise en charge par hashcat, y compris les poignées de main WPA complètes et partielles ainsi que PMKID.

Approche[modifier | modifier le wikicode]

Poignées de mains WIFI 101

Afin de comprendre pourquoi il est utile d'avoir une IA qui veut manger des poignées de main, il est utile de comprendre un peu comment les poignées de main sont utilisées dans le protocole sans fil WPA/WPA2.

Avant qu'un appareil client se connectant à un point d'accès sans fil (par exemple, un téléphone se connectant à son réseau Wi-Fi domestique) puisse transmettre et recevoir des données en toute sécurité à partir de ce point d'accès, un processus appelé « 4-Way Handshake » doit s’exécuter pour que les clés de chiffrement WPA soient générées.

Ce processus consiste en l'échange de quatre paquets (d'où le « 4 » dans « 4-Way ») entre l'appareil client et l'AP ; ceux-ci sont utilisés pour dériver les clés de session du mot de passe WiFi du point d'accès. Une fois que les paquets ont été échangés avec succès et que les clés sont générées, le périphérique client est authentifié et peut commencer à envoyer et recevoir des paquets de données (maintenant sécurisés par cryptage) vers et depuis le point d'accès sans fil.

Usecase9.png
4-way handshake (https://www.wifi-professionals.com/2019/01/4-way-handshake)


Quel est le mécanisme exploité ?[modifier | modifier le wikicode]

Ces quatre paquets peuvent facilement être « reniflés » par un attaquant qui surveille à proximité avec un Pwnagotchi. Une fois enregistré, cet attaquant peut utiliser des attaques par dictionnaire et/ou par force brute pour casser les poignées de main et récupérer la clé WiFi d'origine. En fait, une récupération réussie de la clé WiFi ne nécessite même pas nécessairement les quatre paquets ! Une demi-poignée de main (contenant seulement deux des quatre paquets) peut aussi être craquée—et dans certains (la plupart) des cas, juste un seul paquet suffit, même sans client.

Afin de collecter autant de ces paquets de poignée de main crackables que possible, Pwnagotchi utilise deux stratégies :

  1. Désauthentification des postes clients qu'il détecte. Un appareil désauthentifié doit se réauthentifier auprès de son point d'accès en effectuant à nouveau la prise de contact à 4 voies avec le point d'accès, donnant ainsi à Pwnagotchi une autre chance de renifler les paquets de prise de contact et de collecter plus de matériel craquable.
  2. Envoi de trames d'association directement aux points d'accès eux-mêmes pour tenter de les forcer à fuite du PMKID.

Statut[modifier | modifier le wikicode]

Pwnagotchi est Déployé / POC / Recherche / Idéation / Prospective

Pourrait être déployé sur le campus.

Données[modifier | modifier le wikicode]

Paquets Wifi, clés wifi

Catégories d'algorithmes utilisés[modifier | modifier le wikicode]

RL (Reinforcement Learning)

Besoin en temps de calcul[modifier | modifier le wikicode]

Contrairement aux simulations d'apprentissage par renforcement habituelles, Pwnagotchi apprend en fait à une échelle de temps humaine car il interagit avec un environnement réel au lieu d'un environnement virtuel bien défini. Le temps pour un Pwnagotchi est mesuré en époques ; une seule époque peut durer de quelques secondes à plusieurs minutes, selon le nombre de points d'accès et de postes clients visibles. Au début de son utilisation, les performances de Pwnagotchi ne sont pas optimales. Le système va explorer plusieurs combinaisons de paramètres clés pour déterminer les ajustements idéaux pour analyser l'environnement particulier auquel il est exposé par le porteur. Il faut écouter Pwnagotchi quand il annonce qu'il s'ennuie. Il faut alors l’emmener dans de nouveaux environnements WiFi et lui faire observer de nouveaux réseaux et capturer de nouvelles poignées de main. 7. Cloud ou On Premise Matériel mobile requis pour installer Pwnagotchi :

  • Un Raspberry Pi Zero W
  • Une carte Micro SD(8 Go minimum recommandés, de préférence de bonne qualité et vitesse.
  • Un cordon micro-USB de bonne qualité qui permet le transfert de données (pas seulement le chargement !)
  • Une banque d'alimentation portable

Autres logiciels nécessaires : ETL, qualité, sécurité, crypto, anonymisation[modifier | modifier le wikicode]

Mitre Att@ck[modifier | modifier le wikicode]

WiFi pwn, wifi vulnerability detection

Mitre Defend[modifier | modifier le wikicode]

WiFi pwn, wifi vulnerability detection

Cyber Kill Chain[modifier | modifier le wikicode]