Hashcat è un tool incluso in Kali Linux, che permette di risalire alla
password degli utenti Linux partendo dal suo hash memorizzato nel file
shadow, che si trova nella cartella etc. Linux utilizza lo SHA-512 come
algoritmo di hash, unitamente alla funzione di
“salting” vista nella prima lezione.
Per effettuare il crack delle password dobbiamo entrare in possesso del
file shadow memorizzato sul pc della vittima. Ci sono diverse tecniche per
ottenerlo ma, non essendo l’argomento della presente guida, supponiamo di
esserne in possesso e di averlo salvato nella cartella etc di una nostra
macchina virtuale con Kali Linux.
Per visualizzare il file shadow, apriamo una Shell e digitiamo il comando seguente:
cat /etc/shadow | grep gaz
Dovremmo ritrovarci in una situazione simile alla seguente:
Commentiamo la stringa appena digitata:
-
/etc/shadow indica il percorso dove abbiamo salvato il file shadow
sottratto (nel nostro caso coincide con quello della macchina avviata); -
grep gaz
semplifica la visualizzazione al solo utente gaz; se vogliamo
visualizzare tutti gli utenti, possiamo ometterlo.
L’hash visualizzato è:
$6$92ohcoZIjcnjYmyd$oIdCGM.6j7oIHq/9/bfQ6sAZ6aTnfsNa7Z3zwpTUYPnutPB/2I/5d6IUABoVST0dI7YBHAYhAUXukd1xZWrAK0
Analizziamo l’output pezzo per pezzo:
-
$6
indica un hash SHA-512, come già sapevamo; -
la stringa
$92ohcoZIjcnjYmyd
indica che è un hash su cui è stata applicata la
funzione di Salting, come già sapevamo. -
oIdCGM.6j7oIHq/9/bfQ6sAZ6aTnfsNa7Z3zwpTUYPnutPB/2I/5d6IUABoVST0dI7YBHAYhAUXukd1xZWrAK0
è, infine, il nostro hash alterato dalla funzione di Salting.
Procediamo ora al cracking dell’hash trovato.
Copiamo per intero l’hash ottenuto in un file di testo, e posizioniamolo in
una cartella a piacimento. Nel nostro test, abbiamo creato il file hash.txt nella cartella
root.
Apriamo una shell e lanciamo questo comando:
hashcat --force -m 1800 -a 0 /root/hash.txt /root/dizionario.txt
Commentiamo la stringa appena digitata:
-
--force
serve esclusivamente se si utilizza Kali Linux su
una macchina virtuale; -
-m 1800
indica il tipo di hash da attaccare, nel nostro caso SHA-512; -
-a 0
specifica che vogliamo eseguire un attacco standard; - /root/hash.txt è il path del file contenete l’hash trovato;
-
/root/dizionario.txt è il dizionario che si intende utilizzare per
effettuare l’attacco.
Il risultato finale sarà come quello in figura:
La password per l'utente gaz è q2w3e4r5. È bene chiarire, comunque, che questa tecnica non vale
per l’utente root.
Si noti, inoltre, che un buon dizionario riduce i tempi di cracking. Conoscendo le
abitudini e gli hobby di una persona, si può creare un file dizionario.txt
contenete pochissime password e trovare quella giusta in pochi secondi.
Conclusioni
Se un hacker riesce a impadronirsi del nostro file shadow, non avrà molti problemi
a individuare le password degli utenti che utilizzano quel PC. Una vota in
possesso del file non ci sono contromisure significative da adottare. Si può
ritenere la password compromessa e inutilizzabile per quella determinata
utenza e per tutti gli altri possibili account (posta elettronica,
smartphone, archivi criptati) in cui era replicata per comodità. Ormai è in
cima al dizionario dell’hacker e sarà sempre la prima ad essere utilizzata
su ogni vostro account.
A questo punto dovrebbe essere chiaro che
l’utilizzo di password riconducibili al proprio nome, data di nascita,
squadra del cuore, auto preferita, nomi di figli e altro non è mai
una buona idea. Per tutti gli account sensibili è sempre meglio utilizzare
un generatore di password: ne esistono molti anche online, ed è sufficiente fare uno
sforzo per memorizzarla.
Nota: questa lezione ha puro scopo educativo, e tutti i test sono stati eseguiti in ambiente di laboratorio. Eventuali tentativi di replica su siti web o indirizzi IP pubblici costituiscono reato informatico.