Password cracking con John The Ripper: come funziona

John The Ripper scopre le password partendo dagli hash: due indicazioni per utilizzare il programma in Windows con WSL.

Quante volte ci siamo soffermati sull’importanza di creare password sicure e utilizzare algoritmi di hashing sufficientemente forti, non certo l’ormai obsoleto MD5.
Gli algoritmi di hashing sono funzioni crittografiche progettate per funzionare in un’unica direzione: quando si crea l’hash di una password non deve essere possibile risalire alla password originale.

È importante che anche i gestori di siti Web salvino le password utilizzando funzioni di hashing sicure: ne parliamo nell’articolo in cui spieghiamo come i siti online conservano le password, talvolta in modo non sicuro.

Essenziale è evitare algoritmi di hashing vulnerabili (già nel 2009 parlavamo delle vulnerabilità di MD5); nel 2017 Google ha dimostrato una collisione nell’algoritmo SHA-1 mentre SHA-256 resta oggi il punto di riferimento.

John The Ripper è un software libero che semplifica le attività di cracking delle password: partendo dagli hash è possibile provare a risalire alle password in chiaro. Utilizzare John The Ripper aiuta a capire ancor meglio perché le password devono essere lunghe e complesse nonché salvate con un algoritmo di hashing sicuro.

Una caratteristica interessante di John The Ripper è che il software può rilevare automaticamente l’algoritmo crittografico utilizzato per generare gli hash di ciascuna password.
La stessa utilità è in grado di tentare il password cracking usando un “dizionario” di parole utilizzate comunemente dagli utenti per proteggere i loro account. Conoscendo gli hash di ciascun elemento del dizionario, John The Ripper può risalire alle password originali anche per quegli algoritmi di hashing che non soffrono di alcuna vulnerabilità. Un dizionario molto usato è rockyou.txt: contiene più di 14 milioni di possibili password di uso più o meno comune.

Come usare John The Ripper in Windows con WSL e Kali Linux

Per provare subito John The Ripper in Windows 10 e Windows 11 basta digitare cmd nella casella di ricerca del sistema operativo, selezionare Esegui come amministratore quindi impartire il comando seguente:

wsl --install -d kali-linux

In questo modo viene attivata la possibilità di eseguire Linux in Windows all’interno di una finestra WSL (Windows Subsystem for Linux).

Dopo aver creato un account utente all’interno della distribuzione Kali Linux, si può impartire il comando seguente per aggiornare tutti i software della distribuzione:

sudo apt update && sudo apt upgrade -y

A questo punto è possibile scaricare e installare John The Ripper con il seguente comando:

sudo apt install john -y

Nella cartella home dell’utente si può scaricare il dizionario rockyou.txt.

Scrivendo il comando che segue, è possibile ottenere l’elenco degli algoritmi di hashing che John The Ripper è in grado di riconoscere e gestire:

john --list=formats

Le possibili modalità d’uso di John The Ripper sono quattro:

Single Crack Mode (Modalità a singolo crack)
In modalità single crack John The Ripper prende in considerazione una stringa e genera variazioni di quella stringa per ottenere un insieme di password.
In questa modalità si può digitare semplicemente quanto segue:

john --single hash.txt

In alternativa, si può anche specificare il formato dell’hash delle password, qualora lo si conoscesse:

john --single --format=raw-sha1 hash.txt

Il file hash.txt, ovviamente, contiene gli hash delle password che si desiderano riportare in chiaro.

Usando ad esempio la sintassi john --format=lm hash.txt è possibile risalire alle password degli account Windows memorizzate nel registro di sistema nel formato LM/NTLM (database SAM, Security Account Manager).

Word List Mode (Modalità dizionario)
In questa modalità John The Ripper prova tutti gli hash corrispondenti alle password già note inserite in un dizionario, salvato in locale come file di testo:

john --wordlist=rockyou.txt --format=raw-sha1 hash.txt

Si noti il riferimento al già citato dizionario rockyou.txt. Nell’esempio gli hash vengono indicati come di tipo SHA-1.

Incremental Mode (Modalità incrementale)
La modalità incrementale è la modalità più potente offerta da John The Ripper: quanto attivata, infatti, essa prova tutte le possibili combinazioni di caratteri per cercare di risalire alla password in chiaro.
Il cracking delle password può ovviamente richiedere molto tempo se la password è lunga o presenta una combinazione di caratteri alfanumerici e simboli. La sintassi da usare, in questo caso, è la seguente:

john --incremental hash.txt

External Mode (Modalità esterna)
In questo caso John The Ripper utilizza “funzioni personalizzate” sviluppate dall’utente stesso che permettono di rendere più specifica la ricerca della password corretta a partire dal suo valore hash.

Interessante è il tool zip2john che permette di estrarre l’hash delle password utilizzate a protezione di archivi compressi Zip e RAR.
Per utilizzarlo, ci si può servire della sintassi seguente:

zip2john file.zip > hash.txt

Dopo aver estrapolato l’hash, è possibile utilizzare le varie modalità descritte poco sopra per provare a risalire alla password utilizzata a protezione del file compresso.

Ti consigliamo anche

Link copiato negli appunti