Movimiento lateral por RDP: artefactos del equipo de origen
Qué artefactos del equipo de origen RDP muestran adónde y cuándo se conectó un usuario, y cómo usarlos para fechar y atribuir lo que muestra la caché.
Resumen. En el movimiento lateral por RDP, la máquina desde la que se conectó el atacante conserva mucho: la caché de mapas de bits (lo que mostraba la pantalla remota), el registro Microsoft-Windows-TerminalServices-RDPClient/Operational (evento 1024, con el nombre del destino), las claves de registro Terminal Server Client (destinos, UsernameHint, lista MRU), Default.rdp y las trazas de ejecución de mstsc.exe. La caché no tiene marcas de tiempo, así que estos artefactos son los que permiten fecharla y vincularla a un destino. En el destino, el registro Security (4624 con tipo de inicio de sesión 10, 4778/4779) y RemoteConnectionManager 1149 confirman el otro extremo.
Este artículo complementa la guía de análisis forense de la caché de mapas de bits RDP. Se limita deliberadamente a un pequeño conjunto de ID de evento y claves bien conocidos.
Origen y destino: quién guarda qué
| Pregunta | Equipo de origen (cliente) | Equipo de destino (servidor) |
|---|---|---|
| ¿Qué vio el usuario? | Caché de mapas de bits | No se registra |
| ¿Con qué destino se contactó? | Registro del cliente RDP, registro de Windows, Default.rdp | Su propio nombre |
| ¿Cuándo? | Eventos del registro, marcas de tiempo NTFS, trazas de ejecución | Registros Security y Terminal Services |
| ¿Con qué cuenta? | UsernameHint en el registro de Windows | Eventos de inicio de sesión |
| ¿Quién ejecutó el cliente? | El perfil al que pertenecen los archivos y las claves | No se registra |
A menudo es el lado de origen el que sobrevive. Un atacante que limpia el destino deja los artefactos del cliente en la máquina desde la que llegó, salvo que limpie también esa.
Artefactos del equipo de origen
La caché de mapas de bits
C:\Users\<user>\AppData\Local\Microsoft\Terminal Server Client\Cache\, por cuenta. Muestra contenido de pantalla del lado remoto: consolas, ventanas de carpetas, herramientas. No dice cuándo ni dónde. La recolección se explica en ubicación y adquisición de la caché de mapas de bits RDP.
Marcas de tiempo NTFS de los archivos de caché
Los archivos de caché son archivos normales, así que el sistema de archivos los fecha:
- Las marcas de tiempo
$STANDARD_INFORMATIONy$FILE_NAMEen la$MFT: creación y última escritura de cadabcache*.bmcyCache*.bin. $UsnJrnl: registros de creación, escritura y cierre de esos archivos, si el journal todavía cubre el periodo.
Trátelas como límites. Una hora de última escritura indica que el cliente escribió en el archivo en ese momento; no dice qué mosaicos se escribieron entonces, y un archivo usado en varias sesiones solo conserva sus horas más recientes. Los parsers de MFT y de USN journal leen estos datos.
El registro de eventos del cliente RDP
El registro RDPClient Operational, Microsoft-Windows-TerminalServices-RDPClient/Operational, está en el equipo de origen. El evento 1024 registra que el cliente está intentando conectarse a un servidor y da el nombre del destino. Eso le proporciona una hora y un destino que situar junto a la caché.
Registra un intento, no un inicio de sesión correcto. Combínelo con los registros del destino cuando disponga de ellos. Análisis de registros de eventos: EVTX parser.
Claves de registro de Terminal Server Client
En el NTUSER.DAT del usuario, bajo Terminal Server Client:
| Clave | Contenido |
|---|---|
HKCU\Software\Microsoft\Terminal Server Client\Servers\<host> | Una subclave por destino; UsernameHint contiene el nombre de usuario empleado |
HKCU\Software\Microsoft\Terminal Server Client\Default | De MRU0 a MRU9, los destinos recientes que muestra el cliente |
Aportan destinos y cuentas por usuario. Las horas de última escritura de las claves pueden ayudar a ordenar los hechos, pero reflejan el último cambio en la clave, no cada conexión. El registry parser lee estas colmenas.
Default.rdp
Default.rdp, en la carpeta Documentos del usuario, contiene la configuración de la última conexión hecha con los valores predeterminados del cliente. Entre otros ajustes, puede mostrar si el almacenamiento persistente de mapas de bits estaba activado (bitmapcachepersistenable:i:1), lo que indica si cabe esperar una caché.
Ejecución de mstsc.exe
Las trazas de ejecución de mstsc.exe sitúan el cliente en la cronología: el archivo Prefetch de mstsc.exe (Prefetch parser) y la jump list del cliente de Escritorio remoto (jump list parser), que puede enumerar destinos recientes.
Artefactos del equipo de destino
Cuando el destino está disponible, confirme el otro extremo:
| Registro | Evento | Significado |
|---|---|---|
| Security | 4624, tipo de inicio de sesión 10 | Inicio de sesión interactivo remoto |
| Security | 4778 / 4779 | Sesión reconectada / desconectada |
Microsoft-Windows-TerminalServices-RemoteConnectionManager/Operational | 1149 | Conexión de red al servicio de Escritorio remoto, con el usuario |
Microsoft-Windows-TerminalServices-LocalSessionManager/Operational | Eventos de sesión | Inicio de sesión, cierre de sesión, reconexión |
Mantenemos esta lista corta a propósito. En los análisis de RDP aparecen muchos otros ID de evento; varían según la versión y la configuración, y no son necesarios para fechar una caché.
Juntarlo todo: fechar la caché
Un método práctico:
- Atribuir la caché. Anote la cuenta de la ruta (
Users\<name>\). Es quien ejecutó el cliente. - Enumerar los destinos de esa cuenta. Subclaves
Serversy lista MRU del registro,Default.rdp, jump list. - Construir la cronología de conexiones. Horas y destinos del evento 1024 del registro del cliente RDP, horas de ejecución de
mstsc.exesegún Prefetch. - Acotar la caché. Horas de creación y de última escritura de cada archivo de caché; registros USN si los hay.
- Leer los mosaicos. Busque cualquier cosa que vincule el contenido a un destino o a una hora: títulos de ventana con un nombre de equipo, el reloj de la barra de tareas, fechas en listados de archivos, duraciones de transferencias.
- Contrastar en el destino. 4624 tipo 10, 4778/4779, 1149 para la misma cuenta y el mismo periodo.
Un ejemplo con los datos de muestra
La herramienta incluye un caso sintético y ficticio (FIN-WKS-07, 2026-09-14) que sigue este patrón. La caché recolectada en el equipo de origen, perfil svc_backup, contiene:
- en
Cache0000.bin, una consola tituladaFIN-WKS-07 - console (svc_backup)con un comandorclone.exe copy C:\Users\Public\data E:\exfil, una ventana de carpeta sobreE:\exfily un reloj de la barra de tareas que marca las 10:52; - en
bcache22.bmc, una vista anterior (hacia las 10:14 según el reloj) contar -xf tools.zip -C C:\ProgramData\Intely un resto de ranura de la barra de título de un editor concreds.txt.
El título de la ventana nombra el destino; los relojes dan horas de la pantalla remota. En un caso real, buscaría a continuación eventos 1024 que nombren ese equipo en torno a esas horas, una clave Servers\FIN-WKS-07 en la colmena de svc_backup e inicios de sesión 4624 de tipo 10 de esa cuenta en el destino. Informe de los valores del reloj como lo que mostraba la pantalla, y de las horas de los registros como la cronología.
Qué escribir en el informe
| Afirmación | Respaldada por |
|---|---|
| La cuenta X ejecutó el cliente RDP en el equipo A | Caché y registro de Windows en el perfil de X, Prefetch |
| X intentó una conexión al equipo B en el momento T | Evento 1024 del registro del cliente RDP |
| Se estableció una sesión en B | Registros del destino (4624 tipo 10, 1149) |
| Durante una sesión, la pantalla de B mostraba Y | Mosaicos de caché, con el método de reconstrucción |
| Y ocurrió en el momento T | Solo si lo vinculan registros, marcas de tiempo o relojes visibles, y dicho así |
Deje las pistas de triaje de la herramienta fuera de las conclusiones: «tipo consola» es un motivo para leer un mosaico primero, no un hallazgo.
Preguntas frecuentes
¿Qué equipo guarda la evidencia de una conexión RDP saliente?
El equipo de origen, la máquina donde se ejecutó el cliente de Escritorio remoto. Contiene la caché de mapas de bits, el registro de eventos del cliente RDP, las claves de registro de Terminal Server Client y las trazas de ejecución de mstsc.exe. El equipo de destino contiene los registros de inicio de sesión y de sesiones.
¿Puede la caché de mapas de bits decirme de qué servidor procede un mosaico?
No. Los mosaicos no llevan nombre de equipo ni hora. Vincúlelos a un destino con el registro del cliente RDP, las claves de registro de Terminal Server Client y los registros del equipo de destino, y con cualquier cosa visible en los propios mosaicos, como el título de una ventana.
¿Es el evento 1024 una prueba de que se estableció la sesión?
No. El evento 1024 del registro RDPClient Operational indica que el cliente estaba intentando conectarse a un servidor, con el nombre del destino. Confirme el inicio de sesión en el destino (Security 4624 con tipo de inicio de sesión 10, o RemoteConnectionManager 1149) cuando esos registros existan.