PMKID ATTACK — parte 2

mariocuomo
2 min readApr 12, 2022

--

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

Nella prima parte di questo articolo — che puoi trovare qui — si è visto a grandi linee il funzionamento del 4-way handshake e la relativa vulnerabilità.
Si è accennata anche la possibilità di un altro tipo di attacco: il PMKID; oggetto di questo post.

Quando il Client invia una Association Request all’AP, esso gli risponde con un EAPoL packet a cui è appeso un incarto del protocollo Robust Security Network Information Element (RSN IE). Questo avviene soprattutto quando si considerano gli AP moderni.
Tra i vari campi dell’RSN IE vi è un campo speciale: il PMKID.

Il PMKID — come suggerisce il nome — è l’identificatore utilizzato dall’AP per tenere traccia del PMK (vedi parte 1) utilizzato per il Client. Esso è salvato in cache degli AP e permette un roaming avanzato e un abbattimento del tempo di autenticazione del Client.
Si immagini uno scenario aziendale in cui siano presenti più Access Point nel proprio edificio: un Client può muoversi continuamente e connettersi di volta in volta ad AP differenti. Ogni volta che si cambia AP è necessario effettuare nuovamente il 4-way handshake …troppo oneroso!
Gli AP mantengono una struttura dati definita PMKSA (PMK security association) contenente informazioni relative alle connessioni. Il PMKSA è una combinazione di PMKID, informazioni sul PMK, indirizzi MAC.
Quando il Client vuole riconnettersi a un AP che lo ha già autenticato in passato sarà sufficiente che si verifichino la congruenza dei PMKID.

Il PMKID è generato come segue

PMKID = HMAC−SHA1–128(PMK, ‘PMK_NAME’, MAC_AP, MAC_CLIENT)

Se riuscissimo a catturare il PMKID dall’AP saremmo in gradi di recuperare la password di accesso. L’idea è quella di partire da un insieme di password candidate e generare in primo luogo il PMK e successivamente il PMKID.
Si noti come tutte le informazioni al contorno (PMK_NAME, MAC delle macchine ed SSID) sono conosciute. Il PMKID risulta essere il punto debole dal quale è possibile estrapolare le informazioni di partenza; si parla in questo caso di essere in possesso di un perfetto vettore di attacco.

Curioso di sapere come implementare il tutto?
Visita il repository github.

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