Wednesday, December 03, 2008

Recuperando contraseñas Win: Ophcrack

Tipo: Informativo.
S.O.: Linux-Windows

Hace apenas algunas horas me encontraba en mi lugar de trabajo, cuando me avisaron que una máquina no funcionaba bien, para variar los usuarios quien sabe que hicieron con la gran fragilidad de Windows.

Bueno me dirigí a revisar la máquina y por una extraña razón la cuenta del usuario tenia todo restringido y para colmo la cuenta de administrador con contraseña que nadie sabe y que mis amiguitos del depto. de plano nunca recordaran a pesar de que ellos la colocaron, así que para evitar mas retrasos recordé que en GNU/Linux existia una distribución dedicada a encontrar las contraseñas de las cuentas de Windows y ni modo a buscar por la red, hasta que di con la siguiente distro:

ophcrack

y también en un foro encontré algo de información sobre el funcionamiento de las cuentas de windows, la cual plasmare literal del foro original:

"
Windows no guarda la contraseña tal cual en un fichero para luego comparar (lo que le pasa el usuario con lo que tiene guardado). El proceso es un poco más complejo. En concreto, si la contraseña es menor que 15 caracteres, la parte en dos trozos de 7 bytes, genera dos claves DES con cada una de ellas y 'encripta' - codifica- el texto (constante, siempre el mismo) “KGS!@#$%”. El resultado (dos cadenas de texto de 8 bytes cada una) se guarda en el fichero SAM (normalmente c:\WINDOWS\SYSTEM32\config\SAM). En resumidas cuentas, se consigue un hash de la contraseña original.
Los hashes conseguidos con el procedimiento esbozado se conocen como "Lan Manager Hash" o LM Hash. Si la contraseña es de 15 caracteres o más, o bien el administrador sabe que los LM Hash son facilmente crackeables, habrá decidido que su Windows implemente un cifrado más robusto, conocido como NTHash. Por ejemplo, Windows Vista, por defecto, desactiva los LM Hash y sólo se fía de los NTHash.

Desde el service pack 3 de Windows NT existe una capa de protección más: syskey. Básicamente se limita a codificar los LM Hash mediante otro algoritmo. Sin embargo, es relativamente fácil obtener los LM Hash originales siempre que conozcamos la clave usada por syskey, y la obtención de esta clave es trivial mediante el uso de la herramienta bkhive para Linux.
Tras aplicar bkhive, debemos de extraer los hashes del SAM desde Linux. Para ello, montaremos la unidad Windows, y utilizaremos la utilidad SAM Dump 2 para obtener por salida estándar los LM Hash. Ahora queda lo difícil: crackear los LM Hashes.

Un posible ataque sería por fuerza bruta o por diccionario. Probar a cifrar toda posible clave (obteniendo cualquier posible combinación de caracteres o bien leyendo del diccionario y probando combinaciones posibles - añadir números, sustituir algunas letras...-) y comparar los hashes obtenidos tras el cifrado con los que hemos leído de la bbdd SAM. Pero existe una forma aún más rápida: usar tablas de hashes precalculados. Es decir, alguien con mucha paciencia, ha ido generando por fuerza bruta toda posible combinación de caracteres, obteniendo sus hashes y guardándolos en tablas de hashes. Las tablas se clasifican por el número y tipo de caracteres originalmente usados ("alfabeto, hasta 15 caracteres", "alfabeto+números, hasta 15 caracteres de longitud", etc.) La idea es que probar todas las posibilidades leyendo los hashes de estas tablas y comparándolos con los del SAM es muchísimo más eficiente que el proceso original de creación de posible clave + obtención de hash + comparación.

ophcrack es una herramienta GPL que automatiza todo el proceso explicado anteriormente, desde un cómodo interfaz gráfico desarrollado en GTK. Internamente hace uso de bkhive y samdump2 (de hecho, los incluye precompilados en el tar.gz) Además, en la web de la aplicación es posible descargar tablas de hashes LM alfanuméricos precalculadas. Y por si fuera poco, también permite crackear NT hashes. Nosotros lo hemos probado en un Windows XP Profesional para detectar la fortaleza de nuestras propias claves, y la verdad es que ha funcionado perfectamente.
"

Al leer esto me dije, ni modo a descargar esta distribución y sobre un LiveCD, y sin problema alguno pude obtener la contraseña del administrador, una clave que por un tiempo mis compañeritos siempre usaron hasta para los servidores, pero bueno, la cosa es que pude resolver el problema gracias a la comunidad de software libre y a la fragilidad y simplicidad de Windows, asi que para aquellos usuarios que pretendan tener todo "seguro", mejor no utilicen Windows y asi la seguridad será un poco mejor, pues recordemos que igual hay trucos para poder acceder a sistemas GNU/Linux, aunque claro se necesita de un poco mas de conocimiento.

El funcionamiento de la distro es simple, se bootea el CD, arranca la distro preguntando si se desea en modo texto o gráfico, la verdad yo preferí el texto, probe todas las opciones, y bueno el modo gráfico no es muy ameno que digamos al parecer utiliza un gestor de ventana y no un gestor de escritorio, así que decidí hacerlo por modo texto, rápidamente me encontró los usuarios y en menos de 15 minutos ya tenia la contraseña del administrador, así que lo demás de la solución creo que la mayoría lo sabe, aquí lo importante que quería informar es que gracias a una distro de GNU/Linux se puede acceder a Windows, sin problema alguno.

Fuentes: http://www.comunidadp2p.net/showthread.php?t=4140
Descarga de la distribución: http://ophcrack.sourceforge.net/