Networking – Alla ricerca di reti Wi-Fi con ESP32

networking ESP32

Utilizziamo il nostro piccolo ESP32 come un potente strumento di networking, trasformandolo in un grazioso scanner tascabile per reti wi-fi.

Una delle principali caratteristiche della polimorfica board ESP32, è la capacità di collegarsi in rete wireless senza difficoltà, o addirittura creare access point per computer terzi. Contrariamente ad Arduino, infatti, questa scheda possiede un chip predisposto per la connessione in rete, ed ha potenza e memoria sufficiente per gestirla a dovere.

Ma le sue minuscole dimensioni lo portano anche ad essere montato su minuscoli PCB, magari con un piccolo display OLED da un pollice. Le caratteristiche di low-power gli consentono di essere facilmente pilotato da una piccola batteria, e nascosto all’interno di un contenitore stampato in 3D. In questa configurazione il nostro ESP32 potrebbe funzionare non già come un client di rete, bensì come uno sniffer in grado di indicarci al volo quali reti wireless siano presenti in un dato momento, e quante siano aperte

Il setup

La sezione di setup del programma è semplicissima: si include la libreria per la connessione, quindi si inizializza il monitor seriale, si attiva il sistema ricetrasmittente in modalità station, ci si disconnette da un (eventuale) access point presente nei paraggi, e si stampa un messaggio di successo sul monitor seriale.

Siamo pronti ad esegiuire la nostra scansione.

Il loop

Iniziamo la scansione annunciandoci con un messaggio sulla console.

il metodo .scanNetworks() riporta il numero di reti rintracciate dal nostro apparato.

Se  non troviamo reti nei dintorni scriviamo un messaggio di alert sulla console, in caso contrario, stampiamo un numero sequenziale collegato alla rete, l’SSID, l’RSSI e, se presente, l’indicazione di rete cifrata. Volendo, si potrebbe anche estrapolare il canale di trasmissione WiFi, la stringa PSK, il MAC… Si tratta di informazioni previste dalla libreria utilizzata, ma non inserite (per ragioni di sicurezza) all’interno dell’esempio.

Considerazioni finali

E voila, il progetto è servito. Potremo renderlo indipendente dal monitor seriale utilizzando un piccolo display, o scrivere il nostro programma di “ricerca ed ascolto” non appena trovata la rete accessibile. Con poche righe di codice diventa possibile creare un software MITM (man in the middle) da portare in tasca, in grado di reindirizzare automaticamente i pacchetti, o fingersi qualcun altro, senza nemmeno dover aprire un PC portatile.

Con buona pace dei telefilm americani…

 

Join our groups on Telegram…

… and don’t forget our social channels!

Definire ciò che si è non risulta mai semplice o intuitivo, in specie quando nella vita si cerca costantemente di migliorarsi, di crescere tanto professionalmente quanto emotivamente. Lavoro per contribuire al mutamento dei settori cardine della computer science e per offrire sintesi ragionate e consulenza ad aziende e pubblicazioni ICT, ma anche perche’ ciò che riesco a portare a termine mi dà soddisfazione, piacere. Così come mi piace suonare (sax, tastiere, chitarra), cantare, scrivere (ho pubblicato 350 articoli scientfici e 3 libri sinora, ma non ho concluso ciò che ho da dire), leggere, Adoro la matematica, la logica, la filosofia, la scienza e la tecnologia, ed inseguo quel concetto di homo novus rinascimentale, cercando di completare quelle sezioni della mia vita che ancora appaiono poco ricche.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.