Puntos clave
- Puedes usar el registro de eventos de Windows y PowerShell para identificar actividad oculta o sospechosa del Protocolo de Escritorio Remoto (RDP).
- Configura los ID de evento 4624 (inicio de sesión), 4634 (cierre de sesión) y los registros de TerminalServices (21, 23, 25) para seguir toda la actividad de las sesiones RDP y detectar accesos no autorizados.
- Usa los desencadenadores de eventos de PowerShell para enviar alertas sobre actividad RDP inusual, inicios de sesión fallidos o intentos de acceso fuera del horario laboral.
- Refuerza la seguridad de endpoints y automatiza la monitorización y la respuesta de RDP con la plataforma de monitorización y gestión de NinjaOne.
Las sesiones de escritorio remoto no autorizadas pueden abrir brechas de seguridad graves que las herramientas de monitorización habituales suelen pasar por alto. Necesitas métodos fiables para monitorizar sesiones RDP inesperadas con las funciones de registro integradas en Windows. PowerShell y el análisis de registros de eventos permiten una monitorización completa de las sesiones sin instalar software adicional, de modo que puedes detectar amenazas potenciales antes de que causen daños.
¿Qué es el Protocolo de Escritorio Remoto?
El Protocolo de Escritorio Remoto (RDP) es el estándar de comunicación de red de Microsoft que te conecta a sistemas Windows remotos a través de una interfaz gráfica. Por defecto, el protocolo utiliza canales cifrados en el puerto TCP 3389 y transmite datos de pantalla, entradas de teclado, movimientos del ratón y audio entre tu equipo local y el servidor remoto.
Fundamentos de la monitorización de sesiones RDP
Una monitorización eficaz de las sesiones RDP empieza por unas políticas de auditoría de Windows bien configuradas, la recopilación de registros de eventos y la definición de una línea base que capture los datos de conexión completos. Tu organización necesita marcos de registro estandarizados que documenten los eventos de autenticación, la actividad de las sesiones y los cierres de conexión en todos los sistemas con RDP habilitado.
Configura el registro de auditoría para los eventos de seguridad
El registro de eventos de seguridad de Windows recoge los eventos de autenticación y de sesión de RDP mediante ID de evento concretos que muestran información detallada de la conexión, incluidas las direcciones IP de origen, las cuentas de usuario y las marcas de tiempo. El ID de evento 4624 registra los inicios de sesión correctos con el tipo de inicio de sesión 10 para las conexiones RDP, mientras que el ID de evento 4634 documenta los cierres de sesión que coinciden con el fin de una sesión.
Configurar una auditoría completa de inicios de sesión garantiza que todos los intentos de conexión RDP generen entradas en el registro de seguridad para su análisis.
Sigue estos comandos para activar el registro de auditoría adecuado:
- Abre el símbolo del sistema como administrador
- Ejecuta: auditpol /set /subcategory:»Logon» /success:enable /failure:enable
- Comprueba la configuración con: auditpol /get /subcategory:»Logon»
- Haz una prueba estableciendo una conexión RDP y revisando el Visor de eventos
- Confirma que el ID de evento 4624 aparece en los registros de seguridad con el tipo de inicio de sesión 10
Activa el seguimiento de sesiones RDP en el registro de eventos
Los registros operativos de TerminalServices-LocalSessionManager aportan datos detallados de gestión de sesiones que complementan las entradas de sesiones RDP del registro de eventos de seguridad, ya que añaden detalles de conexión e información sobre el estado de la sesión. El ID de evento 21 indica que la sesión RDP se ha establecido correctamente, el ID de evento 23 registra las desconexiones y el ID de evento 25 recoge las reconexiones cuando los usuarios retoman sesiones previamente desconectadas.
Ten en cuenta estos pasos de configuración:
- Abre PowerShell como administrador.
- Ejecuta: wevtutil sl Microsoft-Windows-TerminalServices-LocalSessionManager/Operational /e:true
- Verifícalo con: wevtutil gl Microsoft-Windows-TerminalServices-LocalSessionManager/Operational.
- Revisa el Visor de eventos para comprobar la nueva fuente de registro.
- Prueba la conexión RDP para confirmar que aparecen los eventos.
Define los patrones de conexión de referencia
Definir una línea base exige analizar de forma sistemática el uso legítimo de RDP: horarios habituales de conexión, cuentas de usuario autorizadas, direcciones IP de origen aprobadas y métricas estándar de duración de las sesiones. El análisis de datos históricos revela los horarios normales de acceso administrativo, las ventanas de mantenimiento rutinario y los patrones de comportamiento esperados de los usuarios, que sirven como referencia comparativa para detectar anomalías.
Conocer tus patrones de RDP habituales te ayuda a detectar actividad inusual que podría indicar amenazas de seguridad. El comando Get-WinEvent -FilterHashtable @{LogName=’Security’; ID=4624; Data=’10’} extrae los eventos de inicio de sesión RDP para el análisis estadístico y el cálculo de la línea base.
Configura alertas para actividades sospechosas
Los sistemas de alertas automáticas vigilan los flujos de eventos en tiempo real para detectar intentos de acceso no autorizado, patrones de conexión inusuales o comportamientos de sesión sospechosos que requieren una investigación inmediata. Los scripts de monitorización basados en PowerShell evalúan la frecuencia de las conexiones, la reputación de la IP de origen, los intentos de acceso fuera del horario laboral y las secuencias de autenticación fallidas para identificar posibles incidentes de seguridad.
La monitorización basada en eventos activa notificaciones inmediatas cuando se produce actividad sospechosa en las sesiones RDP de los sistemas supervisados. El cmdlet Register-WmiEvent habilita alertas en tiempo real para mantener informado a tu equipo de seguridad sobre posibles amenazas.
Técnicas de PowerShell para obtener las sesiones RDP
PowerShell ofrece funciones nativas para extraer, filtrar y analizar los datos de conexión RDP de los registros de eventos de Windows mediante cmdlets que acceden tanto a los registros de seguridad como a los de TerminalServices.
Usa Get-WinEvent para capturar los eventos de conexión RDP
El cmdlet Get-WinEvent da acceso completo a los registros de eventos de Windows con opciones de filtrado que aíslan los eventos relacionados con RDP de enormes conjuntos de registros con miles de entradas. Las tablas hash de filtrado específicas apuntan a los ID de evento relevantes, como 4624 para los inicios de sesión correctos, 4625 para los intentos fallidos y los eventos de TerminalServices que aportan detalles de gestión de sesiones.
Las opciones de filtrado avanzadas incluyen intervalos de tiempo para recuperar las conexiones RDP recientes dentro de periodos definidos. El comando Get-WinEvent -FilterHashtable @{LogName=’Security’; ID=4624; StartTime=(Get-Date).AddHours(-24)} recupera las conexiones RDP de las últimas 24 horas para su análisis.
Filtra y analiza los patrones de inicio de sesión con PowerShell
La arquitectura orientada a objetos de PowerShell permite analizar en profundidad los datos de eventos RDP mediante operaciones de canalización que ordenan, agrupan y filtran los registros de conexión según varios criterios a la vez. El cmdlet Where-Object filtra los eventos por propiedades concretas, como las direcciones IP de origen, las cuentas de usuario o los tipos de autenticación asociados a las conexiones RDP.
Las funciones de análisis estadístico, como Group-Object y Measure-Object, calculan la frecuencia de las conexiones, identifican patrones de acceso inusuales y generan informes resumidos que destacan posibles problemas de seguridad. Estos cmdlets integrados convierten los datos de eventos en bruto en inteligencia de seguridad aprovechable.
Crea scripts personalizados de monitorización de sesiones RDP
Los scripts de monitorización combinan el análisis de registros de eventos, las alertas en tiempo real y los informes automáticos en soluciones unificadas de PowerShell que funcionan de forma continua sin intervención manual. Las funciones personalizadas encapsulan la lógica de filtrado compleja, las rutinas de procesamiento de datos y el formato de salida para generar informes estandarizados destinados a los equipos de seguridad y a la dirección.
Sigue este enfoque de desarrollo:
- Define tus requisitos de monitorización y los umbrales de alerta.
- Crea funciones de PowerShell para filtrar y analizar eventos.
- Implementa mecanismos de alerta mediante correo electrónico o sistemas de registro.
- Añade gestión de errores y registro para que el script sea fiable.
- Prueba el script a fondo en tu entorno.
- Despliégalo como tarea programada o servicio de Windows.
Monitorización avanzada con comandos de Windows
Más allá de las técnicas básicas de PowerShell, las implementaciones de monitorización avanzada aprovechan comandos específicos de Windows, consultas WMI y API del sistema que ofrecen mayor visibilidad del estado de las sesiones RDP y de los detalles de conexión.
Clases WMI como Win32_LogonSession y Win32_NetworkLoginProfile ofrecen acceso programático a información de autenticación detallada, lo que permite un análisis de seguridad completo.
Consulta las sesiones RDP activas
El comando qwinsta ofrece visibilidad inmediata del estado actual de las sesiones RDP, incluidas las conexiones activas, las sesiones desconectadas y los inicios de sesión en consola que revelan cómo se usa el sistema. Esta utilidad de línea de comandos muestra los ID de sesión, los nombres de usuario, los nombres y tipos de sesión y los estados actuales, lo que te ayuda a identificar conexiones activas no autorizadas que requieren una investigación inmediata.
La integración con PowerShell mediante Invoke-Command permite ejecutar qwinsta de forma remota en varios sistemas y así centralizar la visibilidad del estado de las sesiones RDP en toda tu infraestructura.
Implementa flujos de respuesta automatizados
Los sistemas de respuesta automatizada ejecutan acciones predefinidas cuando una actividad RDP sospechosa activa una alerta de seguridad, lo que reduce los tiempos de respuesta y minimiza el daño potencial de los intentos de acceso no autorizado. Los scripts de PowerShell se integran con herramientas de seguridad, sistemas de gestión de tickets y plataformas de comunicación para orquestar respuestas coordinadas ante las amenazas detectadas.
Pautas a seguir:
- Define procedimientos de respuesta para los distintos tipos de amenaza.
- Crea funciones de PowerShell para cada acción de respuesta.
- Intégralas con las herramientas de seguridad y los sistemas de comunicación existentes.
- Implementa flujos de aprobación para las respuestas de gran impacto.
- Añade registros y pistas de auditoría para todas las acciones automatizadas.
Procedimientos de documentación e informes
Una documentación completa recoge las configuraciones de monitorización, las métricas de referencia, los umbrales de alerta y los procedimientos de respuesta, lo que garantiza una implementación coherente en todo tu entorno. Los informes periódicos aportan visibilidad sobre los patrones de uso de RDP, los incidentes de seguridad y la eficacia del sistema de monitorización, lo que respalda los esfuerzos de mejora continua.
Crea una estrategia completa de monitorización de sesiones RDP
Tu estrategia de monitorización de RDP necesita actualizaciones periódicas para seguir siendo eficaz frente a amenazas en evolución y a los cambios en los requisitos de tu infraestructura. Revisar cada mes los umbrales de alerta, los patrones de referencia y las reglas de detección te ayuda a adaptarte a nuevas técnicas de ataque y a los cambios en la organización. La mejora continua incluye integrar fuentes de inteligencia sobre amenazas, actualizar los scripts de PowerShell y afinar los flujos de respuesta automatizados a partir del análisis de incidentes y de los comentarios del equipo de seguridad.
Da el siguiente paso para proteger el acceso por RDP
Las sesiones RDP sin monitorizar son una invitación abierta para los atacantes. NinjaOne Remote reúne herramientas de acceso remoto seguras y fiables dentro de una plataforma completa de monitorización y gestión de endpoints que te permite detectar accesos no autorizados a sesiones remotas y responder más rápido. Comienza hoy tu prueba gratuita y recupera el control antes de que las amenazas se te escapen.
Guía de inicio rápido
Aunque no existe un script integrado específico para este fin concreto, NinjaOne ofrece varios scripts y funciones que pueden ayudarte a monitorizar las sesiones RDP:
1. Scripts relacionados con RDP:
– Existe un script «Remote Desktop – Check Status and Port» que informa del estado de Escritorio remoto y del puerto en el que está escuchando.
– Un script «Search Event Log» te permite buscar eventos concretos en el Visor de eventos según el registro de eventos, el origen o los ID de evento.
2. Enfoque de monitorización del registro de eventos:
Puedes crear un script personalizado para monitorizar las sesiones RDP revisando entradas concretas del registro de eventos de Windows. Estos son los principales ID de evento que conviene vigilar:
– ID de evento 4624 (inicio de sesión correcto)
– ID de evento 4625 (intento de inicio de sesión fallido)
– ID de evento 4634 (cierre de sesión)
– ID de evento 4647 (cierre de sesión iniciado por el usuario)
– ID de evento 4778 (sesión reconectada)
– ID de evento 4779 (sesión desconectada)
3. Método de monitorización recomendado:
– Usa el script «Search Event Log» para crear alertas sobre eventos de sesiones RDP inesperadas
– Filtra por condiciones concretas como:
– Inicios de sesión desde direcciones IP inesperadas
– Inicios de sesión fuera del horario laboral
– Varios intentos de inicio de sesión fallidos
Te recomendamos consultar con tu equipo de seguridad informática para definir los criterios concretos de lo que se considera una sesión RDP «inesperada» según las políticas de seguridad de tu organización.
