Se amministri un computer Linux, le password dei suoi account sono la prima linea di difesa. Il modo più onesto per sapere se reggono è provare a indovinarle con gli stessi strumenti che userebbe un attaccante: John the Ripper, di Openwall, nasce proprio per questo e il suo scopo dichiarato è individuare le password Unix deboli. Questa guida ti porta da zero a un risultato concreto: un elenco degli account del tuo sistema la cui password è troppo facile da trovare, così da poterla cambiare. Resta tutto in casa: solo i tuoi account, solo il tuo computer. Verificare credenziali che non ti appartengono non è un audit, è un accesso non autorizzato.
I comandi di John riportati qui sono quelli della documentazione ufficiale di Openwall, elencata in fondo e consultata il 10 ottobre 2026.
Cosa serve
- Un computer con un sistema operativo Unix-like: John the Ripper è disponibile per molte varianti di Unix, macOS, Windows, DOS, BeOS e OpenVMS. Il flusso di questa guida, basato su
unshadow, è quello di un sistema Linux. - I privilegi di root sul tuo sistema, necessari per leggere il file delle password oscurate.
- John the Ripper installato dal pacchetto della tua distribuzione. John fa parte, tra gli altri, di Debian GNU/Linux, Fedora Linux, Gentoo Linux, SUSE Linux e di diverse altre distribuzioni.
- La consapevolezza che è uno strumento pensato per amministratori di sistema: la stessa FAQ di Openwall lo dice chiaramente.
Installare John the Ripper dal pacchetto della distribuzione
Puoi partire dal pacchetto della tua distribuzione, senza compilare nulla dai sorgenti: è la via con meno passaggi e meno occasioni di sbagliare. Secondo la pagina ufficiale di Openwall, John è incluso in Debian GNU/Linux, Fedora Linux, Gentoo Linux, SUSE Linux e in parecchie altre distribuzioni, oltre a essere nelle collezioni di port e pacchetti di FreeBSD, NetBSD e OpenBSD.
In pratica, apri un terminale e installa il pacchetto con il gestore del tuo sistema: su Debian e Ubuntu il pacchetto si chiama john e si installa con apt; su Fedora, openSUSE e le altre distribuzioni usa il rispettivo gestore. Questa parte segue la convenzione della tua distro, non le pagine di Openwall, perciò fai riferimento al manuale del tuo gestore per la sintassi esatta.
Un avvertimento importante: il pacchetto non basta in ogni caso. Secondo la FAQ di Openwall, il supporto dei vari tipi di hash dipende dalla versione e dalla build installate. Verifica quindi che la versione e la build del tuo pacchetto supportino gli hash usati dal tuo sistema. Se più avanti l’analisi si blocca con il messaggio «No password hashes loaded», tra le cause c’è proprio questa incompatibilità: la FAQ spiega che può servire una build diversa, eventualmente una versione jumbo, che aggiunge il supporto a molti altri tipi di hash. L’autodiagnosi del passo seguente non verifica questa compatibilità: conferma solo che le routine compilate funzionano.
A installazione finita, il comando john sarà richiamabile dal terminale. Se digitandolo ottieni «command not found», secondo la FAQ può dipendere dal fatto che la directory corrente non è nel tuo $PATH; con un pacchetto di distribuzione, però, l’eseguibile è normalmente già nel percorso di sistema.
Verificare che John funzioni con l’autodiagnosi
Prima di lavorare sui tuoi hash conviene accertarsi che tutto sia a posto. John include una batteria di test che controlla le routine di hashing e ne misura le prestazioni. Secondo la documentazione delle opzioni, --test prova tutti gli algoritmi compilati per verificarne il corretto funzionamento e li sottopone a benchmark.
john --test
È andata bene se i test scorrono senza segnalare errori, riportando per ciascun algoritmo le velocità misurate. La FAQ ricorda che John esegue comunque un autotest ogni volta che lo avvii su un file di password e si rifiuta di proseguire se trova un errore; --test serve a provare tutte le routine in una volta sola. Tieni presente, come detto sopra, che questo controllo non dice nulla sul fatto che gli hash del tuo sistema siano fra quelli supportati.
Preparare il file degli hash del tuo sistema con unshadow
Su Linux le password non stanno in chiaro: gli hash vivono in /etc/shadow, leggibile solo da root, mentre /etc/passwd contiene i dati degli account. John lavora meglio quando ha entrambi: l’utility unshadow li combina in un unico file in stile passwd. Con i due file uniti puoi anche sfruttare le informazioni del campo «nome completo» nella modalità «single crack» e usare i filtri per gruppo e shell.
Attenzione. Il file che stai per creare raccoglie gli hash delle password di tutti gli account del tuo computer: è materiale sensibile. I due comandi vanno eseguiti come root e solo sul sistema che amministri. Il comando
umask 077va dato prima ed è ciò che rende il file prodotto leggibile e scrivibile dal solo proprietario: non saltarlo. Tieni il file al sicuro, non copiarlo su macchine condivise e cancellalo quando hai finito l’audit. Qui/etc/passwde/etc/shadowsono i file reali del tuo sistema emypasswdè il nome del file che stai creando: puoi chiamarlo diversamente, ma usa lo stesso nome nei comandi successivi.
umask 077
unshadow /etc/passwd /etc/shadow > mypasswd
Secondo la documentazione con gli esempi, dopo questo passaggio puoi rendere mypasswd disponibile all’account non-root con cui farai girare John, così da non dover più usare root. Attenzione, però: creato con umask 077 da root, il file resta leggibile solo da root. Per usarlo da utente normale devi assegnarne la proprietà al tuo utente (con gli strumenti di sistema per cambiare il proprietario di un file); in alternativa, sul tuo computer puoi semplicemente continuare a lanciare John come root. È andata bene se il file mypasswd esiste e contiene una riga per ciascun account.
Avviare l’analisi dalla modalità single
La documentazione consiglia di cominciare dalla modalità «single crack», quella più rapida ed efficace per smascherare le password derivate da informazioni dell’utente, come il nome di login. È il punto di partenza sensato.
john --single mypasswd
Man mano che trova corrispondenze, John le stampa a video e le salva in $JOHN/john.pot (la «home» di John, la cui posizione dipende da come l’hai installato). Questa modalità, dice la FAQ, dura in genere da meno di un secondo a un giorno, a seconda del tipo e del numero di hash. Se hai più file di password da controllare, la documentazione suggerisce di passarli insieme nello stesso comando: John va più veloce e può persino trovare qualche password in più rispetto a lanciarlo su un file alla volta.
Proseguire con l’esecuzione normale e la modalità wordlist
Per pescare password deboli non legate ai dati personali servono modalità che impegnano più CPU. Lanciando John senza specificare una modalità, parte l’ordine predefinito: prima «single crack», poi la wordlist con le regole, infine la modalità «incremental».
john mypasswd
Puoi anche limitarti alla modalità wordlist con le regole di mangling (le trasformazioni che da una parola generano molte varianti). La documentazione usa password.lst, la piccola wordlist fornita insieme a John. Attenzione al percorso: nel comando il file è indicato senza cartella, quindi John lo cerca nella directory corrente. Installando John dal pacchetto della distribuzione la wordlist viene però collocata altrove — su Debian, per esempio, in /usr/share/john/password.lst — e il comando così com’è può fallire perché non trova il file. Scrivi quindi al posto di password.lst il percorso effettivo del file installato dal tuo pacchetto. Nella sua forma di esempio il comando è:
john --wordlist=password.lst --rules mypasswd
La durata qui è molto variabile: da meno di un secondo a diversi giorni, a seconda della wordlist, delle regole, del tipo di hash e del numero di «sali» distinti. Openwall raccomanda di procurarsi una wordlist più ampia della password.lst di default e offre a questo scopo la propria raccolta di wordlist. Tieni presente che la modalità «incremental», con cui termina l’esecuzione predefinita, non è pensata per concludersi in un tempo ragionevole: sei tu a decidere quando fermarti.
Interrompere e riprendere l’analisi
Mentre John lavora puoi premere un tasto qualsiasi per vedere lo stato, oppure q o Ctrl-C per fermarlo: lo stato della sessione viene salvato (per impostazione predefinita in $JOHN/john.rec). Se premi Ctrl-C una seconda volta prima che John finisca di gestire la prima interruzione, chiude subito senza salvare.
Per riprendere una sessione interrotta, secondo il README, basta il comando di ripristino:
john --restore
John riparte da dove si era fermato, leggendo le informazioni di stato dal file di sessione.
Leggere l’esito e capire quali password cambiare
Il file john.pot non è pensato per essere letto a occhio: per vedere le password trovate in forma comoda si usa John stesso. Questo comando mostra, per il file indicato, le password già decifrate.
john --show mypasswd
Ogni account che compare qui ha una password che John è riuscito a indovinare: nel contesto del tuo audit significa che è troppo debole. Queste sono le credenziali da cambiare subito, scegliendo password lunghe e non derivate da parole o dati personali. Per non doverle ricordare a memoria conviene affidarle a un gestore di password: se parti da zero, puoi seguire la nostra guida a Bitwarden.
Prima di considerare «solidi» gli account che non compaiono nell’elenco, però, fai una verifica essenziale: accertati che i relativi hash siano stati davvero caricati e analizzati. Se mypasswd contiene più tipi di hash, l’esecuzione predefinita può analizzarne uno solo: la documentazione delle opzioni spiega che per gli altri tipi servono esecuzioni separate, indicando il formato con l’opzione --format seguita dal nome del formato supportato. Solo per le password effettivamente esaminate puoi poi valutare se il tempo e i tentativi che hai concesso all’analisi siano stati sufficienti: una password non trovata ma mai analizzata non è una password robusta, è solo una password che non hai ancora controllato.
Se qualcosa va storto
- «No password hashes loaded» (o «No password hashes left to crack»): secondo la FAQ, il file potrebbe essere ancora oscurato e serve unire
/etc/passwde/etc/shadowconunshadow, come visto sopra. Quegli hash potrebbero anche essere già stati decifrati in sessioni precedenti: usa--showper vederli, oppure rimuovi il filejohn.potper rifarli daccapo. Infine, come detto in fase di installazione, il tipo di hash del tuo sistema potrebbe non essere supportato dalla versione e dalla build installate: in quel caso può servire una build diversa, eventualmente jumbo. - «command not found» digitando
john: la FAQ lo attribuisce all’assenza della directory corrente nel$PATH. Con il pacchetto della distribuzione l’eseguibile è di norma già nel percorso; verifica che l’installazione sia andata a buon fine. - L’analisi non finisce mai: è normale. La modalità «incremental» non è concepita per terminare in tempi umani. Osservi il calo del tasso di successo e, quando è abbastanza basso, interrompi la sessione.
Documentazione di riferimento
Pagine ufficiali di Openwall usate per questa guida, consultate il 10 ottobre 2026:
- John the Ripper password cracker — pagina ufficiale (cos’è, download, pacchetti).
- John the Ripper: README.
- John the Ripper: opzioni della riga di comando (OPTIONS).
- John the Ripper: esempi d’uso (EXAMPLES).
- John the Ripper: FAQ.