Evil Twin EAP-TLS

Tip

Leer en oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Leer en oefen Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Ondersteun HackTricks

EAP-TLS is die algemene “secure” keuse vir WPA2/3-Enterprise, maar twee praktiese swakpunte verskyn gereeld tydens beoordelings:

  • Unauthenticated identity leakage: die outer EAP-Response/Identity word in cleartext gestuur voordat enige TLS-tunnel gevestig is, sodat werklike domeingebruikersname dikwels oor die lug leak.
  • Broken client server-validation: as die supplicant nie streng die RADIUS server sertifikaat verifieer nie (of gebruikers toelaat om deur waarskuwings te klik), kan ’n rogue AP met ’n self-signed cert steeds slagoffers onboard – en draai mutual TLS in one-way TLS.

Unauthenticated EAP identity leakage / username enumeration

EAP dryf ’n identiteitsuitruiling voor TLS begin. As die kliënt die werklike domeingebruikersnaam as sy outer identity gebruik, kan enigiemand in RF-bereik dit oes sonder om te autentiseer.

Passiewe oes-werkvloei

# 1) Park on the right channel/BSSID
airodump-ng -i $IFACE -c $CHAN --bssid $BSSID

# 2) Decode EAP frames and extract identities
# Trigger a client connection (e.g., your phone) to see the leak
tshark -i "$IFACE" -Y eap -V | grep "Identity: *[a-z]\|*[A-Z]\|*[0-9]"

Impact: vinnige, geen-verifikasie versameling van gebruikersname → voed password spraying, phishing, rekeningkorrelasie. Erger wanneer gebruikersname ooreenstem met e-posadresse.

TLS 1.3 privaatheid vs terugskaling-speletjies

TLS 1.3 enkripteer client certs en meeste handshake-metadata, so wanneer ’n supplicant werklik TLS 1.3 onderhandel, kan ’n Evil Twin nie passief die client sertifikaat/identiteit leer nie. Baie enterprise stacks laat steeds TLS 1.2 toe vir versoenbaarheid; RFC 9190 waarsku dat ’n rogue AP slegs TLS 1.2 static-RSA suites kan aanbied om ’n fallback te forceer en die outer identity (of selfs die client cert) weer in helder teks EAP-TLS bloot te stel.

Offensive playbook (terugskaling om ID te leak):

  • Kompileer hostapd-wpe met slegs TLS 1.2 static RSA ciphers ingeskakel en TLS 1.3 gedeaktiveer in openssl_ciphersuite / ssl_ctx_flags.
  • Adverteer die corporate SSID; wanneer die slagoffer TLS 1.3 begin, reageer met ’n TLS alert en herbegin die handshake sodat die peer weer probeer met TLS 1.2, en sy werklike identiteit blootstel voordat sertifikaatverifikasie slaag.
  • Kombineer dit met force_authorized=1 in hostapd-wpe sodat die 4-way handshake voltooi word selfs al misluk client-auth, wat jou DHCP/DNS-vlak verkeer gee om te phish of ’n portal te gebruik.

Defensive toggle (waarop om te let tydens ’n assessering):

  • hostapd/wpa_supplicant 2.10 het EAP-TLS server en peer-ondersteuning vir TLS 1.3 bygevoeg, maar dit word per verstek gedeaktiveer; dit op kliënte aktiveer met phase1="tls_disable_tlsv1_3=0" verwyder die terugskaling-venster.

TLS 1.3 realiteite in 2024–2025

  • FreeRADIUS 3.0.23+ aanvaar EAP-TLS 1.3, maar kliënte breek steeds (Windows 11 het geen EAP-TLS 1.3 sessie-herstél nie, Android-ondersteuning wissel), so baie implementasies pin tls_max_version = "1.2" vir stabiliteit.
  • Windows 11 skakel EAP-TLS 1.3 standaard aan (22H2+), maar mislukte resumptions en onbetroubare RADIUS-stakke dwing dikwels ’n fallback na TLS 1.2 af.
  • RSA sleuteluitruiling vir TLS 1.2 word uitgefaseer; OpenSSL 3.x verwyder static-RSA suites by sekuriteitsvlak ≥2, so ’n TLS 1.2 static-RSA rogue benodig OpenSSL 1.1.1 met @SECLEVEL=0 of ouer.

Praktiese weergawesturing tydens ’n engagement

  • Force TLS 1.2 on the rogue (to leak identities):
# hostapd-wpe.conf
ssl_ctx_flags=0
openssl_ciphers=RSA+AES:@SECLEVEL=0   # requires OpenSSL 1.1.1
disable_tlsv1_3=1
  • Probe client TLS intolerance: run two rogues – one advertising TLS 1.3-only (disable_tlsv1=1, disable_tlsv1_1=1, disable_tlsv1_2=1) and one TLS 1.2-only. Clients that only join the 1.2 BSS are terugskaleerbaar.
  • Watch for fallback in captures: filter in Wireshark for tls.handshake.version==0x0303 after an initial ClientHello with supported_versions containing 0x0304; victims that retry 0x0303 are leaking their outer ID again.

Evil Twin via broken server validation (“mTLS?”)

Rogue APs broadcasting the corporate SSID can present any certificate. If the client:

  • doesn’t validate the server cert, or
  • prompts the user and allows override of untrusted CAs/self-signed certs, then EAP-TLS stops being mutual. A modified hostapd/hostapd-wpe that skips client-cert validation (e.g., SSL_set_verify(..., 0)) is enough to stand up the Evil Twin.

Rogue infra quick note

On recent Kali, compile hostapd-wpe using hostapd-2.6 (from https://w1.fi/releases/) and install the legacy OpenSSL headers first:

apt-get install libssl1.0-dev
# patch hostapd-wpe to set verify_peer=0 in SSL_set_verify to accept any client cert

Windows supplicant misconfig valstrikke (GUI/GPO)

Belangrike instellings in die Windows EAP-TLS profiel:

  • Verifieer die identiteit van die bediener deur die sertifikaat te valideer
  • Aangevink → sertifikaatketting moet vertrou wees; nie-aangevink → enige self-signed cert word aanvaar.
  • Verbind met hierdie servers
  • Leeg → enige cert van ’n vertroude CA word aanvaar; stel CN/SAN-lijst om verwagte RADIUS name te pin.
  • Moet die gebruiker nie vra om nuwe servers of vertroude sertifikaatautoriteite te magtig nie
  • Aangevink → gebruikers kan nie deurkliek nie; nie-aangevink → gebruiker kan ’n nie-vertroude CA/cert vertrou en by die rogue AP aansluit.

Waargenome uitkomste:

  • Streng validering + geen opdragte → rogue cert verwerp; Windows registreer ’n gebeurtenis en TLS misluk (goeie opsporingssein).
  • Validering + gebruikersprompt → gebruiker se aanvaarding = suksesvolle Evil Twin-assosiasie.
  • Geen validering → stille Evil Twin-assosiasie met enige cert.

References

Tip

Leer en oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Leer en oefen Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Ondersteun HackTricks