Índice

Romper una contraseña

En un registro algo diferente de lo que acabamos de ver, crearemos una aplicación capaz de romper las contraseñas cifradas de Windows. Hemos visto en el capítulo Extraer, romper, cambiar una contraseña que la extracción podía realizarse con herramientas como SamDump.

Una vez que tenemos en nuestra posesión el archivo de texto con las contraseñas cifradas, debemos romperlas. Hemos visto, siempre en el capítulo dedicado a la temática de romper las contraseñas, que estas no son cifradas, sino resumidas con MD4, siendo estas últimas codificadas en Unicode. Para averiguar una contraseña a partir de hash, debemos comparar una contraseña probable resumida con la que se encuentra en el archivo.

1. Principios básicos

Para ello, utilizaremos una biblioteca de .NET que gestiona MD4, esta es gratuita y descargable en Internet. .NET no permite por defecto usar MD4. Microsoft anima a los desarrolladores a utilizar MD5 o algoritmos de hashes más seguros. Con un objetivo educativo, compararemos contraseñas de tipo numérico que tengan entre 0 y 7 caracteres.

Descargue la biblioteca MD4 en el enlace siguiente: http://www.superstarcoders.com/blogs/posts/md4-hash-algorithm-in-c-sharp.aspx

Para comparar nuestra eventual contraseña con la del archivo, transformaremos esta última en Unicode.

byte[] hashunicode = Encoding.Unicode.GetBytes(pass);

Vamos a resumirlo con el algoritmo MD4.

byte[] hash = ComputeMD4(hashunicode);

Después ...