En el artículo anterior había comentado sobre la Gestión y recuperación de credenciales almacenadas en recursos y servicios de Windows. En relación a esto quiero abordar el caso concreto del almacenamiento de credenciales en caché para el servicio de RDP, su comportamiento por defecto, riesgos de seguridad que esto supone y cómo mitigarlos correctamente.
Windows permite de forma predeterminada que el cliente de Escritorio Remoto (RDP) recuerde las credenciales introducidas en sesiones previamente establecidas. Si el usuario marca la opción "Recordar mis credenciales", el sistema almacena el nombre de usuario y la contraseña de forma cifrada en el Administrador de Credenciales (Credential Manager) bajo entradas como "TERMSRV/<host>", lo que permite reconexiones automáticas sin volver a autenticarse. Además, en el registro de Windows se almacena el historial de hosts conectados y los usuarios utilizados, lo que expone y hace accesible esta información.
Registro del historial de conexiones RDP
En el registro de Windows se guarda el historial de hosts e IPs conectados mediante RDP, además del hostname y el último nombre de usuario utilizado. Aquí podemos ver y borrar la información de sesiones RDP almacenadas.
HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\ServersHKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Default
Este comportamiento afecta únicamente al cliente RDP, no al servidor (host), y es independiente del tipo de cuenta (local o dominio). Sin embargo, en sistemas unidos a dominio, Windows también almacena hashes de inicio de sesión en caché (por defecto hasta 10) mediante la política "CachedLogonsCount", lo que permite autenticaciones si el cliente pierde la conexión al controlador de dominio. Esta funcionalidad está más relacionada con el inicio de sesión interactivo que con RDP, pero representa otro vector donde se conservan credenciales temporalmente.
Si bien estas funcionalidades están diseñadas para mejorar la experiencia del usuario, también representan riesgos considerables en la seguridad del sistema si no se controlan adecuadamente. La exposición de credenciales guardadas, la persistencia de accesos automáticos en sistemas compartidos o comprometidos, y la falta de visibilidad sobre estos almacenamientos hacen que sea fundamental aplicar medidas de mitigación concretas, como el bloqueo del guardado de contraseñas y el ajuste del número de logons almacenados en caché.
Riesgos identificados en RDP por el almacenamiento de credenciales en caché
En el Protocolo de Escritorio Remoto (RDP) Windows permite a los usuarios iniciar sesión incluso con credenciales revocadas debido a un fallo en la validación de contraseñas. Esto ocurre especialmente en equipos unidos a un dominio que, en el momento de la conexión RDP, no tienen acceso o perdieron conexión al controlador de dominio para verificar en tiempo real si las credenciales siguen siendo válidas. Siempre que el usuario haya iniciado sesión previamente en ese host remoto con esas credenciales cuando aún eran vigentes, el sistema permite el acceso utilizando las credenciales almacenadas en caché, aunque hayan sido revocadas o modificadas, lo que puede ser aprovechado por un atacante u otro usuario del sistema para obtener acceso no autorizado a través de un inicio de sesión interactivo a través de RDP.
Mitigar riesgo: Evitar el almacenamiento de credenciales
Configuración del equipo > Plantillas administrativas > Componentes de Windows > Cliente de Conexión de Escritorio remoto
- No permitir guardar contraseñas > Habilitada
Esto oculta la opción "Recordar mis credenciales" en el cliente RDP y evita que se almacenen nuevas credenciales en el Administrador de credenciales (TERMSRV/<host>). No afecta a credenciales previamente guardadas, por lo que se deben eliminar el histórico de credenciales que ya estuvieran almacenadas.
Equivalente en Registro:
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services
- "DisablePasswordSaving" = dword:00000001
Mitigar riesgo: Limitar el almacenamiento de inicios de sesión anteriores
Configuración del equipo > Configuración de Windows > Configuración de seguridad > Directivas locales > Opciones de seguridad
- Inicio de sesión interactivo: Número de inicios de sesión anteriores que se almacenarán en caché > Deshabilitada.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
- "CachedLogonsCount" = "0"
Medidas de seguridad adicionales
Actualizado el 25/09/2024
No hay comentarios
Publicar un comentario