Obtener las passwords en Windows

La seguridad de un sistema Windows se basa, principalmente, en tres componentes llamados Local Security Authority (LSA), Security Reference Monitor (SRM) y Security Account Manager (SAM) para controlar la autenticación en el inicio de sesión de Windows, la seguridad a nivel de objetos y los permisos y derechos de usuarios respectivamente. Los dos primeros en la capa de usuario y el último componente a nivel del Kernel del Sistema Operativo (SO).

 “Local Security Autohority” (LSA) mantiene información y datos sobre los distintos aspectos de la seguridad local del SO, es decir, controla la autenticación de los usuarios, gestiona las directivas de seguridad locales aplicadas y administra los controles de auditoria y trazabilidad del sistema, etc.

Con “Security Reference Monitor” (SRM) se verifica si un usuario tiene derecho a acceder a un objeto y ejecutar una determinada acción solicitada. Mediante el uso de ACLs (Access Control List o listas de control de acceso), comprueba si un objeto o recurso puede ser accedido.

“Security Account Manager” (SAM) es una base de datos presente en los servidores y estaciones de trabajo con SO Windows donde se almacena la información relativa a las cuentas de usuario (nombre de usuario, contraseña, descripción del usuario, grupos a los que pertenece, etc) del equipo local o bien del resto de la red mediante un controlador de dominio o de Directorio Activo (AD). La SAM es el equivalente al fichero /etc/passwd de los Sistemas Linux/Unix. Físicamente se encuentra en “c:\Windows\System32\Config\SAM” y existe una copia de dicho archivo en “c:\Windows\repair\SAM”.

Para obtener este fichero de contraseñas en algun servidor o no con Windows no topamos con varios problemas comunes:

  • Arquitectura de 64 bits: los servidores Windows 2008 ya suelen ser de 64 bits y herramientas como pwdump en su versión 6 o gsecdump, por ejemplo, no soportan este tipo de arquitecturas con lo que es necesario recurrir a otras aplicaciones como fgdump o pwdump 7, que sí funcionan en sistemas de 64 bits.
  • Antivirus: es muy frecuente encontrarse con antivirus instalados en los servidores Windows de donde se quiere extraer la SAM que impiden ejecutar los programas para volcar la información de los passwords dado que los detectan como malware y bloquean su ejecución. A modo de ejemplo, antivirus tan conocidos como VirusScan de Mcafee, TrendMicro o Kaspersky detectan las aplicaciones gsecdump y pwdump6 y pwdump7 como malware, hacktool, etc e impiden la correcta ejecución, en cambio, Mcafee es el único motor antivirus que sí detecta fgdump como un virus. Para poder utilizar estas herramientas es preciso desactivar la protección en tiempo real que tienen configurada los antivirus presentes en el servidor 😉
  • Usuario con Privilegios: ya sea de forma remota o localmente, es necesario disponer de un usuario válido con privilegios de administrador local en el servidor para acceder al fichero de contraseñas (SAM). Si se quiere extraer la SAM remotamente se puede recurrir a herramientas como “psexec” y si es de forma local, únicamente es necesario ejecutar la aplicación deseada (pwdumpX, fgdump o gsecdump) en el servidor analizado.
  • Programas: como se ha visto existen diferentes herramientas capaces de extraer las contraseñas de un fichero SAM (múltiples versiones de pwdump, gsecdump, fgdump, etc.). Cuál utilizar contra un servidor depende de los puntos antes descritos.
En el siguiente link encontrar un ejemplo de como sacar contraseñas usando la herramienta PWDUMP.