Ir ao contido

Auditar contrasinal Wi-Fi WPA2-EAP con Wifite

LIMITACIÓN DE RESPONSABILIDADE

O autor do presente documento declina calquera responsabilidade asociada ao uso incorrecto e/ou malicioso que puidese realizarse coa información exposta no mesmo. Este documento foi xerado para uso didáctico e debe ser empregado en contornas privadas e virtuais controladas co permiso correspondente do administrador desas contornas.
O uso de Wifite ou calquera outra ferramenta de auditoría en redes Wi-Fi sen autorización expresa é ILEGAL.

1. Resumo

Esta práctica introduce WPA2-EAP (Enterprise), un sistema de autenticación baseado en servidor RADIUS que se emprega en contornas empresariais.
Verificaremos que Wifite NON pode auditar WPA2-EAP: wifite detecta automaticamente o tipo de cifrado WPA-E e salta o obxectivo sen nin sequera intentar o ataque, xa que é consciente de que este protocolo non é crackeable mediante os seus métodos.

Obxectivos de aprendizaxe:
- Configurar un escenario WPA2-EAP con FreeRADIUS + hostapd
- Comprender a diferenza entre autenticación PSK e EAP
- Verificar que wifite identifica e descarta automaticamente obxectivos WPA-Enterprise
- Comprender o fluxo de autenticación 802.1X/EAP/PEAP
- Identificar as limitacións de Wifite en contornas empresariais


2. Material necesario

Hardware/Software:
- Host alumnado · Máquina virtual GNU/Linux Kali amd64
- RAM ≥ 2048 MB · CPU ≥ 2 cores · PAE/NX habilitado

Ferramentas (xa instaladas en Kali):
wifite, hostapd, freeradius, wpa_supplicant, mac80211_hwsim, aircrack-ng, tshark

Referencias:
- [0] 2-Taller-HE-Practica-WiFi-1.pdf
- [1] FreeRADIUS documentation
- [2] IEEE 802.1X-2010
- [3] RFC 4017 - EAP para WLANs


3. Escenario e topoloxía

Rol Interface Namespace IP Estado tras wifilabctl up
AP WPA2-EAP (bridge br-radius) wlan0 wifi_ap_wlan0 192.168.50.10 ✅ Automático (hostapd wpa-eap-corp.conf)
FreeRADIUS (namespace principal) 192.168.50.1 ✅ Automático (bridge br-radius)
Cliente EAP (sen ca_cert) wlan1 wifi_cliente_wlan1 (DHCP dnsmasq) ✅ Automático (wpa_supplicant)
MITM preparado wlan2 mitm_wlan2 192.168.50.100 ⏳ NS listo, sen servizos (Práctica 2-3)
Monitor / Atacante (Wifite) wlan3 (global) ⏳ Interface libre

SSID: EMPRESA-XYZ · Usuario EAP: ana · Contrasinal: 1234 · Canal: 6
RADIUS: 192.168.50.1:1812 · secret: testing123

[wlan1: Cliente PEAP]  ----wireless----> [wlan0: AP WPA2-EAP]
                                               |
                                         [br-radius]
                                               |
                                      [FreeRADIUS :1812]
                                      (namespace principal)
                                               ^
                                      [wlan3mon: Wifite]
                                      (captura handshake → NON crackeable)

💡 wifilabctl up eap_mitm levanta automaticamente AP, FreeRADIUS e cliente. As terminais son para o ataque con Wifite e a análise posterior, non para configuración manual.


4. Procedemento

Resumo de terminais:

Terminal Rol
1 Arrancar o escenario e monitorizar logs
2 Executar Wifite e observar o rexeitamento automático de WPA-E
3 Análise de tráfico EAP con tshark (opcional)

Terminal 1 — Arrancar o escenario

# Arrancar o escenario WPA2-EAP con RADIUS
sudo wifilabctl up eap_mitm

# Verificar que AP, RADIUS e cliente están activos
sudo wifilabctl status

Saída esperada:

[*] Informe de Estado do Laboratorio
============================================================
NAMESPACE                 INTERFACE       IP                   ESTADO
---------------------------------------------------------------------------
wifi_cliente_wlan1        wlan1           -                    UP
wifi_ap_wlan0             wlan0           192.168.50.10/24     UP
mitm_wlan2                wlan2           192.168.50.100/24    UP
---------------------------------------------------------------------------
Interfaces GLOBAIS / ATACANTE:
(global)                  wlan3           (host/monitor)       LISTO

⚠️ FreeRADIUS executa no namespace principal (non illado), escoitando en 192.168.50.1:1812 a través do bridge br-radius. Os valores de BSSID e MAC obtéñense con sudo wifilabctl status.

Opcionalmente, abrir os logs en tempo real para observar a autenticación PEAP:

# Logs en tempo real (deixar abertos durante o ataque)
sudo wifilabctl logs eap_mitm
# ou directamente:
tail -f /home/kali/wifiLab/run/eap_mitm/freeradius.log
tail -f /home/kali/wifiLab/run/eap_mitm/hostapd_ok.log
tail -f /home/kali/wifiLab/run/eap_mitm/wpa_supplicant.log

Terminal 2 — Ataque con Wifite e demostración do rexeitamento automático

Abrir unha segunda terminal e seguir os pasos:

Paso 1: Preparar o entorno

sudo su -

# Descomprimir wordlist
gunzip -kf /usr/share/wordlists/rockyou.txt.gz

Paso 2: Lanzar Wifite

wifite --no-wps --dict /usr/share/wordlists/rockyou.txt

Paso 3: Avisos de procesos en conflito — non matar

 [!] Conflicting processes: NetworkManager (PID 689), wpa_supplicant (PID 6303),
     hostapd (PID 6609), wpa_supplicant (PID 6676), dhclient (PID 6704)
 [!] If you have problems: kill -9 PID or re-run wifite with --kill

⚠️ Non matar eses procesos. Son o AP e o cliente do escenario. Ignorar e continuar.

Paso 4: Wifite activa o modo monitor automaticamente

Con mac80211_hwsim, Wifite detecta a interface dispoñible e activa o modo monitor sen intervención:

    Interface   PHY   Driver              Chipset
-----------------------------------------------------------------------
 1. wlan3       phy3  ??????              non-mac80211 device? (report this!)
 [+] Enabling monitor mode on wlan3... enabled!

💡 Wifite usa wlan3 directamente xa que é a única interface non asignada a un namespace illado. Non é necesario seleccionar manualmente.

Paso 5: Escaneo — WPA2-EAP aparece claramente como WPA-E

Wifite escaneará en modo monitor. WPA2-EAP identifícase de forma inequívoca como WPA-E, diferenciándose de WPA2 (PSK):

   NUM                      ESSID   CH  ENCR    PWR    WPS  CLIENT
   ---  -------------------------  ---  -----   ----   ---  ------
     1               EMPRESA-XYZ     6  WPA-E   72db    no

Premer Ctrl+C cando apareza EMPRESA-XYZ. Introducir 1 e premer Enter.

💡 Wifite si distingue WPA2-PSK de WPA2-EAP no escaneo: amosa WPA2 para PSK e WPA-E para Enterprise.

Paso 6: Wifite descarta o obxectivo sen intentar ningún ataque (resultado esperado)

Ao seleccionar o obxectivo, Wifite non captura handshake, non lanza aircrack-ng, nin aplica wordlist. Descarta o obxectivo de inmediato:

 [+] (1/1) Starting attacks against A2:94:69:2E:1F:47 (EMPRESA-XYZ)
 [!] Skipping. Target is using WPA-Enterprise and can not be cracked.
 [+] Finished attacking 1 target(s), exiting
 [!] Note: Leaving interface in Monitor Mode!
 [!] To disable Monitor Mode when finished: airmon-ng stop wlan3mon

⚠️ RESULTADO ESPERADO: Skipping. Target is using WPA-Enterprise and can not be cracked.

Wifite recoñece que WPA-Enterprise está completamente fóra das súas capacidades e remata sen realizar ningunha acción ofensiva.


5. Limitacións de Wifite con WPA2-EAP

Wifite NON pode auditar WPA2-EAP: identifica WPA-E no escaneo e descarta o obxectivo de inmediato con Skipping. Target is using WPA-Enterprise and can not be cracked. Sen capturar handshake nin lanzar ningún ataque.

wifite --help | grep -i "evil\|twin\|eap\|hostapd\|radius\|mitm\|mana\|proxy\|forward"
# (sen saída correspondente — Wifite NON soporta este tipo de ataque)

# Conclusión: Wifite NON soporta ataques Evil Twin, EAP nin hostapd, nin MITM.

⚠️ IMPORTANTE: Wifite está deseñado para auditoría pasiva (captura de handshakes), NON para ataques activos (Evil Twin, MITM, proxy RADIUS).

A única forma de capturar credenciais WPA2-EAP é mediante un Evil Twin (AP falso) que:
1. Suplante ao AP lexítimo (mesmo SSID)
2. Configure un servidor RADIUS falso (hostapd-wpe)
3. Aproveite que o cliente non valide o certificado do servidor (ca_cert comentado)
4. Capture o hash MSCHAPv2 durante a autenticación PEAP
5. Crackee o hash con hashcat ou jtr

⚠️ Este escenario está cuberto na Práctica 2 EAP EVIL TWIN.


6. Preguntas de reflexión

  1. Por que WPA2-EAP é máis seguro que WPA2-PSK?

    • Autenticación centralizada: cada usuario ten credenciais únicas
    • Rotación de credenciais: pódense revocar usuarios sen cambiar o contrasinal da rede
    • Auditoría: FreeRADIUS rexistra quen se conecta e cando
    • Sen handshake crackeable: o contrasinal non se deriva do tráfico capturado
  2. Que diferenza hai entre WPA2-PSK e WPA2-EAP na derivación de claves?

    • PSK: contrasinal compartido → PBKDF2 → PMK (crackeable offline)
    • EAP: credenciais individuais → servidor RADIUS → MSK → PMK (non crackeable sen RADIUS)
  3. Wifite pode auditar WPA2-EAP en algún escenario?

    • NON. Wifite detecta WPA-E e salta o obxectivo automaticamente sen realizar ningún ataque
    • Non ten capacidades de Evil Twin nin servidor RADIUS falso
    • Precisaríanse ferramentas especializadas como hostapd-wpe (ver Práctica 2-2)
  4. Que vulnerabilidades ten WPA2-EAP?

    • Cliente sen validación de certificado (ca_cert comentado) → susceptible a Evil Twin
    • MSCHAPv2 débil: se se captura o hash (con Evil Twin), pódese crackear con hashcat
    • Servidor RADIUS mal configurado: certificados caducados, secrets débiles
  5. Como mellorar a seguridade de WPA2-EAP?

    • Obrigar validación de certificado no cliente (ca_cert configurado correctamente)
    • Usar EAP-TLS en lugar de PEAP/MSCHAPv2 (autenticación con certificados cliente)
    • Implementar 802.1X con NAC (Network Access Control)
    • Rotar certificados RADIUS periodicamente
  6. É posible un ataque Man-in-the-Middle contra WPA2-EAP?

    • SI, se o cliente non valida o certificado do servidor (ver Práctica 2-3)
    • NON, se o cliente ten ca_cert correctamente configurado

7. Limpeza do laboratorio

Terminal 1:

# Deter e eliminar o escenario completamente
sudo wifilabctl reset

# Verificar que non quedan namespaces
ip netns list

Terminal 2 (se wlan3 quedou en modo monitor):

airmon-ng stop wlan3mon