PMKID ATTACK — parte 1

mariocuomo
4 min readApr 12, 2022

--

Come ho hackerato le password dei miei vicini — (ma non diteglielo!**)

Non sono un amante della cybersecurity — e dell’hacking in particolare — ma spesso e volentieri mi capita di leggere articoli che attirano la mia attenzione.
È stato il caso dell’attacco PMKID, un attacco al protocollo Wi-Fi Protected Access (WPA) che sfrutta una sua vulnerabilità e che permette di recuperare la password di un Access Point vittima.

Prima di iniziare caliamoci nello scenario di interesse.
Un Client vuole utilizzare un Access Point per connettersi a internet.
La prima cosa che deve fare è autenticarsi all’Access Point e mostrare una prova di essere in possesso della password di connessione. Questo avviene nei primi 4 pacchetti scambiati tra Client e Access Point — il 4-way handshake.

pacchetto 1 — da Access Point(AP) a Client

L’AP invia un AP Nonce al Client — un intero random di 256 bit.
È una sfida: il Client deve combinare l’AP Nonce con la password (il pre-shared secret) e restituire il risultato all’AP. L’AP in locale combina anch’esso l’AP Nonce e la password e se ottiene lo stesso risultato inviatogli dal Client vuol dire che il Client possiede la password corretta di accesso.
— — — — — —

pacchetto 2 — da Client a AP

Il Client utilizza la password dell’AP per generare il PMK (Pairwise Master Key) e combinando il PMK e l’AP Nonce genera un PTK (Pairwise Transit Key).

PMK = PBKDF2(HMAC−SHA1, PSK, SSID, 4096, 256)

Il PMK è una stringa di 256 bit che si ottiene applicando una Password Based Key Derivation Function. Si esegue l’algoritmo HMAC-SHA1 per 4096 iterazioni sul PSK in cui si utilizza l’SSID come sale.
Il Client genera un numero random (Client Nonce) e lo invia all’AP insieme al al MIC (Message Integrity Code).
Il MIC è un messaggio che dipende da PMK, AP NONCE, CLIENT NONCE, MAC(AP) e MAC(CLIENT)
— — — — — —

pacchetto 3 — da AP a Client

L’AP utilizza il MIC per verificare il PTK generato dal Client e quindi verificare che il Client possegga il segreto condiviso. Come detto in precedenza, l’idea è che l’AP genera anche esso un PTK e verifica se coincide con il PTK inviato dal Client.
In caso positivo l’AP invia al Client il GTK (Group Temporal Key), ovvero un messaggio che permette al Client di decifrare le comunicazioni broadcast/multicast inviate dall’AP verso il suo cono di clients.
— — — — — —

pacchetto 4 — da Client a AP

Il Client risponde con un messaggio di ack e la conversazione può iniziare.

[WIKIPEDIA]

Uno degli attacchi che si può applicare è il 4-way handshake attack.
Questo attacco prevede di catturare il MIC dell’handshake: il MIC è calcolato a partire dal PMK — che a sua volta è calcolato a partire dalla password.
Da una lista di password candidate si generano iterativamente PMK e MIC: la password che genera il MIC equivalente a quello catturato è la password di accesso all’Access Point.

L’attacco descritto è un attacco offline: l’utente malevolo deve solo riuscire a catturare il MIC e poi può provare in differita le varie combinazioni di password che generano il MIC catturato.
Ciò che rende scomodo questo attacco è che l’attaccante deve trovarsi al posto giusto, nel momento giusto: deve riuscire a catturare il 4-way handshake!
Come si è visto i 4 pacchetti sono scambiati quando un Client legittimo si sta connettendo all’AP.
Si possono costruire in vitro pacchetti per far disconnettere un Client connesso all’AP e costringerlo così a connettersi nuovamente alla rete.

Ma si può fare di meglio?
Sì, nel 2018 in un post sul forum di hashcat è stata resa pubblica una vulnerabilità legata all’RSN IE (Robust Security Network Information Element).
In WPA si utilizza un protocollo di supporto EAPoL (Extensible Authentication Protocol over LAN) — che permette di autenticare il Client, supportando le operazioni descritte in precedenza (qui un approfondimento).

C’è un caso particolare in cui è possibile recuperare informazioni utili all’identificazione della password di accesso…

PARTE 2

mc
mariocuomo.github.io

**Ovviamente il titolo è puramente ironico.
Art.615-ter. (Accesso abusivo ad un sistema informatico e telematico).
Chiunque abusivamente si introduce in un sistema informatico o telematico protetto da misure di sicurezza ovvero vi si mantiene contro la volontà espressa o tacita di chi ha il diritto di escluderlo, è punito con la reclusione fino a tre anni.

--

--

mariocuomo

Sometimes I convert coffeine into code :D …………….. sometimes