Evil Twin EAP-TLS
Tip
Učite i vežbajte AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Učite i vežbajte Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
EAP-TLS je uobičajen “sigurni” izbor za WPA2/3-Enterprise, ali dve praktične slabosti se redovno pojavljuju tokom procena:
- Unauthenticated identity leakage: spoljni EAP-Response/Identity se šalje u cleartextu pre nego što se uspostavi bilo koji TLS tunel, pa stvarna korisnička imena domena često leak preko vazduha.
- Broken client server-validation: ako supplicant ne proverava striktno RADIUS server certificate (ili dozvoli korisnicima da kliknu kroz upozorenja), rogue AP sa self-signed cert-om i dalje može onboard-ovati žrtve – pretvarajući mutual TLS u one-way TLS.
Unauthenticated EAP identity leakage / enumeracija korisničkih imena
Passive harvest workflow
# 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: brzo prikupljanje korisničkih imena bez autentifikacije → pogoni password spraying, phishing, korelaciju naloga. Još gore kada korisnička imena odgovaraju email adresama.
TLS 1.3 privatnost vs downgrade igre
TLS 1.3 šifruje client certs i većinu handshake metadata, pa kada supplicant zaista pregovara TLS 1.3, Evil Twin ne može pasivno saznati client certificate/identitet. Mnogi enterprise stackovi i dalje dozvoljavaju TLS 1.2 radi kompatibilnosti; RFC 9190 upozorava da rogue AP može ponuditi samo TLS 1.2 static-RSA suite-ove da bi naterao fallback i ponovo izložio outer identity (ili čak client cert) u nešifrovanom EAP-TLS.
Ofenzivni playbook (downgrade to leak ID):
- Kompajlirajte hostapd-wpe sa uključenim samo TLS 1.2 static RSA šiframa i TLS 1.3 onemogućenim u
openssl_ciphersuite/ssl_ctx_flags. - Reklamirajte corporate SSID; kada žrtva inicira TLS 1.3, odgovorite TLS alert-om i restartujte handshake tako da peer pokuša ponovo sa TLS 1.2, otkrivajući svoj stvarni identitet pre nego što validacija sertifikata uspe.
- Uparite ovo sa
force_authorized=1u hostapd-wpe tako da 4-way handshake završi čak i ako client-auth zakaže, što vam daje DHCP/DNS-nivo saobraćaja za phish ili portal.
Defanzivni prekidač (na šta obratiti pažnju tokom procene):
- hostapd/wpa_supplicant 2.10 je dodao EAP-TLS server i peer podršku za TLS 1.3, ali dolazi disabled by default; omogućavanje na klijentima sa
phase1="tls_disable_tlsv1_3=0"uklanja prozor za downgrade.
Realnosti TLS 1.3 u 2024–2025
- FreeRADIUS 3.0.23+ prihvata EAP-TLS 1.3, ali klijenti i dalje kvare (Windows 11 nema EAP-TLS 1.3 session resumption, podrška na Android-u varira), pa mnoge implementacije fiksiraju
tls_max_version = "1.2"radi stabilnosti. - Windows 11 omogućava EAP-TLS 1.3 po defaultu (22H2+), ipak neuspešne resumptions i nestabilni RADIUS stackovi često forsiraju fallback na TLS 1.2.
- RSA key exchange za TLS 1.2 je u procesu deprecacije; OpenSSL 3.x uklanja static-RSA suite-ove na security level ≥2, tako da rogue TLS 1.2 static-RSA zahteva OpenSSL 1.1.1 sa
@SECLEVEL=0ili stariji.
Praktično usmeravanje verzije tokom angažmana
- Forsirajte TLS 1.2 na rogue-u (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
- Ispitajte TLS netoleranciju klijenta: pokrenite dva rogues – jedan koji reklamira TLS 1.3-only (
disable_tlsv1=1,disable_tlsv1_1=1,disable_tlsv1_2=1) i jedan TLS 1.2-only. Klijenti koji se priključe samo na 1.2 BSS su podložni downgrade-u. - Pazite na fallback u capture-ima: filtrirajte u Wireshark-u za
tls.handshake.version==0x0303nakon inicijalnogClientHellosasupported_versionskoji sadrži 0x0304; žrtve koje retry 0x0303 ponovo leak-aju svoj outer ID.
Evil Twin via broken server validation (“mTLS?”)
Rogue AP-ovi koji emituju corporate SSID mogu pokazati bilo koji sertifikat. Ako klijent:
- ne validira server cert, ili
- pita korisnika i dozvoljava override za untrusted CAs/self-signed certs,
onda EAP-TLS prestaje biti međusoban. Izmenjeni hostapd/hostapd-wpe koji preskače validaciju client-cert (npr.
SSL_set_verify(..., 0)) je dovoljno da se podigne Evil Twin.
Kratka napomena o rogue infrastrukturi
Na novijem Kali-ju, kompajlirajte hostapd-wpe koristeći hostapd-2.6 (sa https://w1.fi/releases/) i prvo instalirajte legacy OpenSSL headers:
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 pitfalls (GUI/GPO)
Key knobs from the Windows EAP-TLS profile:
- Proveriti identitet servera validacijom sertifikata
- Označeno → lanac mora biti pouzdan; neoznačeno → prihvata se bilo koji samopotpisani sertifikat.
- Povezati se na ove servere
- Prazno → prihvata se bilo koji sertifikat od pouzdanog CA; podesite CN/SAN listu da zaključate očekivana RADIUS imena.
- Ne traži od korisnika autorizaciju novih servera ili trusted certification authorities
- Označeno → korisnici ne mogu da preskoče upozorenje; neoznačeno → korisnik može da veruje nepouzdanom CA/sertifikatu i pridruži se rogue AP.
Observed outcomes:
- Strict validation + no prompts → rogue cert rejected; Windows logs an event and TLS fails (dobar signál za detekciju).
- Validation + user prompt → user acceptance = successful Evil Twin association.
- No validation → silent Evil Twin association with any cert.
References
- EAP-TLS: The most secure option? (NCC Group)
- EAP-TLS wireless infrastructure (Versprite hostapd bypass)
- RFC 4282 - Network Access Identifier
- Microsoft ServerValidationParameters (WLAN profile)
- RFC 9190 – EAP-TLS 1.3
- hostapd/wpa_supplicant 2.10 release notes (TLS 1.3 EAP-TLS support)
- FreeRADIUS TLS 1.3 support thread (Nov 2024)
- Windows 11 enabling TLS 1.3 for EAP (SecurityBoulevard, Jan 2024)
- draft-ietf-tls-deprecate-obsolete-kex
Tip
Učite i vežbajte AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Učite i vežbajte Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.


