the_open_door
café
ESEN
← Volver al índice

Saved Credentials on Windows (cmdkey and runas)

Windows permite a los usuarios cachear credenciales en el Administrador de credenciales (para RDP, recursos de red, servicios de terminal, etc.). Un atacante con una sesión de ese usuario puede listarlas con cmdkey y reutilizarlas con runas /savecred sin llegar a ver la contraseña en claro: el sistema la inyecta por él. Es una vía discreta para moverse a otro host o escalar a otro usuario, y encaja con la caza más amplia de secretos guardados en el sistema.

Mecanismo

Se listan las credenciales almacenadas para el usuario actual:

cmdkey /list
    Target: LegacyGeneric:target=TERMSRV/SQL01
    Type: Generic
    User: inlanefreight\bob

Aunque no veamos la contraseña, podemos ejecutar comandos como ese usuario reutilizando el secreto cacheado (por ejemplo, lanzarnos una reverse shell):

runas /savecred /user:inlanefreight\bob "cmd.exe /c <command>"

Si la credencial guardada es de tipo TERMSRV/<host>, una conexión RDP a ese host la usará automáticamente. Esta técnica se complementa con una caza más amplia de secretos: SessionGopher extrae sesiones guardadas de PuTTY, WinSCP, FileZilla y RDP; LaZagne recorre decenas de programas; SharpChrome logins /unprotect saca las contraseñas del navegador; y reg query revela texto en claro en el registro:

reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon"
reg query HKCU\SOFTWARE\SimonTatham\PuTTY\Sessions

Requisitos

El Administrador de credenciales está ligado al usuario y protegido con DPAPI, así que para leer y reutilizar sus entradas hace falta una sesión interactiva como ese usuario. Para acceder a las bóvedas de otros usuarios se necesita administrador local o SYSTEM. runas /savecred reutiliza lo que el usuario actual tenga cacheado, sin pedir la contraseña.

Cómo detectarlo

Delatan el abuso la ejecución de cmdkey /list y runas /savecred (evento 4688 con la línea de comandos), el acceso al Administrador de credenciales (actividad DPAPI, eventos 5379/16385), la lectura de las claves Winlogon o SimonTatham\PuTTY, y el uso de herramientas conocidas como LaZagne, SessionGopher o SharpChrome.

Defensa. Desactivar por GPO la opción de "recordar credenciales" y limpiar el Administrador de credenciales; usar cuentas de servicio gMSA en lugar de credenciales cacheadas; desplegar LAPS para el administrador local; y auditar 4688 con línea de comandos. Relacionado con credenciales de autologon, caza de credenciales, reutilización de credenciales, historial de PowerShell y Event Log Readers.