Red Hot Cyber
La cybersecurity è condivisione. Riconosci il rischio, combattilo, condividi le tue esperienze ed incentiva gli altri a fare meglio di te.
Cerca

Sicurezza WiFi: Come Penetrare e Proteggere le Reti WEP e WPA2

Manuel Roccon : 26 Agosto 2024 09:25

Oggi parliamo di Wifi, comodissimo per non dover avere cavi in giro… ma parlando di sicurezza, queste reti possono essere penetrate?

In questo articolo andremo alla scoperta di come è possibile compromettere due tipologie di reti Wifi, una WEP e una WPA2 per ottenere la password di accesso. In seguito vedremo come sfruttare l’accesso alla rete ottenuto per attaccare i dispositivi collegati e infine alcuni consigli su come proteggersi da questi rischi.

L’articolo che segue è realizzato esclusivamente a scopo didattico e divulgativo. Le tecniche e i metodi descritti sono presentati con l’intento di fornire una comprensione approfondita delle vulnerabilità presenti nelle reti WiFi, allo scopo di migliorare le proprie competenze in ambito di sicurezza informatica. È fondamentale sottolineare che l’uso improprio delle informazioni contenute in questo articolo è severamente vietato e contrario ai principi etici. L’obiettivo principale è quello di sensibilizzare i lettori sui potenziali rischi legati alla sicurezza delle reti wireless e offrire le conoscenze necessarie per proteggere efficacemente i propri dispositivi e dati. La sicurezza è una responsabilità di tutti, e la comprensione delle minacce è il primo passo per difendersi.

AIRMON-NG

Per fare questo utilizzeremo il tool Airmon-ng incluso in kali linux.

Airmon-ng è uno strumento essenziale nella suite Aircrack-ng, utilizzato principalmente per abilitare la modalità monitor sul tuo adattatore wireless. La modalità monitor consente al tuo adattatore wireless di ascoltare tutto il traffico WiFi, anche al di fuori della rete a cui appartiene il tuo dispositivo. Ciò è fondamentale per catturare pacchetti, analizzare il traffico di rete e iniettare pacchetti nella rete di destinazione quando necessario. Si usa airmon-ng all’inizio di qualsiasi processo di auditing o penetration testing di reti wireless. 

Aircrack-ng è composto da diversi strumenti come airodump-ng, aireplay-ng e aircrack-ng stesso:

  • airmon-ng: serve per commutare l’adattatore wireless in modalità monitor
  • airodump-ng: una volta individuata la rete WIFI serve a catturare dei pacchetti trasmessi
  • aireplay-ng: per la generazione di traffico e iniettarlo
  • aircrack-ng: per recuperare la chiave WEP

MONITOR E MANAGED MODE

Prima di iniziare dobbiamo capire la differenza tra Managed e Monitor mode.

In questo test abbiamo utilizzato questo adattatore dell’ALFA compatibile con Kali Linux.

https://www.amazon.it/ALFA-Network-Adattatore-Termine-sensibilit%C3%A0/dp/B08BJS8FXD

Molto importante è impostare la compatibilità usb 3 per farlo funzionare correttamente, questo è un esempio usando VMware.

In seguito dai menu dobbiamo collegare il dispositivo usb che avrà rilevato alla macchina virtuale. Ora se viene correttamente visto, possiamo procedere…

La modalità Managed Mode l’adattatore WiFi è impostato per ricevere solo pacchetti diretti al nostro indirizzo MAC specifico. Immagina di ricevere solo lettere consegnate a casa tua. Questa è la configurazione impostata di ogni singolo dispositivo wifi per collegarsi alla rete wifi,

La modalità Monitor Mode il dispositivo sarà in grado di ricevere tutti i pacchetti che si trovano nel raggio d’azione dell’adattatore WiFi, anche se non sono indirizzati all’indirizzo MAC della tua macchina. Immagina di essere nella sala di ricezione e smistamento postale e di guardare tutte le buste che arrivano.

Quindi quello che ci servirà adesso per leggere tutto il traffico circolante è mettere il nostro adattatore in Monitor Mode.

Per prima cosa identifichiamo il nome dell’interfaccia del adattare wireless (ad esempio, wlan0) utilizzando il ifconfig o iwconfig.

Una volta ottenuto il nome dell’interfaccia, è necessario abilitare la modalità monitor con il comando airmon-ng start seguito dal nome dell’interfaccia.

sudo airmon-ng start wlan0

Sempre con iwconfig possiamo vedere lo stato della scheda, noteremo anche che il nome dell’interfaccia è cambiato in wlan0mon.

CRACCHIAMO UNA RETE WEP

L’attacco al protocollo WEP sfrutta le vulnerabilità del protocollo Wired Equivalent Privacy. 

Il protocollo WEP è stato uno dei primi metodi di crittografia utilizzati per proteggere le reti wireless. 

Nel corso degli anni sono stati sviluppati diversi metodi per caricare la crittografia WEP a causa delle sue deboli chiavi di crittografia, qui sotto vedremo il più semplice ma faremo un accenno ad altri metodi che possiamo sfruttare.

Per decifrare la chiave WEP, dobbiamo raccogliere molti vettori di inizializzazione (IV). Anche se il normale traffico di rete in genere non genera questi IV molto rapidamente, proviamo a raccogliere IV sufficienti per decifrare la chiave WEP, semplicemente ascoltando il traffico di rete scambiato dai device collegati.

In seguito vedremo altre tecniche per generare il traffico sufficiente a velocizzare il cracking senza aver bisogno di client collegati, come ad esempio il KORECK ChopChop.

Anche se l’attacco è abbastanza procedurale, lascio una referenza per chi volesse capire più in dettaglio come funziona la crittografia WEP e perché è vulnerabile da questo tipo di attacchi.

https://cybr.com/certifications-archives/initialization-vector-iv-attacks-with-wep-comptia-security

1) ANALIZZIAMO LE RETI DISPONIBILI

Per iniziare verifichiamo le reti disponibili utilizzando il comando: 

sudo airodump-ng wlan0mon

wlan0mon è il nome della rete in monitor mode vista prima.

In questa schermata possiamo vedere

  • BSSID: mostra l’indirizzo MAC degli AP rilevati.
  • PWR: mostra il livello di potenza del segnale indica anche la distanza del dispositivo di destinazione dalla nostra antenna Wi-Fi. Valori più alti indicano un segnale migliore.
  • CH: Numero di canale su cui sono in esecuzione gli AP di destinazione.
  • ENC CIPHER AUTH: I metodi di crittografia utilizzati dagli AP di destinazione.
  • ESSID: Viene visualizzato il nome del punto di accesso WIFI.
  • STATION: Indirizzo MAC dei client connessi a varie stazioni AP. Indirizzo MAC di vari dispositivi client connessi agli AP su ciascun BSSID.

2) CATTURIAMO IL TRAFFICO DI UNA RETE

Dopo aver individuato la rete WEP da attaccare ricaviamo BSSID (30:B5:C2:47:B7:5B) e canale (2) della rete (evidenziati nell’immagine precedente)

In seguito catturiamo tutto il traffico da questo BSSID e scriviamolo in un file cap

Utilizziamo il comando: 

sudo airodump-ng -c 2 –bssid 30:B5:C2:47:B7:5B –write crackwep wlan0mon

Questo comando scriverà in un file tutto il traffico rilevato in un file che si chiamerà crackwep-XX.cap presente sulla root directory da dove abbiamo lanciato il comando incluso il numero incrementale a seconda dei tentativi di acquisizione che abbiamo fatto.

In questa schermata possiamo vedere i MAC address di dispositivi collegati (STATION) e notiamo che sono presenti dei dispositivi che stanno facendo traffico. Quindi possiamo continuare con l’attacco.

3) ANALIZZIAMO GLI IVs E REPERIAMO LA CHIAVE

Ora continuando a catturare il traffico, con un altro comando andiamo alla ricerca della chiave sul traffico catturato.

Utilizziamo il comando:

aircrack-ng crackwep-01.cap

Possiamo vedere che il campo #data in airodump-ng (visto prima) e Got in aircrack-ng aumenteranno man mano che i device collegati generano traffico.

Aircrack-ng avrà bisogno di un pò di tempo per catturare pacchetti a sufficienza per poter ricavare la chiave dagli IVs trovati, il tempo sarà inferiore più ci sa il traffico catturato.

Con un  chiave da 64 bit ci vorranno circa 15k IVs mentre di più con chiavi più lunghe ci vorrà del tempo in più.

Dopo aver aspettato il tempo necessario, aircrack recupererà correttamente la password (12345)

APPROFONDIMENTO

Ci sono altre tecniche per recuperare la chiave WEP che non analizzeremo nel dettaglio ma nella referenza di airmon-ng è spiegato molto bene.

HIRTE (https://www.aircrack-ng.org/doku.php?id=hirte)

L’attacco Hirte è un attacco client che può usare qualsiasi pacchetto IP o ARP, generando un falso AP per raccogliere questi pacchetti dagli altri client che si collegheranno.

ARP replay attack (https://www.aircrack-ng.org/doku.php?id=arp-request_reinjection):

Il aircrack cercherà di catturare un pacchetto ARP e per poi ri-trasmetterlo all’access point. Questo, a sua volta, fa sì che l’access point ripeta il pacchetto ARP con un nuovo IV. 

Aircrack poi ri-trasmette lo stesso pacchetto ARP più e più volte. 

Tuttavia, ogni pacchetto ARP ripetuto dall’access point ha un nuovo IV. Sono tutti questi nuovi IV che consentono di determinare la chiave WEP come visto prima.

KORECK ChopChop (https://www.aircrack-ng.org/doku.php?id=korek_chopchop)

Dopo un fake login (aireplay-ng –fakeauth) viene eseguita la forgiatura e iniezione di pacchetti per poi recuperare i IVs e infine individuare la chiave.

Attacco KORECK  come ARP replay attack non necessitano la presenza di altri client collegati all’APP che facciamo traffico.

ATTACCO A UNA RETE WPA/WPA2

Ora vedremo come craccare una password WPA/WPA2, il processo è relativamente semplice, ma rispetto al WEP dovremmo tentare di craccare hash di autenticazione ottenuto, questo vuol dire che se la password è complessa e non presente nei principali dizionari, come rockyou sarà molto difficile ottenere la chiave.

Ora l’obiettivo è catturare handshake di autenticazione (4-way handshake) una volta che i client collegati proveranno a collegarsi al AP.

1) INDIVIDUIAMO LA RETE DA ATTACCARE

sudo airodump-ng wlan0mon

Ricaviamo quindi da qui il BSSID (30:B5:C2:47:B7:5B) del punto di accesso e il canale CH. Verifichiamo inoltre che sia una rete WPA.

Inoltre ricaviamo il MAC address di un client collegato (00:13:D3:7D:9E:9F).

2) CATTURA DEL HANDSHAKE

Ora avviamo airodump-ng per catturare handshake, molto importante per tentare di ricavare la chiave.

sudo airodump-ng -c 2 –bssid 30:B5:C2:47:B7:5B –write handshake wlan0mon

3) FORZARIAMO LA DISCONNESSIONE DI UN CLIENT

Allo stesso tempo che stiamo in attesa del handshake con il comando precedente, forziamo 10 volte la disconnessione di un client collegato all’AP tramite il comando:

sudo aireplay-ng –deauth 10 -a 30:B5:C2:47:B7:5B -c 00:13:D3:7D:9E:9F wlan0mon

Una volta che si connetterà, airmoin-ng cercherà di catturare handshake scambiato tra AP e il client vittima.

4) CONVERTIAMO IL CAP nel formato HASHCAT

Essendo airdodump genera un CAP file contenente handshake catturati è necessario convertirlo in un formato compatibile con hashcat, strumento che useremo poi per craccare hash.

Lo possiamo fare velocemente a questo link online https://hashcat.net/cap2hashcat/

Se volete un pò  di privacy, potete farlo anche con il suo tool offline.

Una volta caricato avviamo un esito positivo: abbiamo estratto handshake.

5) CRACCHIAMO HANDSHAKE

Ora non ci resta altro che tentare di craccare handshake. In questa fase possiamo usare bruteforcing (magari con una lista creata con crunch), usare delle rainbow table oppure un dizionario.

In questo caso usiamo il classico dizionario rockyou tramite hashcat, famoso tool per craccare hash di vario tipo.

Quindi eseguiamo il comando:

hashcat -m 22000 400453_1723133379.hc22000 /usr/share/wordlists/rockyou.txt

-m indica il mode per decifrare hash WPA, successivamente abbiamo indicato il file convertito e il dizionario.

https://hashcat.net/wiki/doku.php?id=cracking_wpawpa2

A questo punto non ci resta che aspettare e sperare di trovare la chiave. 

E adesso?

Bè ottenuta la chiave potremmo intrufolarsi all’interno della rete e inizierò la nostra ricognizione, come il classico nmap.

Possiamo utilizzare però qualche tool interessante come eseguire del poisoning LLMNR nella speranza che qualche endpoint si colleghi a un percorso di rete scoprendo l’hash di autenticazione.

Per prima cosa mettiamo il nostro adattatore Wifi in managed mode, e colleghiamoci alla rete wifi.

Avviamo il comando responder, indicando l’interfaccia di rete corretta.

Quindi aspettare che un client della rete cerchi di accedere a una directory di rete e recuperare hash NTLM o NTLMv2.

In alternativa sui sistemi più recenti ci aspetteremo un V2, potremmo utilizzare sempre questo tool per come replay SMB, sempre che il protocollo SMB non sia firmato.

MITM

Infine potremmo eseguire Mitm tramite ARP poisoning e sniffare il traffico con WireShark alla ricerca di informazioni interessanti non crittografate.

Un attacco man-in-the-middle (MITM) è un attacco informatico in cui un autore della minaccia si mette in mezzo tra due parti, in genere un utente e un’applicazione, per intercettare le loro comunicazioni e gli scambi di dati e utilizzarli per scopi dannosi, come acquisti non autorizzati o hacking.

quindi attiviamo la modalità IP FORWARD

echo 1 > /proc/sys/net/ipv4/ip_forward

recuperiamo IP della vittima (192.168.1.100) e il gateway della rete wifi (192.168.1.1)

Quindi eseguiamo assieme i comandi:

sudo arp arpspoof -i wlan0 192.168.1.1 192.168.1.100

e

sudo arp arpspoof -i wlan0 192.168.1.100 192.168.1.1

Ora per magia aprendo wireshark vedremo che il traffico scambiato tra vittima e gateway passa per la nostra interfaccia di rete.

Potremmo spiare e sniffare alla ricerca di traffico interessante non crittografato.

MITMf

Un altro tool interessante è il framework MITMf, che permette vari tipi di attività, come ARP poisoning e LLMNR spoofing visti prima integrato in Kali Linux.

Otteniamo lo stesso risultato di prima con il comando:

sudo python mitmf.py -i wlan0 –spoof –apr 192.168.0.108 –gateway 192.168.0.1

E sempre aprendo wireshark come visto nel esempio precedente potremmo catturare i pacchetti scambiati tra il gateway e il dispositivo attaccato.

Una completa documentazione è presente qui:

https://charlesreid1.com/wiki/MITMf

CONCLUSIONI

Questi test ci hanno fatto capire come tecnologie datate o password deboli ci possono mettere in pericolo:

Per cui alcuni consigli pratici:

  • Evitare di utilizzare e collegarsi a tecnologie wifi datate e insicure come reti con crittografia WEP che permette di ricavare la chiave in chiaro molto rapidamente.
  • Utilizzare password WiFi non comuni e abbastanza complesse. Non serve impostare una password come !2(d#sjfu456% molto difficile da inserire e ricordare. Per esempio una password mnemonica OggièUnaBellaGiornata! è sufficiente sicura e non comune per proteggere le nostre reti wifi.
  • Cambiare il ssid e la password di default della rete predefinita dei router/AP. Per esempio alcuni tp-link di default utilizzano una password numerica di 8 cifre numeriche e il modello identificabile facilmente dal nome del SSID.
  • Anche se non lo abbiamo trattato negli esempi, il WPS è attaccabile e poco sicuro. Anche se è comodo non usatelo e disattivarlo il prima possibile!
  • In ambito aziendale è preferibile utilizzare protezione WPA-ENTERPRISE in cui per esempio i dispositivi windows accederanno automaticamente con le credenziali di dominio. La configurazione è più complicata, sarà necessario un server NPS e radius, ma così si eviterebbe di usare chiavi univoche condivise.
  • Mantenere aggiornati i dispositivi, router AP wifi.
  • In reti pubbliche una VPN diminuisce la probabilità che attacchi MITM possano leggere parte dei dati scambiati.
  • Valutare se necessario eseguire delle restrizioni via MAC address su quali possono collegarsi al punto di accesso wifi, così da evitare dispositivi non autorizzati.
  • Utilizzare software di discovery continua nella rete che avvisi di nuovi device collegati.

Infine considerare gli avvisi che i dispositivi ci potrebbero dare. 

Windows ci avrebbe avvertiti che la rete WEP non era affidabile e di stare possibilmente alla larga. La rete la potremmo anche conoscere e magari anche nostra, ma come dimostrato dagli esempi precedenti potrebbero esserci ospiti inattesi in ascolto.

Manuel Roccon
Ho iniziato la mia carriera occuparmi nella ricerca e nell’implementazioni di soluzioni in campo ICT e nello sviluppo di applicazioni. Al fine di aggiungere aspetti di sicurezza in questi campi, da alcuni anni ho aggiunto competenze inerenti al ramo offensive security (OSCP), occupandomi anche di analisi di sicurezza e pentest in molte organizzazioni.