Páginas

16 noviembre, 2018

Montar carpeta remota FTP o FTPS en Linux con CurlFtpsFS y SSHFS

Para montar una carpeta de un directorio FTP o FTPS remoto en un sistema Linux y acceder a ella de forma local como un volumen más del sistema. Se puede usar CurlFtpFS o SSHFS.

CurlFtpFS

CurlFtpFS lo usaremos sino disponomes de conexión SSH hacia el servidor FTP remoto (la transferencia de datos es más lenta).

Instalamos curlftpfs.
sudo apt install curlftpfs
Creamos el directorio en el que montaremos el FTP/FTPS.
sudo mkdir /backups
Montamos la carpeta remota FTP en el sistema local.
sudo curlftpfs -o allow_other usuarioftp:password@servidorftp.com /backups -v
Si queremos que se monte de forma persistente en el sistema, agregamos un nueva entrada al fichero /etc/fstab. Cambiaremos el uid según corresponda al usuario que tendrá acceso a la carpeta.
curlftpfs#servidorftp.com /backups fuse auto,user,uid=1000,allow_other,_netdev 0 0
Para desmotar la carpeta.
fusermount -u /backups
o
umount /backups
CurlFtpFS cuanta con múltiples opciones, para consultar su ayuda.
curlftpfs --help
o
man curlftpfs

SSHFS

SSHFS los usaremos si disponemos de una conexión SSH hacia el servidor FTP remoto (la transferencia de datos es más rápida que CurlFtpFS).

Instamos sshfs.
sudo apt install sshfs
Creamos el directorio en el que montaremos el FTP/FTPS
sudo mkdir /backups
Montamos la carpeta remota FTP en el sistema local.
sudo sshfs -o allow_other usuarioftp@servidorftp.com:/ /backups
Nos pedirá que aceptemos el fingerprint y que introduzcamos el password de usuario.

Con "df -h" podremos ver el directorio remoto FTP/FTPS montamo en el directorio /backup (en este caso) como un volumen del sistema local.

Para montarlo permanentemente en el fichero /etc/fstab lo haremos con la misma sintaxis que en el caso de CurlFtpFS. 

SSHFS cuenta con opciones muy similares a las de CurlFtpFS, para consultar su ayuda.
sshfs --help
o
man sshfs
Saludos!

03 noviembre, 2018

Credenciales almacenadas en caché para RDP: Comportamiento por defecto, riesgos de seguridad y mitigación

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\Servers
HKEY_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é

Actualizado el 25/09/2024

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

Ruta GPO:

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

Ruta GPO:
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.
Esta política solo está disponible en plantillas ADMX de equipos unidos a dominio. Controla la cantidad de veces que Windows almacena en caché las credenciales de los usuarios de dominio para permitirles iniciar sesión sin conexión al controlador de dominio.

Equivalente en Registro:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
  • "CachedLogonsCount" = "0"
Importante: Esto solo afecta a cuentas de dominio y solo en inicio de sesión interactivo, de forma indirectamente también afecta al acceso RDP solo si la conexión al dominio no está disponible.

Medidas de seguridad adicionales

Actualizado el 25/09/2024

Implementar autenticación multifactor (MFA) a través de herramientas de terceros o nativas como la integración de Microsoft Entra ID MFA con RDP mediante extensión NPS (Network Policy Server), esto añade una capa de seguridad, impidiendo el acceso no autorizado incluso si las credenciales son revocadas. Por otro lado, el se debe realizar un monitoreo y auditoría que permita identificar intentos de acceso sospechosos, intentos de fuerza bruta, ayudando a prevenir ataques y proporcionando visibilidad sobre actividades anómalas en el servicio RDP. Ambas medidas refuerzan la protección y reducen el riesgo de explotación.

Conclusión

Windows guarda por defecto las credenciales de RDP y el historial de conexiones en el equipo cliente. Aunque esto mejora la usabilidad y facilidad operativa del usuario, representa un riesgo alto de seguridad. Desactivar el guardado de contraseñas, limitar la caché de logons y limpiar manualmente los rastros de sesiones previas ayuda a bastionar y fortalecer la postura de seguridad del sistema.

Saludos!

Entradas Populares