Esa es la pregunta a la cuál un consultor de seguridad informática se enfrenta cada vez que le piden obtener el control de un equipo y acceder a la contraseña de usuario en texto plano sin aplicar técnicas de cracking.  La respuesta es NO, Windows no almacena la contraseña de un usuario en texto plano. Una vez que el usuario inicia sesión, la contraseña es almacenada en memoria de forma cifrada, sin embargo sí hay maneras de “obtenerla”.

Dentro del sistema LSA (local security authority) existen varios proveedores de autenticación que vienen habilitados por omisión. Se pueden ver estos proveedores ingresando a la siguiente llave del registro:

HKLM\SYSTEM\CurrentControlSet\Control\Lsa\Security Packages

Proveedores de autenticación

En Windows XP y versiones posteriores existen 2 proveedores de autenticación que almacenan la contraseña de los usuarios:

  • Wdigest: usado para dar seguridad a las conexiones HTTP que requieran autenticación del tipo Digest.
  • Tspkg: empleado para dar seguridad a las conexiones SSO (single-sign-on) con Terminal Server.

Aunque dichos proveedores raramente son usados, vienen habilitados por omisión. Un investigador francés denominado Gentil Kiwi descubrió una falla de seguridad que permite obtener las credenciales en texto plano, e incluso creó una herramienta para ello: Mimikatz.

Mimikatz puede ser ejecutada desde una sesión de meterpreter o bien de manera independiente en el equipo. Para ejecutarlo desde meterpreter se debe cargar el módulo de Mimikatz con el comando load mimikatz y luego utilizar el comando wdigest para obtener las credenciales en texto claro.

También existe la opción de ejecutar el comando mimikatz_command –f sekurlsa:logonPasswords –a “full” para intentar obtener las credenciales por medio de todos los factores de autenticación. A continuación se muestra una imagen donde se obtiene la credencial de un usuario en texto plano utilizando una sesión de meterpreter.

Ejecución de Mimikatz desde meterpreter

Por otro lado, si tenemos acceso a una consola de Windows como usuario administrador, también se podría ejecutar Mimikatz. Como primer paso luego de la ejecución, debemos obtener privilegios de debug, lo cual se realiza con el comando privilege::debug. Luego de  tener acceso a estos privilegios se ejecuta  sekurlsa::logonPasswords “full”, tal cual se muestra a continuación:

Credenciales en texto plano desde la consola de Windows

La vulnerabilidad se encuentra presente en todos los sistemas operativos Windows, de XP en adelante, inclusive Windows 8 y Windows 2012. Hasta el momento, oficialmente Microsoft no ha liberado ningún parche para corregir esta vulnerabilidad, por lo cual se recomienda realizar un análisis con respecto a la utilización de los proveedores de autenticación afectados por ella y deshabilitarlos en caso de que no se requieran.

[email protected]