Cracking degli hash MS-CACHE v2 utilizzando la GPU

14

Come molte persone sapranno, Windows memorizza nella cache le credenziali di dominio / annuncio in un formato noto come MS-Cache v2. Ovviamente, queste sarebbero ottime password da ottenere durante un test di penetrazione quando si ottiene l'accesso locale su una workstation.

La mia comprensione è che questi non possono essere attaccati usando le tabelle arcobaleno. Tuttavia, a parte l'uso di JTR e Cain, non vedo molte opzioni nel software per craccarle. In particolare, mi piacerebbe usare le mie GPU (4x schede Nvidia) per provarle. In alternativa, se potessi eseguire un software distribuito, sarebbe un secondo ragionevole.

Alcune domande quindi:

  • Quali opzioni ci sono per il recupero delle password di MS-Cache?

  • Qualcuno può fornire una descrizione tecnica di come viene generato / attaccato MS-Cache (v2)?

  • MS-Cache v2 viene utilizzato per crittografare le credenziali archiviate su un controller di dominio?

Modifica :

Mi interessano solo gli hash di MS-Cache v2, in genere non troverei macchine più vecchie di Windows XP in un dominio.

    
posta NULLZ 14.02.2013 - 01:26
fonte

3 risposte

14

MS-Cache è un formato piuttosto semplice - è un hash MD4 della password, seguito dal nome utente in minuscolo e con hash insieme MD4( MD4(Unicode(password)) + Unicode(tolower(username)) ) . Non sono sicuro della differenza tecnica tra MS-Cache e v2; ma non riesco a trovare nulla che suggerisca che non siano suscettibili a un attacco di RainbowTable (infatti, Cain & Abel sembra supportare le tabelle MS-Cache e MS-Cache v2 -" Aggiunto Crittografia HAS MSCACHE v2 tramite tabelle Arcobaleno ordinate "nella v4.9.4).

Le credenziali di MS-Cache non sono memorizzate nel controller di dominio (tranne che per gli utenti che vi accedono direttamente) - sono memorizzate come hash MD4 delle password, relative al nome utente. Potresti essere interessato a questo pezzo tecnico su come sono " re hadled.

Per quanto riguarda l'accellerazione della GPU, sembra che John the Ripper abbia il supporto per MD4; potrebbe essere quello che stai cercando. Altrimenti c'è questo articolo sull'attacco di password di Windows con la GPU (in particolare, potresti essere in grado di adattare ighashgpu per i tuoi scopi) e, come menzionato da Lucas nei commenti qui sotto; rcracki_mt ha il supporto per GPU.

[Aggiornamento]

MS-Cache v2 è descritto in dettaglio (con codice) su openwall.info , e soprattutto PassLib indica che è anche noto come" DCC2 ", che può essere d'aiuto per le ricerche future (anche se le informazioni sono frustranti). Per quanto riguarda gli attacchi contro di esso, da openwall:

In other words, incremental brute-force attacking for different search spaces, depending on the character set and the password length, will take ages. So it is a good idea to do some intelligent password guessing when attacking DCC2 hashes, i.e. rule-based dictionary and probabilistic attacks.

Con quel modulo python e PassLib dovresti essere in grado di mettere insieme qualcosa che coinvolge PyCUDA e PassLib , ma non sembra che sia stato fatto da chiunque prima.

    
risposta data 14.02.2013 - 02:30
fonte
5

Da questa pagina , vedo una descrizione di MS-Cache v2 come hash MD4 della concatenazione dell '"hash NTLM" della password e il nome utente (convertito in lettere minuscole, quindi codificato in "Unicode", che significa "little-endian UTF-16" nella terminologia Microsoft ). "L'hash NTLM" è MD4 calcolato tramite password (di nuovo in little-endian UTF-16). Quindi l'hash coinvolge due invocazioni MD4 annidate ed è "salato" dal nome utente.

Le tabelle arcobaleno sono "solo" tabelle precalcolate (con un trucco che consente di risparmiare molto spazio); possono rompere gli hash che si sono incontrati durante la fase di costruzione della tabella, ma nessun altro. Pertanto, puoi creare una tabella arcobaleno per MS-Cache v2, ma solo per un nome utente specifico; la tabella non sarebbe applicabile agli hash per altri utenti. Pertanto, tale tabella avrebbe senso per un nome utente che si trova spesso in molti domini, in particolare "Amministratore", ma questo è ancora di applicabilità limitata. Cain & Abel finge di includere (dalla versione 4.9.43) il supporto per la generazione e l'uso di tabelle arcobaleno sugli hash MS-Cache v2, ma, ovviamente, per un singolo nome utente alla volta.

Se hai solo un hash da decifrare, la costruzione del tavolo richiederebbe più tempo del cracking a forza bruta (la creazione di una tabella arcobaleno che copre N le password possibili richiede tempo 1.7 * N mentre il brute force cracking ha un costo medio di circa N / 2 , quindi la tabella vale la pena costruire solo se si tenta di crackare almeno 4 password hash, tutte con lo stesso nome utente nel caso di MS-Cache v2).

Non ho trovato liberamente disponibili le tabelle arcobaleno già calcolate per MS-Cache v2 e username "Administrator".

MD4 è un antenato di MD5 e si adatta molto bene alla GPU (anche meglio di MD5) quindi le tue quattro GPU dovrebbero essere in grado di provare le potenziali password per il miliardo (s) al secondo. La versione "jumbo" di John the Ripper è documentata su supporto MS-Cache v2 con GPU (sotto il nome" MSCash2 "), anche se con alcune inefficienze sul lato generazione password (per hash un miliardo di password al secondo, devi generare un miliardo di potenziali password al secondo, e questo potrebbe far morire di fame la CPU più intenzionata). Per lo meno, questo ti darà del codice sorgente con cui giocare e una "implementazione di riferimento" che sarebbe utile per i test.

Una CPU quad-core Core2 a 2,4 GHz, senza alcuna GPU, dovrebbe essere in grado di calcolare 80 milioni di hash MD4 al secondo, con codice potenziato SSE2 (stima da una mia implementazione che ha fatto 48 milioni di SHA- 1 hash al secondo), traducendo in 40 milioni di password al secondo. Questo è già abbastanza buono, grazie agli standard di violazione delle password, anche se ovviamente la GPU sarà molto più efficiente. Sarebbe un bel esercizio di programmazione.

    
risposta data 14.02.2013 - 13:38
fonte
1

Un ottimo strumento da provare è oclHashcat , che è un hash cracker solo GPU , funziona su Windows e Linux e supporta anche multi-GPU .

Ci sono due versioni di questo software che sono utili per te, oclHashcat-lite che è un singolo hash cracker e oclHashcat-plus che può scomporre fino a 15 milioni hash allo stesso tempo.

Ad esempio, utilizzando i parametri della riga di comando che seguono questa linea, applicherai bruteforce MS-CACHE 2 hash che vengono mantenuti in un file specificato (esempio.hash) provando il set di caratteri lower_alpha_numeric . Il testo in chiaro verrà salvato in un file:

cudaHashcat-plus64.exe -o out.txt -a 3 -1 ?l?d -m 1100 --increment-min=1 example.hash

Ulteriori informazioni sono disponibili nel Wiki .

P.S.: poiché questo script utilizza la modalità di incremento controllerà fino a 15 cifre di password (36 ^ 15).

    
risposta data 19.02.2013 - 15:15
fonte

Leggi altre domande sui tag