De esta página , veo una descripción de MS-Cache v2 como el hash MD4 de la concatenación del "hash NTLM" de la contraseña y el nombre de usuario (convertido a minúsculas, luego codificado en "Unicode", que significa "little-endian UTF-16" en la terminología de Microsoft ). El "hash NTLM" es MD4 computado sobre la contraseña (otra vez en little-endian UTF-16). Así que el hash involucra dos invocaciones MD4 anidadas y está "salted" por el nombre de usuario.
Las tablas Rainbow son "solo" tablas precomputadas (con un truco que ahorra mucho espacio); pueden romper los hashes que se encontraron durante la fase de construcción de la tabla, pero ninguna otra. Por lo tanto, puede construir una tabla de arco iris para MS-Cache v2, pero solo para un nombre de usuario específico; La tabla no sería aplicable a los hashes para otros usuarios. Por lo tanto, tal tabla tendría sentido para un nombre de usuario que se encuentra a menudo en muchos dominios, a saber, "Administrador", pero esto todavía es de aplicación limitada. Cain & Abel pretende incluir (desde la versión 4.9.43) soporte para generar y usar tablas rainbow en hashes de MS-Cache v2, pero, por supuesto, para un solo nombre de usuario a la vez.
Si solo tiene un hash para romper, construir la tabla tomaría más tiempo que el agrietamiento por fuerza bruta (la construcción de una tabla de arco iris que cubre N las posibles contraseñas toma tiempo aproximadamente 1.7 * N mientras que el cracking de fuerza bruta tiene un costo promedio de alrededor de N / 2 , por lo que vale la pena construir la tabla solo si se intentan crackear al menos 4 contraseñas con hash, todas con el mismo nombre de usuario en el caso de MS-Cache v2).
No encontré tablas de arco iris ya calculadas y disponibles de forma gratuita para MS-Cache v2 y el nombre de usuario "Administrador".
MD4 es un antecesor de MD5 y se asigna muy bien a GPU (incluso mejor que MD5), por lo que sus cuatro GPU deberían ser capaz de probar contraseñas potenciales por el billón (s) por segundo. La versión "jumbo" de John the Ripper está documentada en admite MS-Cache v2 con GPU (bajo el nombre" MSCash2 "), aunque con algunas ineficiencias en el lado de la generación de contraseñas (para capturar un billón de contraseñas por segundo, debes generar un billón de contraseñas potenciales por segundo, y eso podría matar a la CPU con la mejor intención). Como mínimo, esto le dará un código fuente para jugar y una "implementación de referencia" que sería útil para las pruebas.
Una CPU Core2 de 2,4 GHz de cuatro núcleos, sin GPU en absoluto, debería poder computar 80 millones de hashes MD4 por segundo, con código SSE2 mejorado (estimación de una implementación mía que hizo 48 millones de SHA 1 hashes por segundo), traduciendo a 40 millones de contraseñas por segundo. Esto ya es bastante bueno, según los estándares de descifrado de contraseñas, aunque, por supuesto, la GPU será mucho más eficiente. Sería un buen ejercicio de programación.