APPROFONDIMENTI E NEWS

Hashcat: il tool indispensabile per il Password Cracking

Hai mai pensato che la tua password potesse essere scoperta in pochi secondi? Con Hashcat, il tool open-source più usato dagli hacker e dai penetration tester, è esattamente quello che può succedere. Questo software sfrutta la potenza delle GPU per mettere alla prova la robustezza delle credenziali: se la password è debole, cade subito; se è forte, resiste.

In questo articolo scoprirai cos’è Hashcat, come funziona, quali attacchi supporta e soprattutto come difenderti da chi lo utilizza.

salting password hashing

Cos’è Hashcat e perché è lo strumento più temuto nel Password Cracking

Quando si parla di cybersecurity ed Ethical Hacking, uno degli strumenti più potenti e diffusi è senza dubbio Hashcat. Utilizzato da penetration tester e professionisti della sicurezza, nasce come strumento per test di sicurezza, ma oggi è diventato uno standard sia per ethical hacker che per criminal hacker.

Con Hashcat puoi:

  • gestire oltre 200 algoritmi di hashing (da MD5 a SHA-256 fino a NTLM);
  • sfruttare la scheda video per calcoli ad altissima velocità;
  • lanciare diversi tipi di attacchi: dictionary, brute force, mask, hybrid, combinator, rule-based;
  • crackare più hash in parallelo.

Il risultato? Password deboli smascherate in un lampo e sistemi non aggiornati messi a nudo.

Hashing vs crittografia: quali sono le differenze

Molti usano i termini hashing e crittografia come fossero sinonimi. Non è così.

  • Crittografia: un dato cifrato può essere decifrato con la chiave corretta.
  • Hashing: un dato trasformato in hash non è reversibile.

Il sistema confronta hash, non password in chiaro. Ma se un attaccante ottiene la lista degli hash salvati, strumenti come Hashcat possono tentare di indovinarne l’origine.

Cos’è il Password Hashing?

Il password hashing è una delle tecniche fondamentali per proteggere le credenziali degli utenti. Si tratta del processo che trasforma una stringa alfanumerica (ad esempio una password) in una sequenza di lunghezza fissa, detta hash, generata attraverso una funzione di hashing.

Una funzione di hashing è un algoritmo matematico che:

  • riceve in input una password in chiaro,
  • la elabora secondo regole predefinite,
  • restituisce in output una stringa univoca e di lunghezza costante.

Caratteristiche principali del Password Hashing:

  • Irreversibilità: l’hash non può essere convertito nuovamente nella password originale. A differenza della crittografia, che può essere decifrata con la chiave corretta, il risultato di una funzione di hashing non è pensato per essere “letto” o invertito.
  • Determinismo: lo stesso input produrrà sempre lo stesso hash, consentendo di verificare una password confrontando semplicemente i valori hash senza conoscere la password reale.
  • Efficienza: le funzioni di hashing sono progettate per restituire rapidamente un risultato, caratteristica sfruttata sia dai sistemi di autenticazione che dagli attaccanti.

Esempio pratico:

  • Password originale: Password123
  • Hash MD5 generato: 42f749ade7f9e195bf475f37a44cafcb

In fase di login, il sistema non confronta la password in chiaro, ma calcola l’hash della password inserita dall’utente e lo confronta con quello salvato nel database.

Tuttavia, se un attaccante riesce a ottenere gli hash, può tentare di decifrarli con attacchi a dizionario, rainbow table o brute force utilizzando strumenti avanzati come Hashcat. Per questo motivo il semplice hashing non è sufficiente: è necessario adottare tecniche aggiuntive come il salting per rafforzarne la sicurezza.

Ecco perché le password nei database non dovrebbero mai essere salvate in chiaro, ma sempre tramite algoritmi di hashing come MD5, SHA-1 o SHA-256.

password hashing

Cos’è il salting e perché aiuta

Il termine salting rappresenta una tecnica per aumentare la sicurezza delle password. Consiste nell’aggiungere una stringa casuale di caratteri, chiamata “salt”, a una password prima che questa venga trasformata tramite un algoritmo unidirezionale di hashing.

Per rendere gli hash più resistenti si usa il salting: una stringa casuale aggiunta alla password prima del processo di hashing.

  • Senza salt → due utenti con la stessa password hanno lo stesso hash.
  • Con salt unico → ogni hash è diverso, anche per password uguali.

Il salting complica gli attacchi precalcolati (rainbow table), ma da solo non basta: serve anche una password lunga e complessa.

Ogni utente ha di solito un salt unico, che rende univoco anche l’hash della password, migliorandone la sicurezza. Tuttavia, il salting non sostituisce la necessità di password complesse, ma serve principalmente a rinforzarne la protezione.

Come installare Hashcat

Hashcat è compatibile con Linux, macOS e Windows, ma i passaggi per l’installazione variano in base al sistema operativo.

🔹 Kali Linux e Parrot OS

In distribuzioni dedicate al penetration testing come Kali Linux e Parrot OS, Hashcat è già preinstallato. Ti basta aprire il terminale e iniziare a utilizzarlo subito.

🔹 Ubuntu e distribuzioni Debian-based

Su sistemi Ubuntu o basati su Debian:

sudo apt update
sudo apt install hashcat

🔹 Windows

Su Windows l’installazione richiede qualche passaggio manuale:

Scaricare Hashcat

    • Vai sul sito ufficiale hashcat.net e scarica la versione più recente per Windows (solitamente un file ZIP).

Estrarre i file

    • Scompatta l’archivio ZIP in una cartella, ad esempio C:\Tools\hashcat.

Installare i driver compatibili

    • Per sfruttare appieno la potenza della GPU, installa i driver aggiornati della tua scheda video:
      • NVIDIA CUDA Toolkit per GPU NVIDIA.
      • AMD ROCm oppure driver OpenCL per GPU AMD.

Come funziona un attacco con Hashcat

Un tipico attacco con Hashcat prevede:

  1. Identificazione dell’algoritmo di hashing usato (es. MD5).
  2. Preparazione di un wordlist (ad esempio il popolare dizionario rockyou.txt).
  3. Esecuzione del tool con la modalità desiderata:

Tipi di attacco con Hashcat

Hashcat offre diverse modalità, ognuna con scopi precisi:

  1. Dictionary attack → confronta gli hash con un dizionario di password comuni (es. rockyou.txt).
  2. Brute force → prova tutte le combinazioni possibili (lento ma infallibile se hai tempo).
  3. Mask attack → utile se conosci parte della password (es. ?d?d?d?d2025 per PIN con anno).
  4. Rule-based → applica trasformazioni alle parole di un dizionario (es. sostituire “a” con “@”).
  5. Hybrid attack → unisce dizionario e brute force.
  6. Combinator → combina due liste di parole per creare nuove varianti.

Esempio pratico:

hashcat -m 0 -a 0 hashes.txt rockyou.txt

Con questo comando Hashcat confronterà gli hash presenti nel file con quelli generati a partire dal dizionario fornito. Se la password è debole, il risultato arriverà in pochi secondi.

hashcat

Hashcat e performance: quanto è veloce?

La vera forza di Hashcat sta nella GPU.

  • Una CPU standard prova migliaia di combinazioni al secondo.
  • Una GPU moderna (RTX 4090) può arrivare a centinaia di miliardi di hash al secondo su algoritmi veloci come MD5 o NTLM.

Tuttavia, funzioni più lente e memory-hard come bcrypt, PBKDF2 o Argon2 resistono molto meglio.
Ecco perché le aziende serie usano hashing “lento”: rende Hashcat quasi inutilizzabile.

Come difendersi dagli attacchi con Hashcat

L’efficacia di Hashcat dimostra quanto sia fondamentale adottare misure preventive solide per proteggere le proprie credenziali. Ecco alcune buone pratiche:

  • Creare password complesse e di lunga durata
    Utilizza combinazioni di lettere maiuscole e minuscole, numeri e caratteri speciali. Una password lunga e non prevedibile aumenta notevolmente il tempo necessario per un attacco.

  • Implementare il salting dinamico
    L’aggiunta di valori unici e variabili (salt) alle password rende inefficaci le rainbow table e complica ulteriormente il lavoro degli attaccanti. NB: Purtroppo Microsoft non implementa questo meccanismo, quindi non risulta disponibile nelle architetture Microsoft questa possibilità.

  • Abilitare l’autenticazione a più fattori (MFA)
    Anche in caso di compromissione della password, un secondo livello di verifica riduce drasticamente le possibilità di accesso non autorizzato.

L’educazione degli utenti rimane una leva insostituibile. Gli attacchi che sfruttano password deboli spesso si fondano su abitudini umane prevedibili: riuso delle stesse credenziali, utilizzo di password semplici o basate su informazioni personali, e scarsa attenzione al phishing. Promuovere l’uso di password manager, formazione continua e campagne di security awareness aiutano a ridurre la superficie d’attacco e rendere più efficaci le contromisure tecniche.

Conclusione

Conoscere strumenti come Hashcat è fondamentale non solo per gli ethical hacker, ma anche per i professionisti IT che vogliono proteggere le infrastrutture aziendali da minacce concrete.

Vuoi imparare a usare Hashcat in modo etico e professionale? Partecipa al nostro Corso Ethical Hacking Avanzato e scopri come trasformare teoria e pratica in competenze concrete per la cybersecurity.

Diventa protagonista della difesa informatica: trasforma la teoria in competenze pratiche pronte per essere applicate sul campo.

Promo ×