Come decifrare le password usando lo strumento Hashcat?

Nell’hacking etico e nei test di penetrazione, il cracking delle password è fondamentale per ottenere l’accesso a un sistema o a un server.

Nei sistemi e nei database, le password vengono raramente salvate in formato testo normale.

Le password vengono sempre sottoposte a hash prima di essere archiviate nel database e l’hash viene confrontato durante il processo di verifica.

A seconda della crittografia utilizzata, diversi sistemi memorizzano gli hash delle password in modi diversi. E se hai hash, puoi facilmente decifrare qualsiasi password.

E in questo articolo, esploreremo come decifrare gli hash delle password utilizzando un pratico ed eccellente strumento da riga di comando Hashcat.

Quindi iniziamo.

Ma prima ancora…

Che cos’è una funzione hash?

L’hashing è il processo di conversione di un normale testo di input in una stringa di testo di dimensioni fisse utilizzando una funzione matematica nota come funzione hash. Qualsiasi testo, indipendentemente dalla lunghezza, può essere trasformato in una combinazione casuale di numeri interi e alfabeti utilizzando un algoritmo.

  • L’input si riferisce al messaggio che verrà sottoposto a hash.
  • La funzione hash è l’algoritmo di crittografia come MD5 e SHA-256 che converte una stringa in un valore hash.
  • E infine, il valore hash è il risultato.

Cos’è Hashcat?

Hashcat è lo strumento di recupero password più veloce. È stato progettato per rompere le password complesse in un breve lasso di tempo. E questo strumento è anche in grado di eseguire sia elenchi di parole che attacchi di forza bruta.

Hashcat ha due varianti. Basato su CPU e GPU (Graphical Processing Unit). Lo strumento basato su GPU può decifrare gli hash in meno tempo rispetto alla CPU. Puoi controllare i requisiti del driver della GPU sul loro sito Web ufficiale.

Caratteristiche

  • Gratuito e open source
  • È possibile implementare più di 200 variazioni del tipo di hash.
  • Supporta sistemi multi-operativi come Linux, Windows e macOS.
  • Sono disponibili multipiattaforme come il supporto per CPU e GPU.
  • È possibile violare più hash contemporaneamente.
  • Sono supportati i file hex-salt e hex-charset, insieme all’ottimizzazione automatica delle prestazioni.
  • È disponibile un sistema di benchmarking integrato.
  • Le reti di cracking distribuito possono essere supportate utilizzando gli overlay.

E puoi vedere altre funzionalità anche dal loro sito web.

Installazione di Hashcat

Innanzitutto, assicurati che il tuo sistema Linux sia aggiornato con i programmi e gli strumenti più recenti.

Per questo, apri un terminale e digita:

$ sudo apt update && sudo apt upgrade

Hashcat è solitamente preinstallato in Kali Linux. Puoi trovare lo strumento nella sezione cracking della password. Ma se hai bisogno di installarlo manualmente in qualsiasi distribuzione Linux, digita il seguente comando nel terminale.

$ sudo apt-get install hashcat

Utilizzo degli strumenti

Per iniziare con Hashcat, avremo bisogno di alcuni hash delle password. Se non hai un hash da decifrare, creeremo prima alcuni hash.

Per creare hash utilizzando la riga di comando, segui semplicemente il formato seguente.

echo -n "input" | algorithm | tr -d "-">>outputfiename

Ad esempio, puoi vedere che ho trasformato alcune parole in hash usando l’algoritmo md5 di seguito.

┌──(root💀kali)-[/home/writer/Desktop]
└─# echo -n "winadmin.it" | md5sum | tr -d "-">>crackhash.txt
echo -n "password123" | md5sum | tr -d "-">>crackhash.txt
echo -n "Webtechnology" | md5sum | tr -d "-">>crackhash.txt
echo -n "microsoftteams" | md5sum | tr -d "-">>crackhash.txt
echo -n "recyclebin" | md5sum | tr -d "-">>crackhash.txt

E l’output verrà salvato nel file crackhash.txt.

Ora controlleremo gli hash che sono stati salvati nel file specificato.

┌──(root💀kali)-[/home/writer/Desktop]
└─# cat crackhash.txt

066d45208667198296e0688629e28b14
482c811da5d5b4bcd497ffeaa98491e3
72a2bc267579aae943326d17e14a8048
2192d208d304b75bcd00b29bc8de5024
caae8dd682acb088ed63e2d492fe1e13

Puoi vedere, ora abbiamo alcuni hash da decifrare. Questa è la procedura per creare un hash utilizzando l’algoritmo di tua scelta.

Il prossimo passo è avviare uno strumento Hashcat nella tua macchina Linux. Basta usare il seguente comando per usare Hashcat.

$ hashcat --help

Verranno visualizzate tutte le opzioni necessarie per eseguire lo strumento. Sul terminale puoi trovare tutte le modalità di attacco e hash.

La forma generale del comando è

$ hashcat -a num -m num hashfile wordlistfile

Qui il ‘num’ rappresenta una specifica modalità di attacco e hash da utilizzare. Se scorri il terminale, puoi trovare i numeri esatti per ogni attacco e modalità hash, come per md4 – il numero è 0, e per l’algoritmo sha256 – il numero è 1740.

La lista di parole che userò è la lista di parole rockyou. Puoi facilmente trovare quella lista di parole nel percorso /usr/share/liste di parole.

Puoi anche usare il comando locate per trovare il percorso dell’elenco di parole.

┌──(root💀kali)-[/home/writer]
└─# locate rockyou.txt

E infine, per decifrare gli hash usando il file wordlist, usa il comando seguente.

$ hashcat -a 0 -m 0 ./crackhash.txt rockyou.txt

Dopo aver eseguito questo comando, è possibile che venga visualizzato un errore di runtime ( Errore di eccezione della lunghezza del token ) che può essere risolto facilmente.

Per risolvere questo problema, salva ogni hash separatamente in un file diverso. Questo errore si verifica se la velocità della CPU o della GPU è bassa. Se il tuo computer ha un processore ad alta velocità, puoi facilmente decifrare tutti gli hash contemporaneamente come un singolo file stesso.

Quindi, dopo aver corretto l’errore e tutto il resto, il risultato sarà così.

┌──(root💀kali)-[/home/writer/Desktop]
└─# hashcat -a 0 -m 0 hashcrack.txt rockyou.txt
hashcat (v6.1.1) starting...

OpenCL API (OpenCL 1.2 pocl 1.6, None+Asserts, LLVM 9.0.1, RELOC, SLEEF, DISTRO, POCL_DEBUG) - Platform #1 [The pocl project]
=============================================================================================================================
* Device #1: pthread-Intel(R) Core(TM) i5-8265U CPU @ 1.60GHz, 2403/2467 MB (1024 MB allocatable), 4MCU

Minimum password length supported by kernel: 0
Maximum password length supported by kernel: 256

Hashes: 1 digests; 1 unique digests, 1 unique salts
Bitmaps: 16 bits, 65536 entries, 0x0000ffff mask, 262144 bytes, 5/13 rotates
Rules: 1

Dictionary cache built:
* Filename..: rockyou.txt
* Passwords.: 14344405
* Bytes.....: 139921671
* Keyspace..: 14344398
* Runtime...: 1 sec

8276b0e763d7c9044d255e025fe0c212: [email protected]
                                                 
Session..........: hashcat
Status...........: Cracked
Hash.Name........: MD5
Hash.Target......: 8276b0e763d7c9044d255e025fe0c212
Time.Started.....: Sun Dec 12 08:06:15 2021 (0 secs)
Time.Estimated...: Sun Dec 12 08:06:15 2021 (0 secs)
Guess.Base.......: File (rockyou.txt)
Guess.Queue......: 1/1 (100.00%)
Speed.#1.........:  1059.6 kH/s (0.52ms) @ Accel:1024 Loops:1 Thr:1 Vec:8
Recovered........: 1/1 (100.00%) Digests
Progress.........: 4096/14344398 (0.03%)
Rejected.........: 0/4096 (0.00%)
Restore.Point....: 0/14344398 (0.00%)
Restore.Sub.#1...: Salt:0 Amplifier:0-1 Iteration:0-1
Candidates.#1....: 123456 -> pampam

Started: Sun Dec 12 08:06:13 2021
Stopped: Sun Dec 12 08:06:16 2021

Nel risultato precedente, dopo i dettagli della cache del dizionario, puoi notare che l’hash è stato violato e la password è stata rivelata.

Conclusione

Spero che tu abbia acquisito una migliore comprensione dell’uso di Hashcat per decifrare le password.

Potresti anche essere interessato a conoscere i vari strumenti di forza bruta per i test di penetrazione e alcuni dei migliori strumenti di pentesting.