Salta il contenuto

Scroll Indicator

Rilevamento WiFi Pineapple semplificato con Amec0e

Rilevamento WiFi Pineapple reso facile

PineScan e MultiSSID in azione con FEBERIS PRO per Flipper Zero

Introduzione:

Ciao a tutti, Amec0e qui e siamo tornati con un altro articolo che potrebbe essere un po 'più breve rispetto ai miei precedenti, ma oggi sono entusiasta di parlare del FEBERIS PRO da Sapsan mentre anche svelare due nuove funzionalità per entrambi i FEBERIS PRO Firmware (fork koko) e il progetto ESP32 Marauder da justcallmekoko

Oltre a una rapida dimostrazione delle nuove funzionalità, che ho lavorato per questo articolo, c'è anche un codice sconto alla fine è possibile utilizzare per i vostri ordini FEBERIS Pro :)

Così che cosa è il FEBERIS Pro?

Il FEBERIS Pro creato da Sapsan e distribuito ufficialmente da LAB401 è una fantastica aggiunta per il Flipper Zero. Questa piccola cosa racchiude in sé 2x CC1101 moduli radio che coprono le frequenze 433MHz e 868MHz, un modulo radio NRF24 per le cose come mouse e tastiere vulnerabili, un ESP32 con BLE e WiFi, con un modulo GPS integrato per le cose come wardriving con il Flipper Zero.

È dotato di 4 antenne con guadagno di 3dBi, 2 a 2,4 GHz, 1 a 433 MHz e 1 a 868 MHz, che danno una bella forma d'onda orizzontale. I moduli C1101 SubGHz hanno una gamma di frequenze supportate di 300-348 MHz, 387-464 MHz e 779-928 MHz.

In questa sede non ci soffermeremo sull'uso di base delle operazioni, ma per saperne di più sull'uso di base potete visitare il sito

E può anche essere acquistato da LAB401 qui.

Quali sono queste nuove funzioni?

Le due nuove funzioni che illustrerò sono "pinescan" e "multissid" per il rilevamento del WiFi Pineapple. Tutti i test sono stati effettuati utilizzando il mio WiFi Pineapple MK7.

Attenzione, questa funzione non sostituisce un vero e proprio WIDS come Kismet, ad esempio, né è a prova di errore, ma serve come PoC per dimostrare che il rilevamento più semplice può essere fatto su Flipper Zero e schede ESP32 come FEBERIS Pro. Anche il Pineapple è bravo in quello che fa.

Caratteristiche di PineScan:

  • Rileva i punti di accesso Pineapple tramite un elenco hardcoded di fornitori OUI (SUSP_OUI).
  • Rileva il pool di AP Pineapple Spoofed tramite parametri e capacità taggati (TAG+SUSP_CAP).
  • Estrae il canale corretto dal beacon (Questo è per evitare di mostrare il canale non corretto quando si utilizza un'antenna più adatto come il FEBERIS Pro ha).
  • È facile aggiungere altre OUI in una PR su Github, può contenere fino a 20 MAC per fornitore.
  • Limita l'output di visualizzazione per evitare Spamming quando si dispone di un ananas WiFi Broadcasting 50 SSID (Sì ho stress test!).

Caratteristiche di MultiSSID:

  • Rileva gli AP se un singolo MAC trasmette 3 o più SSID (incluso l'SSID nascosto).
  • Come Pinescan questo estrae il canale corretto dal beacon (Questo è per evitare di mostrare il canale non corretto quando si utilizza il FEBERIS Pro).
  • Come Pinescan, limita la visualizzazione per evitare lo spamming quando un ananas WiFi trasmette una grande quantità di SSID.

Per riassumere i punti di forza di ciascuna scansione:

MultiSSID - Buono per i casi limite, più incline ai falsi positivi. Pinescan - Ottimo per rilevare gli AP WiFi Pineapple Spoofed Pool.

VIDEO DIMOSTRATIVO DELLE FUNZIONI

NOTA: il firmware utilizzato era Unleashed 081E, mentre la versione del firmware Marauder utilizzata era la 1.4.6. Nel frattempo è stato effettuato un aggiornamento che probabilmente avrò già compilato e caricato per il download qui sotto.

I metodi di rilevamento

Ci sono 3 rilevamenti principali, oltre alle due nuove opzioni che abbiamo mostrato nel video precedente. Questi sono:

  • SUSP_OUI
  • Multi_SSID
  • TAG+SUSP_CAP

Ognuna di queste opzioni è stata costruita e testata utilizzando un WiFi Pineapple MK7 con OpenAP utilizzando la scheda Impersonation/Pool APpoofed nella WebUI.

SUSP_OUI - Questo è il primo controllo che viene fatto e che estrae semplicemente i primi 6 byte (00:00:00) dell'indirizzo MAC che di solito punta a uno specifico fornitore/produttore di reti. Per alcuni OUI specifici controlliamo anche se il bit di privacy è impostato su 0, il che indica che il punto di accesso non utilizza la crittografia, mentre se è 1 si tratta di un punto di accesso protetto. Si tratta di un metodo di controllo semplice ma abbastanza efficace.

Attualmente questo è l'elenco degli OUI che vengono controllati, la loro condizione di rilevamento della sicurezza e il nome del fornitore.

Fornitore: Alfa Inc. Condizione: SUSPICIOUS_WHEN_OPEN OUI: 00:C0:CA

(WiFi Pineapple MK7) Fornitore: Orient Power Home Network Ltd Condizione: SOSPETTO_SEMPRE OUI: 00:13:37

(WiFi Pineapple MK7) Fornitore: IEEE Registration Authority Condizione: SUSPICIOUS_WHEN_OPEN OUI: 0C:EF:AF

(WiFi Pineapple Management OUIs Locally Administered) Fornitore: Nessuno Condizione: SOSPETTO_QUANDO_PROTETTO OUI: 02:C0:CA, 02:13:37

(WiFi Pineapple Nano) Fornitore: Shenzhen Century Xinyang Technology Co Ltd Condizione: SOSPETTO_QUANDO_APERTO OUI: 1C:BF:CE

Fornitore: MediaTek Condizione: SUSPICIOUS_ALWAYS OUI: 00:0A:00, 00:0C:43, 00:0C:E7, 00:17:A5

Fornitore: Panda Wireless Inc Condizione: SOSPETTO_SEMPRE OUI: 9C:EF:D5, 9C:E5:D5

Fornitore: Nessuno Condizione: SOSPETTO_SEMPRE OUI: DE:AD:BE

Anche questo può essere aggiunto nel codice sorgente che rilascerò insieme all'articolo.

Poi abbiamo:

Multi_SSID - Mantiene un elenco di tutti gli access point visti fino a 100; l'elenco viene poi cancellato per fare spazio ad altri AP. Prende l'SSID completo e produce un hash e lo fa per ogni indirizzo mac unico visto, se un singolo MAC ha più di 3 hash SSID (inclusa la rete nascosta) allora viene segnalato come un AP che pubblicizza più SSID da un singolo MAC.

L'altro rilevamento è:

TAG+SUSP_CAP - Utilizza una combinazione di estrazione delle capacità del punto di accesso e dei parametri taggati del punto di accesso dal frame del beacon. Se il punto di accesso ha una capacità di 0x0001 e ha esattamente 2 parametri etichettati, si attiva il rilevamento TAG+SUSP_CAP.

Il TAG+SUSP_CAP ha richiesto un po' più di tempo per essere scoperto, perché mentre il Multi_SSID funzionava alla grande, il problema è: cosa succede se l'utente fa semplicemente clic su "Randomize Source MAC". Allora il Multi_SSID di cui sopra non rileverà più il pineapple, quindi sono tornato a esaminare i beacon frame che il WiFi Pineapple utilizza per trasmettere comodamente un gran numero di AP.

Vale la pena notare che l'opzione sniffer "pinescan" e "multissid" utilizzano due strutture ciascuna, in modo da avere un pool di AP di rilevamento generale e un pool di AP di rilevamento confermato. Questo permette alla scansione di visualizzare una sola voce di indirizzo MAC e di cancellare l'elenco degli AP una volta pieno, per evitare che gli elenchi crescano troppo oltre i limiti stabiliti.

Il pool generale di AP è impostato su 100 AP, dopodiché cancella l'elenco di rilevamento e consente di continuare la scansione nella stessa sessione (quando ciò accade viene visualizzato un messaggio nel file di registro e viene cancellato). Anche l'elenco confermato ha un massimo di 100 AP.

Trovare TAG+SUSP_CAP

All'inizio sono riuscito a notare un evento comune che non molti punti di accesso avevano, ovvero il flag capabilities impostato su 0x0001.

Nell'immagine precedente, sono stati visualizzati 7.900 pacchetti, di cui solo 5 provenienti da 3 diversi punti di accesso.

Questa era già una forte indicazione del fatto che non molti punti di accesso utilizzano comunemente quel flag di capacità impostato, tuttavia non è 0. Ciò significa che questo non poteva essere utilizzato da solo. Ciò significa che questo non può essere utilizzato come metodo affidabile per rilevare più punti di accesso con indirizzi MAC diversi, come fa il WiFi Pineapple.

Su 38.000 pacchetti provenienti da un viaggio di circa un'ora, tra tutti i pacchetti combinati c'era un totale di 115 (non AP ma pacchetti) che avevano la stessa capacità 0x0001. Ho quindi raccolto altri dati e setacciato circa 19 diversi pcap, per un totale di oltre 100.000 pacchetti provenienti da diverse parti del mondo (grazie agli amici che hanno raccolto i dati dei beacon di diversi paesi), di cui 20 AP utilizzavano la stessa capacità 0x0001. Questo però non era ancora sufficiente, quindi sono tornato a un pacchetto di ananas.

Dopo aver fissato il frame del beacon per circa 20 minuti e aver bevuto un caffè (necessario), ho notato qualcosa di piuttosto significativo: date un'occhiata ai parametri taggati...

Ha solo due parametri taggati, SSID e Canale. Si tratta di un pacchetto assolutamente scarno che consente di creare una grande quantità di punti di accesso senza rallentare il Pineapple con le sue risorse limitate. Questo non è comune per i punti di accesso disponibili in commercio: il 100% dei punti di accesso che corrispondevano al flag di capacità 0x0001 avevano sempre più di due parametri taggati.

Ciò non significa che non si possa creare una rete estremamente semplice come questa: è infatti possibile fare lo stesso con Marauder. Ha un pacchetto barebone che usa con una capacità 0x0401 (quindi non verrebbe rilevato dal nostro script di rilevamento), ma lancia anche un solo parametro taggato che, se dovessimo eseguire il rilevamento solo con il taggato (cercando se ci sono solo due parametri taggati), farebbe scattare il rilevamento. Tuttavia, il fatto che si possa creare un punto di accesso con un esp32 con le informazioni minime non significa che sia dannoso. Potrebbe essere semplicemente per renderlo il più efficiente e leggero possibile, pur fornendo all'utente le funzionalità richieste.

Quindi, se siete arrivati fin qui, inizierete a capire cosa stavo cercando di fare, ovvero essere efficiente in termini di memoria, ridurre i falsi positivi e puntare a un dispositivo specifico come il WiFi Pineapple, ed è per questo che abbiamo incluso il flag di capacità sospetta che non è possibile modificare facilmente su MK7.

In ogni caso, i falsi positivi che si possono riscontrare saranno probabilmente dovuti a SUSP_OUI e MULTI_SSID. Se in PineScan viene visualizzato TAG+SUSP_CAP, si tratta di un forte indizio di un WiFi Pineapple che utilizza il pool di AP spoofed. Tuttavia, questo potrebbe anche essere un falso positivo perché, come già detto, chiunque può creare un punto di accesso di questo tipo. Anche se è molto raro utilizzare solo due parametri taggati e una capacità 0x0001.

Alcuni rilevamenti come MULTI_SSID e SUSP_OUI potrebbero comunque rilevare alcuni casi limite al di fuori di WiFi Pineapple. Questi tipi di rilevamenti combinati, più molti altri, possono essere eseguiti con facilità utilizzando qualcosa di più potente di Flipper Zero e un ESP32 e di solito quando si utilizza un WIDS, è su qualcosa di più potente per eseguire questo tipo di analisi in tempo reale molto rapidamente. Tuttavia, questo PoC mostra che ci sono altri modi per rilevare alcuni tipi di attacchi utilizzando piccole differenze tra il WiFi Pineapple e un punto di accesso wireless acquistato dai consumatori.

NOTA: È anche possibile controllare altri pcap in wireshark utilizzando

wlan.fc.type_subtype == 0x0008 && wlan.fixed.capabilities == 0x0001

Poi si organizza in base alla lunghezza del pacchetto più basso e si controllano i parametri taggati proprio come abbiamo fatto sopra.

Ok, ma cosa non può fare?

Sono contento che l'abbiate chiesto! WiFi Pineapple è bravo in ciò che può fare e ha alcune limitazioni con questi metodi di rilevamento. Alcune di queste limitazioni sono:

EvilWPA Non è in grado di rilevare l'EvilWPA - L'EvilWPA è difficile da automatizzare perché può imitare il punto di accesso reale fino all'indirizzo MAC esatto e alla password (se la si conosce), anche se si utilizza un elenco di punti di accesso gestiti che consente di specificare ciò che si dovrebbe vedere intorno a noi VS ciò che si vede intorno a noi, questo non è ancora abbastanza efficace da solo.

Gli utenti possono distinguere visivamente le differenze se guardano qualcosa come Kismet, ad esempio la mia rete ha una sicurezza WPA3 e il WiFi Pineapple MK7 può usare solo WPA2 o inferiore. Per me, quindi, è un segnale di allarme se vedo qualcosa di diverso da WPA3 per la mia rete.

L'uso di un elenco di punti di accesso gestiti con Flipper Zero aumenterà il tempo di elaborazione dovendo leggere costantemente l'elenco o confrontarlo con un elenco che viene scaricato in memoria; tuttavia, più grande è l'elenco, più lento sarà e più memoria verrà utilizzata sull'ESP32. Inoltre, per funzionare, è necessario essere fermi.

Ciò non significa che non si possa fare, ma probabilmente questo dovrebbe essere l'unico metodo di rilevamento per contribuire a renderlo il più efficace e il più efficiente possibile in termini di memoria. Tuttavia, questo può essere un buon modo per farlo, anche se non è la strada che ho scelto io stesso perché non sarebbe d'aiuto se replicasse un MAC consentito. La localizzazione di questo dispositivo in natura si traduce di solito in una caccia alla volpe per individuare fisicamente il dispositivo di trasmissione in base alla potenza del segnale.

OpenAP (No Spoofed AP Pool) Impossibile rilevare OpenAP - senza l'uso di un OUI incriminato, questo punto di accesso di per sé non può essere rilevato come Pineapple con il nostro metodo di rilevamento. Questo perché funziona e ha l'aspetto di un punto di accesso aperto legittimo e dispone di tutti i parametri e le funzionalità taggate che qualsiasi normale punto di accesso aperto o protetto utilizza.

Intervalli di beacon Non è possibile rilevare gli intervalli di beacon da un frame di beacon - Questo perché l'INTERVALLO DI BEACON del WiFi Pineapple può essere impostato su BASSO, NORMALE o ALTO e in tutti i casi continuerà a riportare nel frame di beacon l'intervallo di 102,4ms. L'unico modo per ottenere questo risultato è che Flipper stesso tenga traccia del tempo che intercorre tra ogni beacon che vede, invece di leggere gli intervalli di beacon dal pacchetto stesso.

Discrepanze nella potenza del segnale Non è in grado di rilevare le discrepanze nella potenza del segnale, come ad esempio la presenza regolare di un RSSI di -50 e poi di un RSSI di -30 e poi di nuovo di un RSSI di -50 e la fluttuazione costante intorno a questa potenza. Lo si noterebbe facilmente se si monitorano le onde radio e si è completamente statici e nulla intorno a noi interferisce con la potenza del segnale.

Questo causerebbe anche un sacco di falsi positivi se si è in movimento durante la rilevazione come si vedrà aumenti e diminuzioni della potenza del segnale regolarmente da muoversi (che naturalmente il Flipper e FEBERIS Pro è proprio questo, piattaforma mobile).

Istruzioni per il flashing

Flashing al ESP32S2 o alla scheda di sviluppo utilizzando l'app ESP Flasher:

Per flashare un ESP32S2 utilizzando ESP Flasher su Momentum o Unleashed è necessario il seguente Bootloader e la tabella delle partizioni. Inoltre, sono necessari i firmware bins che si trovano sotto le istruzioni qui elencate.

  1. Per prima cosa dobbiamo creare una nuova cartella in SD Card > apps_data > esp_flasher > S2bins, quindi possiamo inserire il bootloader.bin e il partitions.bin in questa nuova cartella sul Flipper Zero utilizzando qFlipper.

  2. Quindi si collega la scheda ESP32S2 o Developers al Flipper Zero e, una volta collegata, si riavvia il Flipper Zero.

  3. Quindi navigare nell'applicazione ESP Flasher.

Per Momentum è: Applicazioni > GPIO > ESP > ESP Flasher

Per Unleashed è: Applicazioni > GPIO > ESP Flasher

  1. Scorrere fino alla parte inferiore di ESP Flasher e vedere "Enter Bootloader", premere questo tasto e poi premere una volta il tasto indietro.

  2. Scorrere fino a "Manual Flash" e premere il centro.

  3. Selezionare "Bootlader (0x1000)" e selezionare il nostro bootloader nella directory S2Bins.

  4. Quindi selezionare "Part Table (0x8000)" e andare alla directory S2bins e selezionare "Partitions".

  5. Ora selezionare "FirmwareA (0x10000)" e poi selezionare il firmware personalizzato.

  6. Scorrere fino in fondo e selezionare "Flash - fast" e attendere il completamento della scrittura.

  7. Riavviare il Flipper dopo il flash e dopo essere usciti dall'applicazione ESP Flasher e il gioco è fatto.

Flashing su FEBERIS Pro utilizzando l'app ESP Flasher:

I passaggi sono gli stessi, tranne che non si selezionano i file del bootloader o la tabella delle partizioni (passaggi 1, 6 e 7).

  1. Collegare quindi la scheda ESP32S2 o Developers Board al Flipper Zero e, una volta collegata, riavviare il Flipper Zero.

  2. Passare all'applicazione ESP Flasher.

Su Momentum è: Applicazioni > GPIO > ESP > ESP Flasher

Su Unleashed è: Applicazioni > GPIO > ESP Flasher

  1. Scorrere quindi fino alla parte inferiore di ESP Flasher e vedere "Enter Bootloader" (Entrare nel Bootloader), quindi premere una volta il pulsante indietro.

  2. Scorrere fino a "Manual Flash" (Flash manuale), premere al centro.

  3. Ora selezionare "FirmwareA (0x10000)" e poi selezionare il firmware personalizzato.

  4. Scorrere fino in fondo e selezionare "Flash - fast" e attendere il completamento della scrittura.

  5. Riavviare il Flipper dopo il flash e dopo essere usciti dall'applicazione ESP Flasher e il gioco è fatto.

NOTA: è importante attendere qualche secondo e riavviare il Flipper Zero dopo aver collegato l'ESP32.

Firmware, FAP e codice sorgente

Firmware:

Pinescan e MultiSSID sono ora fusi nella versione 1.6.0 del firmware ufficiale di ESP32Marauder. Ciò significa che ora è possibile scaricare il firmware marauder direttamente da justcallmekoko e installarlo e flasharlo utilizzando le istruzioni qui o come si farebbe normalmente.

FAP:

Il FAP è aggiornato sia in momentum che nell'ultima dev build di unleashed, quindi è sufficiente scaricare e installare una dev build di entrambi i firmware (supponendo di aver aggiornato anche marauder alla versione 1.6.0 o superiore) per avere a disposizione le nuove opzioni. Non è necessario scaricare il firmware o i FAP collegati in questo articolo.

Codice sorgente:

Questo è stato unito al firmware ufficiale di ESP32Marauder. È possibile visualizzare la richiesta di PR [qui] che contiene il codice sorgente.

Riepilogo:

Oggi abbiamo esaminato le due nuove opzioni di sniffer e alcune piccole differenze che il WiFi Pineapple utilizza rispetto a un legittimo punto di accesso consumer. Inoltre, abbiamo trattato i metodi di rilevamento e ciò che cercano, insieme alle istruzioni per il flashing dei firmware e dei fap.

In definitiva, le nuove opzioni "pinescan" e "multissid" nel menu secondario dello sniffer possono essere un buon modo per rilevare un WiFi Pineapple solo quando utilizza il suo pool AP spoofed. Infatti, quando viene eseguito senza utilizzare il pool di AP spoofati, appare e funziona come una rete aperta legittima.

Tuttavia, è comune creare uno spoofing dei nomi delle reti a 2,4GHz e 5GHz (XYZ_2G e XYZ_5G) per far credere di connettersi alla propria rete a 5GHz, mentre in realtà ci si connette a una rete aperta a 2,4GHz.

L'accoppiamento con il FEBERIS Pro è stato fantastico a causa del 3dBi guadagno 2.4GHz Wireless Antenna mi ha dato una gamma molto più di quanto ho avuto in precedenza con un Dev Board Flipper.

E non sono nemmeno riuscito a provare gli altri 3 moduli radio integrati. Questo è ciò che rende questo strumento incredibilmente versatile.

Con questo ho praticamente concluso, e vorrei ringraziare tutti coloro che hanno contribuito a testare e raccogliere i dati dei radiofari da tutte le aree, da quelle residenziali a quelle commerciali. Grazie mille per aver letto questo articolo, spero che vi siano piaciuti l'articolo, il video e le nuove funzioni tanto quanto a me è piaciuto scriverlo, registrarlo e codificarlo.

Se volete acquistarne uno per voi o per un amico, potete utilizzare il mio codice sconto: AMEC0E su LAB401 per ottenere uno sconto del 5%.

Dichiarazione di non responsabilità

Manutenzione e miglioramenti del codice:

Come per ogni nuova funzionalità, potrebbero verificarsi problemi non riscontrati durante i test o dovuti a sviste da parte mia. Pertanto, il firmware, i FAP e il codice sorgente sono forniti "COSÌ COME SONO" senza alcuna garanzia. Né io (amec0e) né LAB401 saremo ritenuti responsabili di eventuali problemi o danni derivanti dall'uso di questi firmware o FAP. Inoltre, noi (amec0e e LAB401) non forniremo supporto, manutenzione o miglioramenti futuri per il firmware o i FAP (Flipper Application Packages).

Utilizzo del firmware: Né io (amec0e) né LAB401 saremo ritenuti responsabili per qualsiasi uso improprio o conseguenza indesiderata derivante dall'uso del firmware o dei FAP forniti. Questi sono distribuiti "COSÌ COME SONO" e sono utilizzati interamente A PROPRIO RISCHIO.

Responsabilità legale: L'utente è l'unico responsabile del rispetto di tutte le leggi e le normative locali applicabili. Non saremo ritenuti responsabili di eventuali conseguenze legali derivanti dalla mancata osservanza di tali norme. Questi firmware e FAP sono forniti esclusivamente a scopo didattico e di ricerca.

Risorse

Scheda tecnica C1101 - https://www.ti.com/lit/ds/symlink/cc1101.pdf

Documentazione di Feberis Pro - https://sapsan-docs.com/brands/sapsan/feberis-pro/docs/

Firmware di Feberis Pro - https://github.com/bpmcircuits/ESP32Marauder

Aggiornamento del firmware di Feberis Pro - https://www.youtube.com/watch?v=Gl7nSpI6l3w

Articolo precedente Conoscere le proprie carte magiche
Articolo successivo LightMessenger: Approfondimento sul debug con Derek

Lascia un commento

I commenti devono essere approvati prima di pubblicazione

* Campi obbligatori