Guida Attacco PMKID come funziona? e qual è l'obbiettivo? tutta la teoria dietro questo metodo di attacco

CrashTest

Utente Gold
29 Dicembre 2013
584
36
208
309
Capita spesso di imbattersi in guide e tutorial che parlano del "nuovo" metodo di Wifi hacking basato sullo sfruttamento del PMKID, ma molte volte, nella nostra lingua, non viene spiegato come funziona dal punto di vista teorico.

Cominciamo col dire che questo attacco sfrutta delle informazioni contenute nell'RSN IE (Robust Security Network Information Element), e consiste nel catturare uno scambio completo di frame EAPOL tra l'access point ed il dispositivo che richiede l'autenticazione. L'obbiettivo di questo attacco è ricostruire il PTK per confrontarlo con una lista di password al fine di trovare quella corretta. Bene, ma come?

Nelle reti WPA/TKIP, TKIP si serve di una PMK (Pairwise Master Key) per generare le PTK che cambiano ad ogni tentativo di associazione con l'access point.

Per capire meglio la faccenda:

36745
quando avviene il tentativo di autenticazione, l'access point trasmette al client, nel primo pacchetto di negoziazione, una chiave ANonce.

Una volta che il client riceve questa chiave costruisce la sua chiave SNonce insieme alla PTK e successivamente invia l'SNonce ed il Message Integrity Code (MIC) all'access point.

Il processo di autenticazione continua con lo scambio di altre chiavi ed il consenso da parte dell'access point, ma non ci serve analizzarle ed andare oltre queste due prime fasi perchè, già arrivati a questo punto, siamo in grado di intercettare abbastanza informazioni riguardo la negoziazione tra client ed AP che possiamo provare ad eseguire il cracking della password.

Bene, ma in tutto questo, a cosa serve la password? Allora, analizzando un frame RSN:

36746

possiamo notare la presenza della voce RSN PMKID, usata come identificativo per le PMK e per poter sfruttare delle funzionalità di caching.

Ma come abbiamo detto prima, l'obbiettivo è quello di generare il PTK partendo dalle informazioni attuali (solo il PMKID). Sapendo che il PMKID viene generato come segue:

PMKID = HMAC-SHA1-128(PMK, "PMK Name" | MAC_AP | MAC_STA)

ciò che ci serve è trovare il PMK, ma anche i criteri di generazione del PMK sono noti, ed avviene -semplificandola- in questo modo:

PMK = PBKDF2(PASSWORD, SSID, ...)

dove PBKDF2 sta per Password-Based Key Derivation Function e la password quindi è un parametro essenziale per la derivazione del PMK. A sua volta però questo PMK viene usato insieme ad altri parametri per la generazione del PTK che è quello che ci serve.

Di conseguenza, ricapitolando: una volta che il secondo pacchetto della negoziazione è stato scambiato, si hanno abbastanza informazioni per poter provare a calcolare il PMK, quindi anche il PTK usando una password prestabilita, presa da una lista di password (dizionario).

Questo PTK può essere usato per innescare la Key-Confirmation e generare il MIC che viene confrontato con il MIC autentico per determinare la validità della password presa dal dizionario.

Questo processo però deve essere eseguito da zero per ogni parola presente nel dizionario (o generata da un bruteforce), da qui la lentezza dell'intero meccanismo; inoltre, per password piuttosto complicate, questo attacco potrebbe rivelarsi inefficace.


Se siente interessati all'aspetto pratico della questione, una guida su come effettuare questo attacco è presente qui sul forum e la potete trovare qui: Guida - PMKID Attack


Link alle risorse utili per approfondire:
- https://en.wikipedia.org/wiki/IEEE_802.11i-2004
- http://tools.ietf.org/html/rfc2104
- https://hashcat.net/forum/thread-7717.html
 
Questa guida è molto sommaria ed esteriore, non è valida neanche per dare lo "zoccolo" del concetto al lettore e molto probabilmente nemmeno tu hai idea di ciò che hai scritto. Non basta mettere qualche immagine e spiegare qualche significato di un acronimo in inglese.
 
Questa guida è molto sommaria ed esteriore, non è valida neanche per dare lo "zoccolo" del concetto al lettore e molto probabilmente nemmeno tu hai idea di ciò che hai scritto. Non basta mettere qualche immagine e spiegare qualche significato di un acronimo in inglese.
Ho cercato di fare una release quanto più introduttiva possibile, cercando di spiegare in linea di massima come funziona l'attacco (in breve, e idealmente: risalire alla password partendo dal PMKID reperibile da un frame RSN) introducendo qualche acronimo utile a capire come si svolge l'iter. Proverò ad aggiungere qualcosa, ma una spiegazione un po' più meticolosa ed attenta richiederebbe la scrittura di poche pagine, dando per scontato che il lettore abbia buone basi riguardo l'architettura RSN, i vari step di negoziazione, che sappia collocare le varie componenti dell'RSN security protocol stack all'interno del modello ISO/OSI e più in generale che conosca decentemente l'802.11 e sappia distinguere un beacon frame da un probe response frame piuttosto che da un association request frame, o che sappia come funziona TKIP, CCMP e molto altro.
Prendendo come riferimento un neofita, questa stessa dissertazione richiederebbe invece la scrittura di qualche decina di pagine al fine di fornire delle basi per capirla, oppure l'inserimento di riferimenti che rimandano a capitoli di libri e papers pubblicati su riviste o giornali scientifici, rendendo il tutto molto più difficile da leggere.

Se hai suggerimenti su cosa aggiungere e/o su come migliorarla ti ascolto, e lo faccio quanto più velocemente possibile nei limiti di tempo che ho, essendo che in questo periodo sono alle prese con l'ultima revisione della tesi.

Saluti, CrashTest