Evil Twin EAP-TLS
Tip
AWS हैकिंग सीखें और अभ्यास करें:
HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें:HackTricks Training GCP Red Team Expert (GRTE)
Azure हैकिंग सीखें और अभ्यास करें:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks का समर्थन करें
- सदस्यता योजनाओं की जांच करें!
- हमारे 💬 Discord समूह या टेलीग्राम समूह में शामिल हों या हमें Twitter 🐦 @hacktricks_live** पर फॉलो करें।**
- हैकिंग ट्रिक्स साझा करें और HackTricks और HackTricks Cloud गिटहब रिपोजिटरी में PRs सबमिट करें।
EAP-TLS सामान्यतः WPA2/3-Enterprise के लिए “secure” विकल्प है, लेकिन आकलनों के दौरान नियमित रूप से दो व्यावहारिक कमजोरियाँ सामने आती हैं:
- Unauthenticated identity leakage: outer EAP-Response/Identity TLS टनल बनने से पहले cleartext में भेजा जाता है, इसलिए वास्तविक domain usernames अक्सर over the air leak हो जाते हैं।
- Broken client server-validation: यदि supplicant RADIUS server certificate को सख्ती से verify नहीं करता (या users को warnings को क्लिक करके बायपास करने देता है), तो self-signed cert वाले rogue AP फिर भी victims को onboard कर सकते हैं — जिससे mutual TLS एकतरफा (one-way) TLS में बदल जाता है।
Unauthenticated EAP identity leakage / username enumeration
EAP TLS शुरू होने से पहले identity का आदान-प्रदान करता है। यदि क्लाइंट अपने outer identity के रूप में वास्तविक domain username का उपयोग करता है, तो RF रेंज में कोई भी इसे authenticate किए बिना इकट्ठा कर सकता है।
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]"
प्रभाव: तेज़, no-auth username संग्रह → password spraying, phishing, account correlation को बढ़ावा देता है। जब usernames email addresses से मेल खाते हैं तो स्थिति और भी खराब होती है।
TLS 1.3 गोपनीयता बनाम डाउनग्रेड खेल
TLS 1.3 client certs और अधिकांश handshake metadata को एन्क्रिप्ट करता है, इसलिए जब कोई supplicant वास्तव में TLS 1.3 negotiate करता है, तो एक Evil Twin निष्क्रिय रूप से client certificate/identity नहीं सीख सकता। कई एंटरप्राइज स्टैक्स अभी भी compatibility के लिए TLS 1.2 की अनुमति देते हैं; RFC 9190 चेतावनी देता है कि एक rogue AP केवल TLS 1.2 static-RSA suites ही पेश कर सकता है ताकि fallback को मजबूर किया जा सके और outer identity (या यहां तक कि client cert) को cleartext EAP-TLS में फिर से expose किया जा सके।
Offensive playbook (downgrade to leak ID):
- hostapd-wpe को केवल TLS 1.2 static-RSA ciphers सक्षम करके और TLS 1.3 को
openssl_ciphersuite/ssl_ctx_flagsमें disabled करके compile करें। - कॉर्पोरेट SSID advertise करें; जब victim TLS 1.3 आरम्भ करे, तो TLS alert के साथ respond करें और हैंडशेक को restart करें ताकि peer TLS 1.2 के साथ retry करे, जिससे cert validation सफल होने से पहले उसकी वास्तविक identity reveal हो जाए।
- इसे hostapd-wpe में
force_authorized=1के साथ जोड़ें ताकि 4-way handshake पूरा हो जाए भले ही client-auth fail हो, जिससे आपको DHCP/DNS-स्तर का traffic मिलता है जिसे आप phish या portal के लिए उपयोग कर सकें।
Defensive toggle (assessment के दौरान क्या देखें):
- hostapd/wpa_supplicant 2.10 ने EAP-TLS server और peer के लिए TLS 1.3 support जोड़ा है लेकिन इसे disabled by default के रूप में भेजता है; clients पर
phase1="tls_disable_tlsv1_3=0"से इसे सक्षम करने पर downgrade window हट जाती है।
TLS 1.3 की वास्तविकताएँ 2024–2025 में
- FreeRADIUS 3.0.23+ EAP-TLS 1.3 स्वीकार करता है, लेकिन clients अभी भी ब्रेक होते हैं (Windows 11 में EAP-TLS 1.3 session resumption नहीं है, Android support विविध है), इसलिए कई deployments स्थिरता के लिए
tls_max_version = "1.2"पर पिन करते हैं। - Windows 11 EAP-TLS 1.3 को default रूप से सक्षम करता है (22H2+), फिर भी failed resumptions और flaky RADIUS stacks अक्सर TLS 1.2 पर fallback को मजबूर करते हैं।
- TLS 1.2 के लिए RSA key exchange को deprecated किया जा रहा है; OpenSSL 3.x static-RSA suites को security level ≥2 पर हटा देता है, इसलिए एक TLS 1.2 static-RSA rogue को OpenSSL 1.1.1 के साथ
@SECLEVEL=0या उससे पुराना चाहिए।
Engagement के दौरान व्यावहारिक version steering
- rogue पर TLS 1.2 बाध्य करें (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: दो rogues चलाएँ – एक TLS 1.3-only विज्ञापित करता है (
disable_tlsv1=1,disable_tlsv1_1=1,disable_tlsv1_2=1) और एक TLS 1.2-only। जो clients केवल 1.2 BSS join करते हैं वे downgradeable होते हैं। - captures में fallback पर नजर रखें: Wireshark में
tls.handshake.version==0x0303के लिए filter करें जब एक प्रारंभिकClientHelloमेंsupported_versionsमें 0x0304 मौजूद हो; victims जो 0x0303 के साथ retry करते हैं वे फिर से अपनी outer ID को leaking कर रहे हैं।
Evil Twin via broken server validation (“mTLS?”)
Rogue APs जो कॉर्पोरेट SSID broadcast करते हैं किसी भी certificate को प्रस्तुत कर सकते हैं। यदि client:
- server cert को validate नहीं करता, या
- user को prompt करता है और untrusted CAs/self-signed certs को override करने की अनुमति देता है,
तो EAP-TLS mutual होना बंद हो जाता है। client-cert validation स्किप करने वाली संशोधित hostapd/hostapd-wpe (उदा.,
SSL_set_verify(..., 0)) Evil Twin खड़ा करने के लिए काफी है।
Rogue infra — त्वरित नोट
हाल के Kali पर, hostapd-2.6 (from https://w1.fi/releases/) का उपयोग करके hostapd-wpe compile करें और पहले legacy OpenSSL headers install करें:
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 से जुड़ी समस्याएँ (GUI/GPO)
Windows EAP-TLS profile के प्रमुख विकल्प:
- सर्टिफिकेट की जाँच करके सर्वर की पहचान सत्यापित करें
- Checked → चेन भरोसेमंद होना चाहिए; unchecked → किसी भी self-signed प्रमाणपत्र को स्वीकार किया जा सकता है।
- इन सर्वरों से कनेक्ट करें
- खाली → किसी भी विश्वसनीय CA का प्रमाणपत्र स्वीकार किया जाता है; CN/SAN सूची सेट करके अपेक्षित RADIUS नाम पिन करें।
- उपयोगकर्ता से नए सर्वरों या trusted certification authorities को अधिकृत करने के लिए पूछें नहीं
- Checked → उपयोगकर्ता आगे क्लिक नहीं कर सकते; unchecked → उपयोगकर्ता एक अनविश्वसनीय CA/cert पर भरोसा कर सकते हैं और rogue AP से जुड़ सकते हैं।
Observed outcomes:
- Strict validation + no prompts → rogue cert अस्वीकार; Windows एक इवेंट लॉग करता है और TLS विफल हो जाता है (good detection signal)।
- Validation + user prompt → user acceptance = successful Evil Twin association।
- No validation → किसी भी प्रमाणपत्र के साथ चुपचाप Evil Twin association।
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
AWS हैकिंग सीखें और अभ्यास करें:
HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें:HackTricks Training GCP Red Team Expert (GRTE)
Azure हैकिंग सीखें और अभ्यास करें:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks का समर्थन करें
- सदस्यता योजनाओं की जांच करें!
- हमारे 💬 Discord समूह या टेलीग्राम समूह में शामिल हों या हमें Twitter 🐦 @hacktricks_live** पर फॉलो करें।**
- हैकिंग ट्रिक्स साझा करें और HackTricks और HackTricks Cloud गिटहब रिपोजिटरी में PRs सबमिट करें।


