Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

WPA2 password crack: attacco al WiFi

Sfruttare una vulnerabilità del protocollo WPA2 per ottenere in chiaro le informazioni trasferite tramite WiFi: ecco come attuare l'attacco KRACK.
Sfruttare una vulnerabilità del protocollo WPA2 per ottenere in chiaro le informazioni trasferite tramite WiFi: ecco come attuare l'attacco KRACK.
Link copiato negli appunti

I ricercatori Mathy Vanhoef e Frank Piessens della Katholieke Universiteit di Leuven, hanno recentemente scoperto una grave falla di sicurezza relativa al protocollo di comunicazione Wi-fi Protected Access 2 (comunemente noto come WPA2). Tale scoperta (pubblicata su un articolo scientifico pubblicamente accessibile) dimostra che chiunque si trovi nel raggio di comunicazione della rete wireless attaccata, può implementare il cosiddetto Key Reinstallation AttaCK (KRACK) e leggere il contenuto dei dati scambiati tra il PC e il router/access point. Questi dati possono includere i contenuti di e-mail riservate, username, password, numeri di carte di credito e relativi CVV, e qualunque altra informazione si ritenga cifrata.

In questo articolo descriveremo su cosa si basa questo attacco, gettando le basi per la sua replicazione.

Nota: questa lezione ha puro scopo educativo, e tutti i test sono stati eseguiti in ambiente controllato. Eventuali tentativi di replica in contesti di natura diversa e/o a scopo doloso costituiscono reato informatico.

Procedura per attuare l'attacco

L’attacco messo a punto da Vanhoef & Piessens è particolarmente efficace contro dispositivi Android/Linux, sebbene possa essere applicato anche a piattaforme diverse. Tutte le distribuzioni Linux e Android, che utilizzano il client wpa_supplicant per connettersi alla rete wireless, possono essere costrette a installare una chiave di cifratura banale (formata da una sequenza di zeri) anziché una chiave robusta. Il test dimostrativo mostrato nel video seguente è stato effettuato nei confronti di un dispositivo Android che effettua il login all’interno di un noto sito web.

Nel video, il ricercatore esegue uno script Python denominato krack-all-zero-tk.py, che non è stato reso disponibile sul web per ovvi motivi di sicurezza. Il video lascia però evincere la procedura necessaria per attaccare la rete. Si tratta di un tipico attacco man-in-the-middle.

L’attacco può essere perpetrato facilmente da una macchina che utilizzi la distribuzione Kali Linux, la suite per gli attacchi WiFi Aircrack-ng, il software per eliminare la protezione HTTPS denominato SSLstrip e WireShark.

La procedura di attacco è la seguente:

  1. l’attaccante si posiziona nelle vicinanze della rete da attaccare, e ne rileva l'SSID (supponiamo testnetwork), il MAC dell’access point (BSSID) con un formato tipo XX:XX:XX:XX:XX:XX, e il canale su cui opera la rete, supponiamo per esempio il canale 6. Queste operazioni possono essere facilmente effettuate utilzzando il comando di aircrack-ng:
    airodump-ng nome_interfaccia
  2. l’attaccante osserva l'indirizzo MAC della vittima come risultato del comando precedente. Supponiamo che sia YY:YY:YY:YY:YY:YY;
  3. l’attaccante crea una rete fake con SSID e MAC identici a quelli della rete attaccata, ma su un altro canale, supponiamo per esempio il canale 1 (questo si rende necessario per evitare interferenze nelle comunicazioni). La rete fake deve consentire la navigazione su internet (per esempio sfruttando Virtual Wi-Fi Router, o altri software analoghi);
  4. l’attaccante esegue SSLstrip per agire all’interno della rete fake. Questa operazione consentirà di declassare il livello addizionale di protezione HTTPS a semplice HTTP (non crittografato). Tale tecnica consente di attaccare alcuni siti web/app malconfigurati/e;
  5. l’attaccante invia un messaggio di “Channel Switch Announcement”, che convincerà il client a connettersi sul canale della rete fake;
  6. a questo punto agisce il vero e proprio KRACK attack, che consentirà di installare una chiave “all zero” all’interno del client, e quindi di leggere i dati inviati da quest’ultimo.

Nel video si può notare come, tramite l’utilizzo di WireShark, tutte le comunicazioni tra client e router vengono intercettate e lette in chiaro dal momento in cui viene perpetrato l’attacco KRACK.

Il client, dopo essere entrato all’interno di un sito non sicuro (che non mostra l’icona del lucchetto di HTTPS per effetto di SSLStrip), effettua la login inserendo nome utente e password. Come si può effettivamente notare su WireShark, questi dati, che normalmente viaggiano cifrati, sono adesso diventati leggibili!

KRACK in dettaglio

I ricercatori sottolineano che questo attacco non è mirato ad ottenere la password della rete WiFi, ma a sfruttare una debolezza del protocollo stesso. L’attacco mira a far sì che venga utilizzata più volte la stessa chiave di cifratura, la cosiddetta Pairwise Transient Key (PTK).

Nel momento in cui l’attaccante avrà convinto il client a cambiare canale ed a connettersi alla rete fake (come indicato al passo 5 del precedente paragrafo), verrà avviato il cosiddetto protocollo di handshake. Durante questa fase client e router/AP si riconoscono vicendevolmente dimostrando di possedere entrambi la stessa chiave per l’accesso alla rete cifrata.

L’attaccante sta perpetrando l’attacco man-in-the-middle: il client contatta l’attaccante sul canale 1, mentre il router originario sta ancora funzionando sul canale 6:

La figura seguente mostra la procedura eseguita dall’attaccante per ottenere la PTK durante la fase di handshake di WPA2:

Il router della rete attaccata genera un numero casuale r, ed un numero da utilizzare una sola volta, detto Anonce, ed invia il messaggio 1. Ricevuti questi dati, il client vittima genera un numero detto Snonce e calcolerà la PTK (che dipende chiaramente anche dalla chiave segreta della rete wifi).

Il client risponde con il messaggio 2 contenente lo stesso numero casuale e Snonce. Il router calcola la PTK.

A questo punto il router invia il messaggio 3, contenente la Group Temporary Key (GTK). Ricevuto il messaggio 3, il client risponderà con il messaggio 4 installando la chiave PTK. Da quel momento in poi tutte le trasmissioni saranno crittografate con PTK.

Che ruolo ha l’attaccante in questo scambio di messaggi?

Come si vede in figura, il messaggio 4 viene bloccato, e questo fa sì che il router della rete attaccata reinvii il messaggio 3. Di tutta risposta, il client reinvierà un nuovo messaggio 4 (crittografato), ma questo causerà la reinstallazione della chiave PTK e il reset del nonce.

Dato che il contenuto dei due messaggi 4 (non crittografato e crittografato) è noto all’attaccante, egli potrà risalire alla chiave di cifratura PTK. Inoltre, dato che il nonce è stato resettato al suo valore iniziale, tutte le comunicazioni successive potranno essere facilmente decifrate dall’attaccante.

Precauzioni

La vulnerabilità è causata dallo standard che suggerisce di reinstallare la chiave quando viene ricevuto il messaggio 3 del protocollo di handshake, ed è relativa allo standard WPA2.

Dunque, indipendentemente dallo specifico modello del vostro dispositivo, bisognerà effettuare l’aggiornamento all’ultima versione disponibile sia per i sistemi operativi dei PC o dispositivi mobili, sia per quello che riguarda i firmware del router/access point.

I ricercatori sottolineano che, dal punto di vista dell’utente, la necessità primaria deve essere quella di aggiornare il proprio dispositivo. Un dispositivo aggiornato può ancora comunicare con un router/AP non aggiornato (e vulnerabile) senza per questo doversene preoccupare (e vice-versa). Gli aggiornamenti di sicurezza assicurano che la stessa chiave, una volta utilizzata, non sarà più re-installabile, e questo è sufficiente a prevenire l’attacco perpetrato da KRACK.

Appare opportuno concludere riportando la nota sulle vulnerabilità VU#228519 del CERT/CC, che elenca i sistemi e le marche di dispositivi che possono essere colpiti dall’attacco, nonché la data in cui è stato reso disponibile l’aggiornamento per rimediare alla vulnerabilità.

È possibile controllare se un dispositivo è attualmente vulnerabile al KRACK attack, utilizzando lo script Python fornito dai ricercatori, e disponibile su GitHub.

Ti consigliamo anche