Hashcat è lo strumento di cracking per eccellenza, permette di fare molte più operazioni rispetto a John The Ripper e di crackare molti più hash, l’utilizzo di base è il seguente:
hashcat -m <tipo di hash> <file degli hash> <wordlist> [opzioni]
#Esempio di crack hash NTLM con un wordlist
hashcat -m 1000 hash.txt /usr/share/wordlists/rockyou.txt
Trovare il numero di algoritmo da craccare:
Il tipo di algoritmo lo trovi tramite questo sito
man hashcat | grep -i <nome algoritmo>
#Esempio
man hashcat | grep -i bcrypt
3200 | bcrypt $2*$, Blowfish (Unix) | Operating System
25600 | bcrypt(md5($pass)) / bcryptmd5 | Forums, CMS, E-Commerce
25800 | bcrypt(sha1($pass)) / bcryptsha1 | Forums, CMS, E-Commerce
28400 | bcrypt(sha512($pass)) / bcryptsha512 | Forums, CMS, E-CommerceAttacco dizionario (-a 0)
Confronta ogni parola della wordlist con l’hash:
hashcat -m 1000 --force hash.txt /usr/share/wordlists/rockyou.txt -a 0Più efficace se la password è comune.
Attacco brute-force (-a 3)
Genera password in base a pattern definiti:
hashcat -m 1000 hash.txt -a 3 --force ?d?d?d?d?d?d?d?dIn questo caso crei parole che hanno 8 cifre
In quest’altro caso invece generiamo parole di 5 caratteri che iniziano con una maiuscola e finiscono con un simbolo:
hashcat -m 1000 hash.txt -a 3 --force ?u?l?l?l?s?d= Digito numerico (0-9).?l= Lettera minuscola (a-z).?u= Lettera maiuscola (A-Z).?s= Carattere speciale (!@#$%^&*).
Utile quando conosci il formato della password, ma non il valore preciso.
Attacco combinato (-a 1)
Unisce due parole della wordlist:
hashcat -m 1000 hash.txt /usr/share/wordlists/rockyou.txt /usr/share/wordlists/names.txt -a 1Utile se la password è composta da più parole.
Attacco ibrido (dizionario + brute-force, -a 6 e -a 7)
Aggiunge caratteri generati alla parola del dizionario:
hashcat -m 1000 hash.txt /usr/share/wordlists/rockyou.txt ?d?d -a 6Utile per password con suffissi numerici, es. “password123”.
Come in John The Ripper le password vengono salvate in un file che si chiama ~/.hashcat/hashcat.potfile, è anche possibile recuperare il contenuto dell’hash utilizzando la flag --show su un file hash già crackato a patto che sia ancora nel file hashcat.potfile, come nel seguente esempio:
#Esempio di comando per craccare un hash:
hashcat -m 1000 hash.txt /usr/share/wordlists/rockyou.txt
#Come riottenere il contenuto dell'hash:
hashcat -m 1000 hash.txt --show