miércoles, 13 de octubre de 2010

WCE: Windows Credential Editor

Windows Credential Editor (WCE) v1.0 es una herramienta desarrollada por Hernan Ochoa (Amplia Security) que ha sido publicada recientemente como una evolución del Pass-the-Hash Toolkit, una de las mejores herramientas hasta el momento para realizar ataques de Pass-the-Hash, los cuales ya comentamos anteriormente tanto en el blog como en las Conferencias FIST.

Amplia Security Research (muy recomendable): Link.
Descargar WCE v1.0: Link.

Si descargamos la herramienta y la probamos, nos encontramos con un solo binario, que al ser llamado con la opción -h nos muestra la ayuda:


Como podemos ver, este binario nos proporciona toda la funcionalidad que nos proporcionaban los diferentes binarios que formaban parte del Pass-the-Hash Toolkit, más algunas funcionalidades nuevas de las que hasta ahora no disponíamos, como por ejemplo mantener en pantalla una lista de los usuarios que en cada momento tienen un login activo, al más puro estilo el comando "watch" de Linux.

Centrándonos en las opciones que nos van a resultar más directamente útiles para la realidación del pass-the-hash, en primer lugar deberemos obtener el Hash que queremos suplantar. Para ello hay una gran variedad de formas de hacerlo, pero por poner un ejemplo que ya se utilizó en nuestro anterior post, podríamos hacerlo con el comando hashdump de Meterpreter:


Una vez que tenemos el Hash (de esta u otra forma) ya solo tenemos que llamar al wce.exe con la opcion -s para cambiar nuestro Hash actual en memoria por el nuevo hash, y de esta manera usurpar la identidad:

> wce.exe -s Usuario:Dominio:LMHash:NTHash

Una vez hecho esto, podemos comprobar que las credenciales se han cambiado satisfactoriamente con la opción -l:

> wce.exe -l


Una vez hecho esto, podemos utilizar cualquier herramienta que se autentique por medio de Windows (por ejemplo, recursos compartidos) para acceder a otros equipos con las credenciales del usuario cuyo Hash habíamos obtenido. Podemos ver una demostración de esto en nuestro anterior post.

Una de las grandes ventajas que le veo a esta herramienta con respecto al Pass-the-Hash Toolkit, aparte de que resulte más cómodo disponer de toda la funcionalidad en un solo binario, y de las funciones extra que nos encontramos, es que parece ser que dispone de un reconocimiento muy mejorado del tipo de sistema en el que corre (eso o Hernán ha incluido las direcciones de un Windows XP en Español).

Si lo recordais, en la presentación que hicimos en las FIST comentábamos que el Pass-the-Hash Toolkit tenía que saber en que direcciones de la memoria debía leer y escribir los hashes, y que aunque tenía una serie de hashes hardcodeados, para un Windows XP en Español era necesario proporcionárselos a mano mediante la opción -a, ya que no venían por defecto. Hubo varias dudas sobre este proceso, así que acabamos por publicar otro post sobre cómo obtener estas direcciones para tu sistema.

Pues bien, con WCE no va a ser necesario este paso previo, no dabemos si porque Hernán ha incluido un listado más amplio de direcciones o porque la herramienta disponga de un mecanismo de búsqueda que obtenga estas direcciones por si mismo.

En cualquier caso, supone una importante mejora con respecto a su predecesor.
Como decían en el precio justo... a jugar! :D

4 comentarios :

Anónimo dijo...

Nunca me quedo claro, como abro o con que, este binario en windows... busque busque pero no encontre..
Perdon por mi pregunta de novato..

Jose Selvi dijo...

@Anónimo: Es un binario de Windows de toda la vida, pero en línea de comandos, nada de interfaces gráficos, así que si pinchas dos veces sobre él te saldrá una ventana "de MS-DOS" (para que nos entendamos) con la ayuda del binario y se cerrará inmediatamente.

Para utilizarlo tendrás que abrir un terminal (cmd.exe), ir al directorio donde está el binario y desde ahí utilizar los comandos que mencionamos en el post.

Suerte!! ;)

Anónimo dijo...

<>

Si esa password que se ha modificado en memoria es del windows local, como se puede acceder a recursos compartidos en otros pcs,.. no entiendo bien, a ver si puedes despejar mis dudas.

Jose Selvi dijo...

@Anónimo: Ese "<>" es un intento de XSS xD

En lo referente a tu pregunta, el tema es que en ambos sistemas existe el mismo usuario con la misma contraseña, y por tanto con el mismo Hash.

Este Hash es usado por los sistemas Windows para autenticarse de unos sistemas a otros como ese mismo usuario, sin que te vuelva a pedir la contraseña una y otra vez. Es una funcionalidad que tienen los sistemas Microsoft.

Sin embargo, si robas este Hash, puedes cambiar el que tú tienes en memoria para "convertirte" en ese usuario sin necesidad de saber la contraseña, y a partir de ahí poder acceder a los recursos de red de este usuario.

Se entiende así mejor?
Gracias por el comentario!