Torna al blog
February 08, 202610 min

Cracking degli hash MD5, SHA1, SHA256: guida completa per pentester

Tutto quello che devi sapere sul cracking degli hash delle password nel 2026. Dalla comprensione degli algoritmi di hashing alla scelta del metodo di cracking più adatto, questa guida copre MD5, SHA1, SHA256 e oltre, pensata per penetration tester e ricercatori di sicurezza.

Guida al cracking degli hash MD5, SHA1 e SHA256 per pentester

Il cracking degli hash è una competenza fondamentale per i penetration tester. Che tu abbia estratto hash di password da un database compromesso, catturato hash NTLM durante una valutazione di rete o recuperato credenziali in forma di hash da file di configurazione, saper recuperare in modo efficiente le password in chiaro è essenziale per dimostrare l’impatto e proseguire nella tua attività di valutazione.

Comprendere l'hashing delle password

Prima di addentrarci nelle tecniche di cracking, cerchiamo di capire perché le password vengono innanzitutto sottoposte a hashing. Quando crei un account su un sito web, la tua password non dovrebbe essere memorizzata in chiaro. Invece, viene elaborata da una funzione di hash crittografica che produce una stringa di caratteri di lunghezza fissa.

Le funzioni di hash sono progettate per essere a senso unico: facili da calcolare in una direzione ma computazionalmente impossibili da invertire. Quando effettui il login, il sistema esegue l’hash del tuo input e lo confronta con l’hash memorizzato — non ha mai bisogno di conoscere la tua password reale.

Proprietà fondamentali delle funzioni di hash
  • Deterministico - Lo stesso input produce sempre lo stesso output
  • Lunghezza di output fissa - Indipendentemente dalla dimensione dell’input, l’output ha sempre la stessa lunghezza
  • Effetto valanga - Piccole variazioni in ingresso producono risultati drasticamente diversi
  • Resistenza alla pre-immagine - Dato un hash, deve essere impossibile (o estremamente difficile) trovare l’input originale
  • Resistenza alle collisioni - Deve essere impossibile, in pratica, trovare due input che producano lo stesso hash
Tipi di hash più comuni spiegati

Sistemi diversi utilizzano algoritmi di hashing differenti. Riconoscere il tipo di hash è il primo passo in qualsiasi tentativo di cracking. Ecco i più comuni che incontrerai durante i test di penetrazione.

MD5 (Message Digest 5)

MD5 produce un hash a 128 bit (32 caratteri esadecimali). Nonostante sia considerato crittograficamente insicuro, è ancora ampiamente utilizzato nei sistemi legacy.

  • Lunghezza: 32 caratteri esadecimali
  • Esempio: 5f4dcc3b5aa765d61d8327deb882cf99
  • Stato: Crittograficamente compromesso, facile da violare
SHA1 (Secure Hash Algorithm 1)

SHA1 produce un hash a 160 bit (40 caratteri esadecimali). È anch’esso considerato insicuro per scopi crittografici, ma si trova ancora in molte applicazioni.

  • Lunghezza: 40 caratteri esadecimali
  • Esempio: 5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8
  • Stato: Deprecato, sono state dimostrate collisioni
SHA256 (famiglia SHA-2)

SHA256 produce un hash a 256 bit (64 caratteri esadecimali). Fa parte della famiglia SHA-2, al momento è considerato sicuro ed è ampiamente utilizzato.

  • Lunghezza: 64 caratteri esadecimali
  • Esempio: 5e884898da28047d9165...a1b4c8fcbd
  • Stato: Attualmente sicura, più lenta da violare
SHA384 e SHA512

Varianti più grandi di SHA-2 con output rispettivamente a 384 bit (96 caratteri) e 512 bit (128 caratteri). Più sicure, ma anche più impegnative dal punto di vista computazionale.

Hash di MySQL

MySQL utilizza propri formati di hash per l’archiviazione delle password.

  • MySQL3: hash a 16 caratteri (vecchio, molto debole)
  • MySQL5: hash di 40 caratteri che inizia con * (ad es. *2470C0C06DEE42FD1618BB...)
bcrypt, scrypt e Argon2

Moderni algoritmi di hashing delle password progettati specificamente per l’archiviazione delle password. Includono un salting integrato e sono intenzionalmente lenti per resistere agli attacchi di forza bruta.

  • bcrypt: Inizia con $2a$, $2b$, oppure $2y$
  • Argon2: Vincitore del Password Hashing Competition, inizia con $argon2
Come identificare i tipi di hash

Identificare il tipo di hash è fondamentale prima di provare a decifrarlo. Ecco i principali indicatori da tenere in considerazione.

Per lunghezza
  • 16 caratteri — MySQL3, metà MD5
  • 32 caratteri — MD5, NTLM, MD4
  • 40 caratteri — SHA1, MySQL5 (con *)
  • 64 caratteri — SHA256, SHA3-256
  • 96 caratteri — SHA384
  • 128 caratteri — SHA512, Whirlpool
Per prefisso
  • $1$ - MD5 (Unix crypt)
  • $2a$, $2b$, $2y$ - bcrypt
  • $5$ - SHA256 (Unix crypt)
  • $6$ - SHA512 (Unix crypt)
  • * - MySQL5
  • $argon2i$, $argon2id$ - Argon2
Identificatori di hash online

In caso di dubbio, usa strumenti di identificazione degli hash. Strumenti come hashid, hash-identifier o servizi online possono analizzare un hash e suggerire i possibili algoritmi utilizzati.

Confronto tra i metodi di cracking degli hash

Esistono diversi approcci per recuperare il testo in chiaro a partire dagli hash. Ognuno ha i propri punti di forza e casi d’uso ideali.

1. Attacchi a dizionario

L’approccio più comune. Esegui l’hash di ogni parola in una wordlist e la confronti con l’hash di destinazione. Efficace contro le password deboli.

  • Pro: Veloce, efficace contro le password comuni
  • Contro: Funziona solo se la password è presente nella wordlist
  • Ideale per: Password comuni, elenchi di password trapelate
2. Forza bruta

Prova sistematicamente ogni possibile combinazione di caratteri. Garantisce di trovare prima o poi la password, ma può richiedere un tempo impossibilmente lungo per le password complesse.

  • Pro: Troverà qualsiasi password dato abbastanza tempo
  • Contro: Estremamente lento per password lunghe o complesse
  • Ideale per: Password brevi, insiemi di caratteri noti
3. Tabelle Rainbow

Tabelle precomputate di associazioni hash–testo in chiaro. Scambiano spazio di archiviazione con tempo di calcolo. Offrono ricerche estremamente rapide ma richiedono enormi quantità di memoria.

  • Pro: Ricerche molto veloci, nessun calcolo necessario
  • Contro: Enormi requisiti di archiviazione, reso inefficace dall’uso del salting
  • Ideale per: Hash non salate, sistemi legacy
4. Attacchi basati su regole

Applica regole di trasformazione alle parole del dizionario (ad es. rendi maiuscola la prima lettera, aggiungi numeri, sostituisci caratteri). Aumenta drasticamente la copertura.

  • Pro: Rileva i modelli di password più comuni (Password1!, p@ssw0rd)
  • Contro: Più lento rispetto agli attacchi basati esclusivamente su dizionario
  • Ideale per: Ambienti aziendali, password conformi alle policy
5. Servizi di dehashing online

Servizi che mantengono enormi database di hash già decifrati. Ti basta inviare il tuo hash e otterrai immediatamente il testo in chiaro, se è presente nel loro database.

  • Pro: Risultati immediati, nessun hardware necessario, miliardi di hash
  • Contro: Funziona solo per le password già violate
  • Ideale per: Prima fase di cracking, password comuni, liste di hash in grandi quantità
Panoramica degli strumenti: i tre grandi

Confrontiamo gli strumenti più popolari per il cracking degli hash delle password.

Hashcat

Lo strumento di recupero password più veloce al mondo. Sfrutta l’accelerazione GPU per raggiungere velocità incredibili. Supporta oltre 300 tipi di hash.

  • Velocità: Miliardi di hash al secondo con le GPU moderne
  • Requisiti: GPU potente (NVIDIA/AMD), consumo energetico elevato
  • Curva di apprendimento: Da moderata a ripida
  • Costo: Software gratuito, ma richiede hardware costoso
John l’Acchiappatore

Classico strumento per il cracking di password con un eccellente rilevamento dei formati. Basato sulla CPU per impostazione predefinita, ma supporta anche l’accelerazione GPU tramite OpenCL.

  • Velocità: Più lento di Hashcat sulle GPU, competitivo sulle CPU
  • Requisiti:Funziona su qualsiasi hardware
  • Curva di apprendimento: Moderata
  • Miglior funzionalità: Rilevamento automatico del tipo di hash
Dehasher online (HPlus, ecc.)

Servizi basati sul cloud con enormi database pre-calcolati. Nessun hardware richiesto, risultati istantanei per gli hash già noti.

  • Velocità: Ricerca istantanea (millisecondi)
  • Requisiti:Solo connessione a Internet
  • Curva di apprendimento: Nessuna
  • Caratteristica migliore: Miliardi di hash già decifrati disponibili all’istante
Confronto di velocità: GPU vs ricerca nel database

Mettiamo le differenze di prestazioni in prospettiva con scenari reali.

Scenario: Craccare 10.000 hash MD5
  • Hashcat (RTX 4090): Da ore a giorni, tasso di successo del 60-80%
  • John the Ripper (CPU): Da giorni a settimane, tasso di successo del 50-70%
  • Tabelle Rainbow: Minuti, tasso di successo del 40-60%
  • Dehasher online (HPlus): 2 secondi, tasso di successo 70-85%

Il tasso di successo dipende dalla complessità della password. Le password comuni hanno tassi più elevati.

L’idea fondamentale è: inizia sempre con una ricerca nel database. Se la password è già stata violata in passato ed è finita nel database di un servizio di dehashing, ottieni risultati immediati. Ricorri al cracking tramite GPU solo per hash unici, mai visti prima.

Il flusso di lavoro ottimale per il cracking

I pentester professionisti seguono un approccio sistematico per massimizzare i risultati riducendo al minimo il tempo impiegato.

Passaggio 1: Identificare i tipi di hash

Ordina i tuoi hash per tipo. Algoritmi diversi richiedono approcci differenti e hanno tassi di successo diversi.

Passaggio 2: prima la ricerca online

Invia tutti gli hash a un servizio di dehashing online come HPlus. Ci vogliono pochi secondi e riuscirai a decifrare istantaneamente il 70-85% delle password comuni. Perché sprecare ore di GPU su password che sono già in un database?

Passaggio 3: Attacco a dizionario sui rimanenti

Per gli hash non trovati nel passaggio 2, esegui attacchi a dizionario con wordlist comuni (rockyou.txt, SecLists, ecc.) e regole di base.

Passaggio 4: Attacchi con regole mirate

Applica regole specifiche dell’organizzazione in base alle policy sulle password. Se il sistema di destinazione richiede "almeno 8 caratteri con una maiuscola e un numero", crea regole che rispettino questo schema.

Passo 5: Forza bruta (se giustificato)

Usa la forza bruta solo quando sai che la password è corta o hai identificato il set di caratteri. Un attacco a forza bruta completo su password lunghe non è praticabile.

Comprendere gli hash con salt

I sistemi moderni aggiungono una stringa casuale (salt) alle password prima dell’hashing. Questo rende ogni hash unico anche per password identiche, vanificando le rainbow table e le ricerche pre-calcolate.

  • Senza salt: hash(password) - Stessa password = stesso hash
  • Con salt: hash(salt + password) - Stessa password = hash diversi

Per gli hash con salt è necessario eseguire il calcolo in tempo reale. È qui che strumenti basati su GPU come Hashcat eccellono. Le rainbow table e le semplici ricerche in database non funzionano con hash correttamente salati.

Considerazioni legali ed etiche

L’attacco ai hash è una tecnica potente che deve essere utilizzata in modo responsabile e legale.

  • Autorizzazione:Cracca gli hash solo dai sistemi che sei autorizzato a testare
  • Ambito: Assicurarsi che il cracking degli hash rientri nell’ambito dell’ingaggio
  • Gestione dei dati: Archivia in modo sicuro e trasmetti le credenziali recuperate
  • Reportistica: Documenta correttamente le password violate nel tuo report
  • Informativa:Non utilizzare mai le credenziali recuperate al di fuori dell’ambito autorizzato

Il cracking non autorizzato di hash può violare le leggi contro le frodi informatiche nella maggior parte delle giurisdizioni. Assicurati sempre di avere un’autorizzazione scritta prima di tentare di decifrare hash di password.

HPlus: 90 miliardi di hash a portata di manoAnteprima avanzata di dehashing HPlus

Perché passare ore a fare cracking con la GPU quando la password potrebbe già essere in un database? HPlus è il nostro dehasher dedicato con oltre 90 miliardi di hash e 8 miliardi di password uniche. Dovrebbe essere la tua prima tappa prima di avviare Hashcat.

  • Oltre 90 miliardi di hash- Uno dei più grandi database di hash disponibili
  • Oltre 8 miliardi di password uniche- Derivate da violazioni di dati, wordlist e operazioni di cracking
  • 11 tipi di hash - MD5, SHA1, SHA256, SHA384, SHA512, MySQL3, MySQL5 e altri ancora
  • 5.000 righe al secondo- Elabora grandi elenchi di hash in pochi secondi
  • Aggiornamenti settimanali - Database continuamente ampliato con nuovi hash craccati
  • Nessun hardware richiesto - Evita di investire oltre 2000 $ in una GPU

Il flusso di lavoro intelligente: passa prima gli hash attraverso HPlus, cracca subito il 70-85%, e usa le risorse GPU solo per gli hash unici rimanenti. Risparmierai ore di calcolo in ogni attività.

Riferimento rapido: guida ai tipi di hash
  • MD5 — 32 caratteri, modalità Hashcat 0, facile
  • SHA1 — 40 caratteri, modalità Hashcat 100, facile
  • SHA256 — 64 caratteri, modalità Hashcat 1400, media
  • SHA512 — 128 caratteri, modalità Hashcat 1700, media
  • MySQL5 — 40 caratteri (*), modalità Hashcat 300, Facile
  • NTLM — 32 caratteri, modalità Hashcat 1000, Facile
  • bcrypt — 60 caratteri ($2), modalità Hashcat 3200, Difficile
  • Argon2 — Variabile, Molto Difficile
Conclusione

Il cracking degli hash è sia un’arte che una scienza. I pentester più efficaci non si limitano a lanciare GPU sul problema: adottano un approccio strategico che massimizza i risultati riducendo al minimo tempo e risorse.

Ricorda il flusso di lavoro ottimale: identifica i tipi di hash, controlla prima i servizi di dehashing online per ottenere risultati immediati, poi applica attacchi mirati per gli hash rimanenti. Questo approccio offre costantemente i risultati migliori nei penetration test reali.

Che tu stia decifrando un singolo hash in un CTF o elaborando migliaia di credenziali da un dump di database, comprendere questi fondamenti ti renderà un professionista della sicurezza più efficace.

Acquista ora
Avviso importante

I post del blog su questo sito web sono fittizi e teorici. Esistono esclusivamente a scopo educativo e non devono mai essere considerati come istruzioni per svolgere attività illegali o non autorizzate.

Gli scenari descritti sono ipotetici e non promuovono né incoraggiano azioni dannose o malevole. Riflettono la prospettiva di un penetration tester professionista, presupponendo il permesso adeguato e l'autorizzazione legale per testare un sito web, un'azienda o una rete.

I nostri post non sono un invito all'azione e non approviamo attività illegali. I lettori sono responsabili del rispetto delle leggi e dei regolamenti applicabili.

Leggendo i nostri post, accetti questi termini. Se non sei un professionista o una persona autorizzata, non tentare di replicare le tecniche descritte qui.

Il nostro contenuto è solo a scopo educativo e sconsigliamo vivamente di utilizzare qualsiasi informazione o tecnica per scopi malevoli.