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.