Artefactos de Windows · Lección 7 de 9
Registros de eventos: inicios de sesión, RDP, servicios y PowerShell
12 min de lectura
Los registros de eventos de Windows registran quién inició sesión, desde dónde y cómo, qué servicios y tareas se instalaron, cuándo se inició y se detuvo el sistema y, en ocasiones, el código de PowerShell que se ejecutó, todo ello con una hora UTC precisa. Esta lección aborda el formato EVTX, los eventos que los examinadores utilizan con mayor frecuencia en Windows 10 y 11 y cómo correlacionar varios registros para obtener un relato único de una sesión.
Dónde se encuentran los registros y cómo se estructura EVTX
Los registros se encuentran en C:\Windows\System32\winevt\Logs, con un archivo por canal. Los registros clásicos son Security.evtx, System.evtx y Application.evtx. Los demás canales utilizan el nombre del canal con la barra escrita como %4: el canal Microsoft-Windows-TerminalServices-LocalSessionManager/Operational se almacena como Microsoft-Windows-TerminalServices-LocalSessionManager%4Operational.evtx. Una recopilación de triaje copia estos archivos con sus rutas originales; compruebe que se hayan recopilado los canales que necesita antes de concluir que un evento nunca ocurrió.
El formato EVTX es sencillo en su nivel superior:
| Parte | Tamaño | Firma | Contenido |
|---|---|---|---|
| Cabecera del archivo | 4.096 bytes | ElfFile | Números del primer y del último bloque, ID del siguiente registro, indicadores (p. ej., de estado no limpio) |
| Bloque | 65.536 bytes (64 KB) | ElfChnk | Cabecera de bloque de 512 bytes, tablas de cadenas y plantillas, registros |
| Registro de evento | variable | bytes 2A 2A 00 00 | Tamaño del registro, ID del registro, hora de escritura (FILETIME), XML binario |
Los registros se almacenan como XML binario, una codificación compacta que hace referencia a plantillas guardadas en el bloque; los analizadores reconstruyen el XML que se ve en el Visor de eventos. Los bloques autónomos también se pueden recuperar del espacio no asignado mediante carving.
Campos de los registros
Cada registro tiene una sección System y una sección de datos:
- Provider (el componente que lo escribió, p. ej.,
Microsoft-Windows-Security-Auditing) y EventID. El mismo número puede significar cosas distintas para distintos proveedores, por lo que siempre deben leerse juntos. - TimeCreated SystemTime, siempre en UTC, p. ej.,
2026-03-14T22:47:33.2014417Z. - EventRecordID, un número de secuencia por registro de eventos; los saltos o un reinicio en 1 merecen un examen más detenido.
- Channel y Computer (el nombre del equipo cuando se escribió el evento).
- EventData (o UserData): campos con nombre, como
TargetUserNameoIpAddress.
Tamaño y sobrescritura cíclica
Cada registro tiene un tamaño máximo y, de forma predeterminada, sobrescribe sus eventos más antiguos cuando se llena. El registro Security suele tener un tamaño predeterminado de 20 MB, por lo que, en un sistema con mucha actividad, puede abarcar solo unos días. Los canales Operational tienen sus propios límites, a menudo menores, pero reciben menos eventos, por lo que pueden remontarse más atrás que Security. En los registros clásicos, el tamaño configurado corresponde al valor MaxSize en ControlSet00x\Services\EventLog\<log> dentro del subárbol SYSTEM; compare el registro más antiguo con el período investigado.
Inicios de sesión en el registro Security
Los eventos de Security dependen de la directiva de auditoría. Windows 10 y 11 auditan de forma predeterminada los inicios de sesión correctos y fallidos, pero muchas categorías, incluida la creación de procesos, están desactivadas salvo que se habiliten. La ausencia de un evento no demuestra que la acción no ocurriera.
4624 (inicio de sesión correcto) es el evento principal. Sus campos clave son TargetUserName, TargetUserSid, TargetLogonId, LogonType, IpAddress, WorkstationName (el nombre del cliente), LogonProcessName (p. ej., User32, NtLmSsp, Kerberos) y AuthenticationPackageName (p. ej., Negotiate, NTLM, Kerberos).
| LogonType | Nombre | Causa habitual |
|---|---|---|
| 2 | Interactivo | Inicio de sesión con teclado en la consola |
| 3 | Red | Acceso a un recurso compartido o NLA antes de RDP |
| 4 | Por lotes | Tarea programada |
| 5 | Servicio | Servicio iniciado con una cuenta |
| 7 | Desbloqueo | Estación de trabajo desbloqueada o sesión reconectada |
| 8 | Red con texto sin cifrar | Credenciales enviadas en texto sin cifrar (p. ej., autenticación básica de IIS) |
| 9 | Nuevas credenciales | runas /netonly: nuevas credenciales para conexiones salientes |
| 10 | Interactivo remoto | Escritorio remoto |
| 11 | Interactivo con credenciales en caché | Inicio de sesión de dominio con credenciales en caché, sin controlador de dominio |
4625 (inicio de sesión fallido) tiene la misma estructura, además de Status y SubStatus. El valor de SubStatus 0xC000006A indica una contraseña incorrecta para una cuenta existente; 0xC0000064 indica que el nombre de usuario no existe. Muchos fallos 0xC0000064 desde una misma IP sugieren intentos de adivinar nombres de usuario; una ráfaga de 0xC000006A seguida de un 4624 para esa cuenta sugiere que se logró adivinar la contraseña.
Otros eventos de la misma familia:
- 4634 cierre de sesión (la sesión terminó) y 4647 cierre de sesión iniciado por el usuario (el usuario eligió Cerrar sesión).
- 4648 inicio de sesión con credenciales explícitas, p. ej.,
runaso la asignación de una unidad con otra cuenta. - 4672 privilegios especiales asignados a un nuevo inicio de sesión: la cuenta posee privilegios sensibles, normalmente de administrador (o SYSTEM).
- 4720 cuenta de usuario creada, 4722 habilitada, 4724 intento de restablecimiento de contraseña, 4732 miembro agregado a un grupo local habilitado para seguridad (p. ej., Administradores).
- 4688 creación de procesos, solo cuando está habilitada la opción "Auditar creación de procesos"; el campo
CommandLinesolo se rellena cuando también está configurada la directiva adicional "Incluir línea de comandos en los eventos de creación de procesos".
El ID de inicio de sesión (TargetLogonId en 4624, un valor de 64 bits mostrado en hexadecimal) identifica una sesión de inicio de sesión hasta que termina. Los eventos posteriores lo incluyen como SubjectLogonId (4672, 4688, 4648) o TargetLogonId (4634, 4647), por lo que filtrar por él permite reunir todo lo realizado en esa sesión. Los ID de inicio de sesión solo son únicos hasta el siguiente reinicio, por lo que debe combinar el ID con el intervalo de tiempo.
Escritorio remoto en tres registros
Una sesión RDP deja eventos en el equipo de destino en tres canales:
- RemoteConnectionManager/Operational 1149, "Autenticación de usuario correcta", con el usuario, el dominio y la IP de origen. Muestra que se aceptó una conexión RDP desde esa IP para ese nombre de usuario; no muestra que se iniciara una sesión de escritorio.
- Security 4624 de tipo 10 con la misma IP en
IpAddress. Con la autenticación a nivel de red (NLA), suele aparecer justo antes un inicio de sesión de tipo 3 desde la misma IP. Una reconexión o un desbloqueo pueden mostrar el tipo 7 en su lugar. - LocalSessionManager/Operational (LSM) 21 (inicio de sesión correcto), 22 (notificación de inicio del shell recibida), 24 (sesión desconectada) y 25 (reconexión de sesión correcta), cada uno con el usuario, el ID de sesión y la dirección de origen. Los inicios de sesión en consola muestran
LOCALcomo dirección. - Security 4778 (sesión reconectada) y 4779 (sesión desconectada), con
LogonID,ClientNameyClientAddress, si se audita "Otros eventos de inicio y cierre de sesión".
Cerrar la ventana de RDP desconecta la sesión sin cerrarla: aparecen 24 y 4779, pero 4634 solo aparece cuando el usuario cierra la sesión o esta se restablece.
Servicios, tareas, arranque y apagado
En el registro System, 7045 (proveedor Service Control Manager) registra la instalación de un servicio con ServiceName, ImagePath, StartType y AccountName. Un nombre aleatorio con un ImagePath que ejecuta cmd.exe o powershell.exe es típico de las herramientas de ejecución remota. 7036 registra que un servicio pasa al estado en ejecución o detenido. 6005 y 6006 (servicio de registro de eventos iniciado/detenido) marcan el arranque y el apagado correcto, 6008 registra que el apagado anterior fue inesperado y 1074 (proveedor User32) identifica el proceso y el usuario que iniciaron un apagado o reinicio.
En Microsoft-Windows-TaskScheduler/Operational, 106 registra la inscripción de una tarea con su nombre y el usuario que la registra, y 200/201 registran el inicio y la finalización de una acción de tarea. Este canal puede estar deshabilitado, por lo que debe comprobar que contiene eventos. La lección 2.6 aborda los eventos de dispositivos USB.
PowerShell
- Microsoft-Windows-PowerShell/Operational 4104 (registro de bloques de script) registra el código que se ejecutó, después de decodificarlo, con un
ScriptBlockId; los scripts largos abarcan varios registros ("1 de 3"). Con la directiva activada, se registran todos los bloques. Sin ella, Windows PowerShell 5.x puede registrar automáticamente algunos bloques de script, con nivel de advertencia, cuando considera sospechoso su contenido. - 4103 (registro de módulos) registra detalles de ejecución de la canalización, como comandos y parámetros, cuando está habilitado el registro de módulos.
- Windows PowerShell.evtx 400 y 403 marcan el inicio y la detención del motor; su campo
HostApplicationmuestra la línea de comandos que inició PowerShell, incluidos los valores de-EncodedCommand. 600 registra el inicio de proveedores. - PowerShell 7 utiliza su propio canal
PowerShellCore/Operational.
Fuera de los registros, PSReadLine guarda los comandos escritos en la consola en %APPDATA%\Microsoft\Windows\PowerShell\PSReadLine\ConsoleHost_history.txt para cada usuario y conserva de forma predeterminada las últimas 4.096 líneas. No contiene marcas de tiempo, por lo que debe fechar sus entradas mediante correlación (4104, tiempos del sistema de archivos).
Registros borrados
Security 1102 ("Se borró el registro de auditoría") y System 104 (otro registro borrado) registran quién borró un registro. El módulo 7 aborda el borrado de registros como técnica antiforense.
Herramientas y método
El Visor de eventos puede abrir un archivo .evtx copiado para realizar comprobaciones puntuales, pero muestra la hora local del equipo de análisis. Para el análisis, procese todos los registros en una sola tabla: EvtxECmd, por ejemplo, utiliza mapas que normalizan los campos de los eventos en columnas comunes (usuario, equipo remoto, ejecutable) y genera CSV en UTC. Las herramientas de búsqueda de amenazas, como Hayabusa y Chainsaw, aplican reglas de detección en numerosos registros; verifique cada coincidencia en el registro original.
Ejemplo resuelto: una sesión RDP
Una recopilación de triaje de la estación de trabajo WS-FIN-07 muestra estos eventos (UTC):
| Hora (UTC) | Registro | ID | Valores clave |
|---|---|---|---|
| 2026-03-14T22:47:31.512Z | RemoteConnectionManager | 1149 | Usuario mreyes, origen 203.0.113.45 |
| 2026-03-14T22:47:33.201Z | Security | 4624 | Tipo 10, mreyes, TargetLogonId 0x3E1A2B, IpAddress 203.0.113.45, estación de trabajo DESKTOP-K2M9QX |
| 2026-03-14T22:47:33.215Z | Security | 4672 | SubjectLogonId 0x3E1A2B |
| 2026-03-14T22:47:33.640Z | LocalSessionManager | 21 | WS-FIN-07\mreyes, ID de sesión 3, 203.0.113.45 |
| 2026-03-14T22:47:34.902Z | LocalSessionManager | 22 | ID de sesión 3 |
| 2026-03-14T23:31:05.117Z | LocalSessionManager | 24 | ID de sesión 3, 203.0.113.45 |
| 2026-03-14T23:31:05.140Z | Security | 4779 | LogonID 0x3E1A2B, ClientName DESKTOP-K2M9QX |
Vinculación. El usuario y la IP vinculan 1149 con 4624; el TargetLogonId de 4624 lo vincula con 4672 y 4779; el usuario, la IP y el ID de sesión vinculan los tres eventos de LocalSessionManager. Algunas herramientas muestran los ID de inicio de sesión en decimal: 0x3E1A2B = 62 × 65.536 + 0x1A2B (6.699) = 4.069.931.
Interpretación. mreyes se conectó desde 203.0.113.45 (equipo cliente DESKTOP-K2M9QX), inició sesión a las 22:47:33Z con privilegios especiales (4672) y se desconectó a las 23:31:05Z. Duración: 23:31:05.117 − 22:47:33.201 = 43 min 31,916 s. No aparece después ningún 4634 ni 4647, por lo que la sesión permaneció iniciada, pero desconectada. Filtrar por 0x3E1A2B en este intervalo mostraría qué se ejecutó en la sesión, si se auditaba 4688.
Referencia de ID de eventos
| Registro | ID | Significado |
|---|---|---|
| Security | 4624 / 4625 | Inicio de sesión correcto / fallido |
| Security | 4634 / 4647 | Cierre de sesión / cierre de sesión iniciado por el usuario |
| Security | 4648 | Inicio de sesión con credenciales explícitas |
| Security | 4672 | Privilegios especiales asignados a un nuevo inicio de sesión |
| Security | 4720 / 4722 / 4724 / 4732 | Cuenta creada / habilitada / contraseña restablecida / agregada a un grupo local |
| Security | 4688 | Proceso creado (si se audita) |
| Security | 4778 / 4779 | Sesión RDP reconectada / desconectada |
| Security | 1102 | Registro Security borrado |
| RemoteConnectionManager/Operational | 1149 | Autenticación de usuario RDP correcta |
| LocalSessionManager/Operational | 21 / 22 / 24 / 25 | Inicio de sesión / inicio del shell / desconexión / reconexión |
| System | 7045 / 7036 | Servicio instalado / cambio de estado del servicio |
| System | 6005 / 6006 / 6008 | Registro de eventos iniciado / detenido / apagado inesperado |
| System | 1074 | Apagado o reinicio iniciado |
| System | 104 | Registro borrado |
| TaskScheduler/Operational | 106 / 200 / 201 | Tarea registrada / acción iniciada / completada |
| PowerShell/Operational | 4104 / 4103 | Registro de bloques de script / de módulos |
| Windows PowerShell | 400 / 403 / 600 | Motor iniciado / detenido / proveedor iniciado |
Enfoque del examen: Deberá poder indicar una hora de inicio de sesión en UTC, una IP de origen, un ID de inicio de sesión, un nombre de estación de trabajo cliente o elImagePathde un servicio a partir de registros analizados, y elegir el evento adecuado para una pregunta (1149 frente a 4624 de tipo 10 frente a LSM 21). Conozca los tipos de inicio de sesión y los dos códigos SubStatus habituales de 4625, y esté preparado para explicar por qué la falta de un evento puede deberse a la directiva de auditoría o a la sobrescritura cíclica y no a la inactividad. Obtenga las horas deSystemTime, no de un visor que las convierta a la hora local.
Puntos clave
- Los archivos EVTX se encuentran en
C:\Windows\System32\winevt\Logs; a una cabeceraElfFilede 4 KB le siguen bloquesElfChnkde 64 KB que contienen registros XML binarios con horas UTC y un EventRecordID. - Los registros se sobrescriben cíclicamente: el registro Security suele tener solo 20 MB, por lo que debe comparar su registro más antiguo con el período de interés.
- 4624 proporciona el usuario, SID, LogonType, ID de inicio de sesión, IP y estación de trabajo; Status/SubStatus de 4625 explican los fallos; 4672 identifica los inicios de sesión con privilegios.
- RDP aparece como 1149, 4624 de tipo 10, LSM 21/22/24/25 y 4778/4779; vincúlelos por usuario, IP, ID de sesión e ID de inicio de sesión.
- 7045 registra nuevos servicios, 106/200/201 tareas programadas y 4104 código de PowerShell; ConsoleHost_history.txt conserva los comandos escritos sin horas.
- Muchos eventos dependen de la directiva de auditoría o de registro, por lo que su ausencia no demuestra que no hubiera actividad.