Ultimo aggiornamento
Ti sei mai chiesto perché quando non ricordi più la password di un sito web non ti viene mai permesso di recuperarla, ma solo di resettata? La risposta è semplice: non la conoscono neppure gli amministratori.
Ogni qual volta accedi ad una web application, ad esempio il tuo account Facebook, Instagram, TikTok e via dicendo, ottieni l’autenticazione solo nel caso in cui la password da te immessa corrisponda effettivamente a quella memorizzata nel sistema. Il passaggio appena descritto avviene in pochi decimi di secondo e le password confrontate, per una questione di sicurezza, non sono mai in chiaro, poiché subiscono un processo detto hashing che varia in base all’algoritmo crittografico utilizzato.
In parole spicciole questo tipo di codifica prende come input una stringa di lunghezza variabile (la tua password) e ne restituisce l’output, noto anche come MD5 Checksum. Da un hash così ottenuto non è possibile risalire a ciò che l’ha originato.
Una delle domande maggiormente rivolte al centro supporto Facebook è quella che segue. “Potete inviarmi una copia della mia password senza che debba reimpostarla?”. La risposta ufficiale:
“Facebook archivia la tua password in modo talmente sicuro che neanche noi la conosciamo. Se non ricordi la password, puoi richiederne una nuova”.
Differenze tra hashing e crittografia
Hashing e crittografia sono modi diversi di proteggere le informazioni. La crittografia consente di ripristinare il testo originale in seguito tramite la decodifica. L’hashing riassume il testo in un breve impronta che non può essere decrittata.
Con la sola impronta hash, non c’è alcun modo di sapere esattamente quale testo è stato riassunto anche se una determinata parola genera sempre la stessa impronta. Così facendo se un malintenzionato riuscisse ad ottenere il database di un sito web contenente tutte le password “hashate” degli utenti registrati, si ritroverebbe in mano un mucchio di stringhe da 128 bit composte da 32 caratteri esadecimali. Segui il successivo esempio per comprendere al meglio questo meccanismo.
Hash, approfondimenti ed esempi pratici
L’hacker di turno ottiene l’hash della password della Banda Bassotti che in fase di registrazione ha scelto la parola chiave “password123” che attraverso il processo di hashing MD5 corrisponde al valore “482c811da5d5b4bc6d497ffa98491e38”.
Esistono centinaia di siti che all’interno dei loro database contengono miliardi di termini comuni in tutte le lingue “pre-hashati” e in un batter d’occhio ricercano l’output immesso e se trovano una corrispondenza restituiscono la parola in chiaro.
Puoi effettuare una veloce verifica visitando il sito md5online.org che contiene migliaia di miliardi di termini, più di 1,150,000,000,000 (hai capito bene!). Copia e incolla la stringa su riportata nell’apposito campo del sito menzionato e clicca su Decrypt. Sullo stesso portale puoi verificare il processo inverso (MD5 Encrypter).
Violare diverse codifiche hash
Il Salt, questo sconosciuto
Per impedire questo tipo di attacco, in inglese chiamato Rainbow Table, è stato introdotto un espediente: il salt. Quest’ultimo, altro non è che una sequenza casuale di bit utilizzata dal server per ottenere un output univoco durante il processo di “hashing” della password.
Al momento del login la password digitata viene nuovamente combinata con il “seme” e la stringa ottenuta viene confrontata con quella memorizzata nel database del sito web e se i valori coincidono, l’utente ha accesso al sistema.
Se la Banda Bassotti in fase di registrazione avesse usufruito di questo accorgimento e il server avesse utilizzato come salt il valore “sale321“, la chiave segreta da lui scelta, ovvero la parola “password123“, avrebbe prodotto un output non più calcolabile tramite l’uso delle Tabelle Arcobaleno e in questo caso il risultato ottenuto da questa funzione matematica di tipo irreversibile, avrebbe portato alle differenze che seguono:
Password | Salt | Risultato Hash MD5 |
---|---|---|
password123 | (nessuno) | 482c811da5d5b4bc6d497ffa98491e38 |
password123 | sale321 | cf780d5206af87b64f6df62e5381004e |
Copiando e incollando la stringa con il salt sul sito precedentemente linkato, non si otterrà alcuna corrispondenza, sebbene la password sia rimasta identica.
A dispetto di quanto comunemente si pensa, è opportuno precisare che il salt non aumenta la lunghezza della password, né la complica ulteriormente e il suo scopo consiste nel differenziare le codifiche di password identiche e rendere inoffensivo l’attacco a tabelle precompilate (le Rainbow) e di accrescere sensibilmente i tempi di “recupero” della password, infatti ogni bit di sale raddoppia i calcoli necessari all’attacco; un buon motivo per tenere segreto questo dato. Gli hash così “conditi” restano comunque sensibili agli attacchi a forza bruta e a quelli a dizionario.
Suggerimenti, sicurezza e statistiche
Il consiglio è sempre lo stesso: scegliere una password robusta, che soddisfi per esempio i criteri menzionati nell’articolo in cui tratto l’argomento Password Facebook. Le statistiche affermano che su 100 utenti il 93% sceglie una password di lunghezza variabile tra i 6 e i 10 caratteri, il 43% usa soltanto caratteri minuscoli, il 36% delle password scelte sono presenti nei comuni dizionari, il 67% sono riutilizzate dalle stesse persone per più servizi e solo il 3% delle password contiene un carattere speciale.
Questi dati devono fare riflettere! Se la tua password possiede queste caratteristiche e l’attacker di turno ottiene il corrispettivo hash, con un computer di fascia medio-bassa e un buon programma, in meno di mezzo minuto può processare 14 milioni di parole e risalire alla tua password in altrettanti secondi. Guarda il video per farti un’idea più concreta.
Hash Hacking in corso
Il software per l’Hash Cracking a portati di tutti
In rete esistono dei potenti strumenti che consento di effettuare molteplici attacchi sulle hash delle password, anche se queste ultime hanno subito il processo di hashing tramite salt. Elenco brevemente quelli più conosciuti e usati:
Il punto dolente di questi programmi è dovuto al fatto che sono quasi tutti a riga di comando, spesso complessi, di grosse dimensioni, localizzati esclusivamente in lingua inglese, necessitano di distribuzioni Linux per poter funzionare e hanno interfaccia grafica scarna o assente.
Esiste invece un software che di fatto possiede caratteristiche opposte a quelle poc’anzi citate. Passwords Pro è un programma shareware per Windows (la versione in download è completa), non più commercializzato e per questo motivo difficilmente reperibile. Ho individuato il file localizzato di una precedente release (la 2.4.4.2) e ho provveduto a perfezionarlo e adattarlo alla più attuale versione (la 3.1.2.1) e adesso Password Pro è interamente tradotto in italiano. Infine l’ho dotato di setup di installazione, dato che il software ne era praticamente sprovvisto.
Violare molteplici codifiche hash
Questa applicazione è progettata per recuperare le password di molteplici codifiche hash (oltre 170), incluse quelle dei CMS più diffusi come Joomla, WordPress, Drupal e dei sistemi operativi più recenti come Windows 7/10/11.
Per ottenere gli hash puoi utilizzare una piccola sorprendente utility chiamata Mimikatz (password: marcucciogemel.it) e impartire come amministratore in successione i comandi “privilege::debug
” e “sekurlsa::msv
“, come mostrato in questo esempio. Nota. In verità con il comando “sekurlsa::logonpasswords
” puoi ottenere immediatamente le password di Windows in chiaro.
CMS e S.O. | Hash | Tipo di Hash |
---|---|---|
Joomla | 6edb6d10ea920c5d4d0a337efb4077ee | md5($pass.$salt) |
Worpress | $P$BilsaltqO7.UDoX9zxQ3r5y2Nl6G0 | MD5(WordPress) |
Drupal | $S$CforteZT47H8YFKK4qSdeWBzYlgnc6xPyCM6OwFPi10cEJ6Rk | SHA-512(Drupal) |
Windows 7/10/11 | 05af928255a863470439110616156ff2 | NTLM |
Passwords Pro prevede il supporto per l’utilizzo di molteplici plug-in. Tra i più utili:
- Dictionary Generator per creare, ordinare, pulire, splittare, combinare e comparare i dizionari.
- Hash Generator per il supporto di oltre 130 algoritmi di hash (salt incluso).
- SQL Dump Parser per estrarre gli hash dai file con estensione SQL.
E’ possibile effettuare l’hacking di ogni tipo di hash con attacco preliminare, brute force, con maschera, dizionario semplice/combinato/ibrido. Le funzioni e le caratteristiche di questo straordinario prodotto sono tantissime ed altamente performanti.
Per generare dizionari “a tema” a partire da uno specifico file o una cartella, puoi utilizzare Word List Compiler 2.0 della Lastbit, che ho parzialmente tradotto in italiano per facilitarne l’uso. Se invece sei alla ricerca di dizionari precompilati di grandi dimensioni che includano milioni di termini, puoi scaricarli a partire dai seguenti link:
Download: Passwords Pro 3.1.2.1 (2.86 MB)
Sembra che il dizionario da 4GB su Mega non sia più disponibile.
Puoi uploadarlo?
Ciao Tokie. Uplodare 4 GB richiederebbe una super fibra 😉 Meglio un link che punti ad ulteriori dizionari; Ne ho aggiunti alcuni a fine articolo e rimosso quelli non funzionanti. Saluti =)
come si ottiene l’hash?
E’ possibile ottenerlo in differenti modi, ma una risposta esatta non posso fornirtela, in quanto la domanda che poni è troppo generica e priva di indicazioni specifiche. Sul web trovi un’infinità di discussioni in merito 😉