Cracking delle password

Gli hash è una funzione che associa una stringa di lunghezza arbitraria in una stringa di lunghezza predefinita. A partire da una stringa (una sequenza di caratteri) si deriva una chiave hash, che viene memorizzata da qualche parte da un programma. Quando un utente digita la sua password, il programma calcola la funzione di hash sull’espressione immessa se l’hash memorizzato è uguale a quello generato dalla password, il programma permetterà l’accesso alle risorse.

In Windows i file di hash che contengono quelli relativi agli utenti del sistema operativo sono posti in C:\Windows\System32\config\SAM

Il file SAM purtroppo non è accessibile semplicemente ma bisogna servirsi di un software come pwdump e dell’accesso da amministratore al sistema. Il programma è a riga di comando ma è molto efficiente in quando Windows XP utilizza un algoritmo LM di hashing, che ha dei difetti di progettazione e implementazione i quali consentono di risalire rapidamente alla password.

Nelle ultime versioni di Windows (Vista, 2008, Seven), l’algoritmo debole è stato sostituito da uno più robusto chiamato NTLM, ma nonostante i cambiamento è ancora possibile in alcuni casi recuperare le password.

Modalità di cracking delle password

Sono due i metodi “storici” che sono adottati per scoprire le password: cracking da dizionario e il cracking forza bruta.
[ad#midarticlequadr]
Il primo prevede di provare se in una lista di parole prese da un vocabolario (esempio da A a zurrurellone) c’è una parola che è usata come password. Si prende il termine dall’elenco, si calcola l’hash utilizzando l’algoritmo e si confronta l’hash da vocabolario con quello contenuto nel file. Se i due corrispondono è stata trovata la password.

La seconda possibilità consiste nel provare tutte le stringhe generabili da un insieme di caratteri (tipo a, b, c, …, z, aa, ab,…).

Per fare un esempio originando tutte le stringhe di 4 caratteri composte dalle 21 lettere dell’alfabeto si ottengono ben 24 x 24 x 24 x 24 = 331776 combinazioni differenti mentre per generare le sequenze composte da 10 cifre più le 26 lettere dell’alfabeto inglese di dieci caratteri si hanno ben 36^10 possibilità.

L’attacco di forza bruta prima o poi arriva a trovare la password, ma bisogna vedere quando.

Cracking degli hash

Col file degli hash si può adoperare l’utility LCP, un programma con interfaccia grafica che funziona anche mediante l’uso delle tabelle arcobaleno. Le tabelle arcobaleno è una tabella che contiene nelle righe la password e nelle colonne l’hash calcolato.

Cain è, invece, un’applicazione particolarmete ricca di funzionalità che consente di usare diverse strategie per il cracking delle password: dizionario, forza bruta, hash LM, hash NTML e tabelle arcobaleno.

Già con Windows Vista, Microsoft ha adottato un algoritmo migliore che utilizza MD5 a 128 bit, il quale rende più difficile e lungo il cracking delle password che rimane però possibile nella maggior parte dei casi in quanto gli utenti scelgono password molto semplici da indovinare (come 123, ciao, qwerty…) vanificando l’uso di un buon algoritmo che permette di scegliere una stringa lunga fino a 128 caratteri.

guest post

Articolo precedente

Hardening Linux
guest post

Articolo successivo

Hardening Linux 2