Artefactos de Windows · Lección 2 de 9
Sistema y cuentas: versión del SO, zona horaria, usuarios y SID
12 min de lectura
Antes de interpretar cualquier actividad de usuario en un equipo Windows, necesita conocer sus datos básicos: cómo se llama el equipo, qué versión y compilación de Windows ejecuta, qué zona horaria tenía configurada y qué cuentas existen. Estas respuestas se obtienen de los subárboles SYSTEM, SOFTWARE y SAM y de la clave ProfileList, y proporcionan el contexto para todos los hallazgos posteriores. Esta lección muestra dónde se encuentra cada valor en Windows 10 y 11, cómo se codifica y cómo vincular un identificador de seguridad (SID) con un nombre de cuenta y una carpeta de perfil.
Dónde se encuentran los valores
En una recopilación de triaje, los subárboles son archivos ubicados en C\Windows\System32\config\ (SYSTEM, SOFTWARE, SAM, SECURITY), cada uno con sus registros de transacciones .LOG1 y .LOG2. Aplique los registros antes de leer un subárbol con cambios pendientes (lección 2.1). Las rutas siguientes son relativas a la raíz de cada subárbol.
CurrentControlSet no existe en un subárbol SYSTEM sin conexión: es un enlace que Windows crea durante el arranque. Lea SYSTEM\Select, valor Current (un REG_DWORD): si es 1, el conjunto activo es ControlSet001; si es 2, es ControlSet002. Esta lección utiliza ControlSet001; sustitúyalo por el conjunto que indique Current.
| Dato | Clave | Valor(es) |
|---|---|---|
| Nombre del equipo | SYSTEM\ControlSet001\Control\ComputerName\ComputerName | ComputerName |
| Zona horaria | SYSTEM\ControlSet001\Control\TimeZoneInformation | TimeZoneKeyName, Bias, ActiveTimeBias, DaylightBias |
| Último apagado normal | SYSTEM\ControlSet001\Control\Windows | ShutdownTime |
| Versión de Windows | SOFTWARE\Microsoft\Windows NT\CurrentVersion | ProductName, EditionID, DisplayVersion, CurrentBuild, UBR, InstallDate, InstallTime |
| Cuentas locales | SAM\Domains\Account\Users | F, V, subclave Names |
| Perfiles | SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\<SID> | ProfileImagePath |
Zona horaria: el primer paso de todo examen
Las marcas de tiempo de NTFS, las horas LastWrite del Registro y los registros de eventos se almacenan en UTC, pero algunos artefactos registran la hora local, por ejemplo, las fechas de los perfiles de red (más adelante) y varios registros de texto sin formato. Las herramientas también muestran las horas en la zona que tengan configurada. Hasta que conozca la zona horaria del sistema, no podrá convertir los valores locales a UTC ni comprobar que la salida de una herramienta esté realmente en UTC. Determínela primero y anótela.
La clave TimeZoneInformation contiene:
TimeZoneKeyName: el identificador de la zona, comoE. South America Standard Time(Brasília) oW. Europe Standard Time.Bias: el desfase estándar en minutos, como REG_DWORD.DaylightBias: el desfase adicional aplicado durante el horario de verano, normalmente −60.StandardBiassuele ser 0.ActiveTimeBias: el desfase vigente cuando el sistema escribió la clave por última vez, incluido cualquier ajuste por horario de verano.
La convención de signos es la opuesta a la conocida «UTC+1»: UTC = hora local + desfase. Una zona tres horas por detrás de UTC tiene un desfase de 180; una zona una hora por delante tiene −60, que un REG_DWORD almacena en complemento a dos como 0xFFFFFFC4. Europa Central en verano tiene un ActiveTimeBias de −120 (0xFFFFFF88). Algunas herramientas muestran el valor con signo, pero Regedit y las vistas hexadecimales muestran el número de 32 bits sin interpretar, que deberá interpretar usted mismo.
ActiveTimeBias describe solo un momento. En una zona que aplica el horario de verano, un evento de la otra temporada necesita el otro desfase; por lo tanto, aplique las reglas de la zona a cada fecha en lugar de un único desfase a todo. Recuerde también que un usuario puede cambiar la zona horaria; la hora LastWrite de la clave indica cuándo se escribió por última vez.
Nombre del equipo y último apagado
ComputerName es un valor REG_SZ como DESKTOP-7K2QF4M (un nombre generado automáticamente) o un nombre elegido por el usuario o la organización. Identifica al equipo en los registros de eventos, los registros de red y los artefactos de otros equipos.
ShutdownTime es un REG_BINARY de 8 bytes que contiene un FILETIME (intervalos de 100 nanosegundos desde 1601-01-01 UTC). Windows lo escribe durante un apagado normal; después de un fallo o una pérdida de alimentación, el valor sigue mostrando el apagado normal anterior. Compárelo con los registros de eventos (lección 2.7) antes de basarse en él.
Identificación de la versión de Windows
SOFTWARE\Microsoft\Windows NT\CurrentVersion describe el sistema operativo instalado:
| Valor | Tipo | Ejemplo | Significado |
|---|---|---|---|
ProductName | REG_SZ | Windows 10 Pro | Nombre comercial (véase el error común más adelante) |
EditionID | REG_SZ | Professional | Edición; Home es Core |
DisplayVersion | REG_SZ | 23H2 | Actualización de características; las compilaciones anteriores usan ReleaseId |
CurrentBuild, CurrentBuildNumber | REG_SZ | 22631 | Número de compilación del SO |
UBR | REG_DWORD | 4317 | Revisión de la compilación de actualización (la actualización acumulativa) |
InstallDate | REG_DWORD | 0x68B6EBA4 | Segundos desde 1970-01-01 UTC |
InstallTime | REG_QWORD | FILETIME | El mismo momento en formato FILETIME |
La compilación completa es CurrentBuild.UBR, en este caso 22631.4317.
El error común: en Windows 11, ProductName sigue indicando «Windows 10 Pro», «Windows 10 Enterprise», etc. Identifique Windows 11 mediante un CurrentBuild de 22000 o superior (22000 es 21H2, 22621 es 22H2, 22631 es 23H2, 26100 es 24H2, 26200 es 25H2). Las compilaciones de Windows 10 son inferiores a 22000; 22H2 es 19045.
InstallDate e InstallTime suelen reflejar la última actualización de características o actualización en el lugar, no la instalación original, porque una actualización reinstala el SO y los reescribe. InstallDate 0x68B6EBA4 = 1.756.818.340 segundos = 2025-09-02T13:05:40Z puede ser simplemente la fecha de la última actualización en el lugar. Windows conserva copias de los valores anteriores en subclaves de SYSTEM\Setup denominadas Source OS (Updated on <date>); compruébelas antes de afirmar cuándo se instaló Windows por primera vez.
Breve contexto de red
SYSTEM\ControlSet001\Services\Tcpip\Parameters\Interfaces\{GUID} contiene una subclave por interfaz de red. Para las interfaces DHCP registra DhcpIPAddress, DhcpSubnetMask, DhcpServer, DhcpDefaultGateway y DhcpDomain, además de LeaseObtainedTime y LeaseTerminatesTime como REG_DWORD en segundos desde la época Unix (UTC). Las interfaces estáticas usan IPAddress en su lugar. Estos son los últimos valores registrados, no un historial.
SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Profiles\{GUID} enumera las redes a las que se ha conectado el equipo: ProfileName (a menudo el SSID de Wi-Fi), DateCreated (primera conexión) y DateLastConnected. Las fechas son estructuras SYSTEMTIME de 16 bytes, con ocho campos de 16 bits en little-endian (año, mes, día de la semana con domingo = 0, día, hora, minuto, segundo, milisegundos), registradas en hora local. Necesitan la zona horaria para convertirse a UTC.
Cuentas de usuario y SID
Windows identifica cada cuenta por un SID, no por su nombre. El SID de una cuenta local o de dominio tiene la forma S-1-5-21-<three sub-authorities>-<RID>:
S: prefijo de la cadena SID;1: revisión.5: autoridad de identificador, SECURITY_NT_AUTHORITY.21: la primera subautoridad, que indica un SID de equipo o dominio.- Tres subautoridades de 32 bits que identifican el equipo (para cuentas locales) o el dominio (para cuentas de dominio). Se generan durante la instalación, por lo que todas las cuentas locales del mismo equipo las comparten.
- El identificador relativo (RID), la última subautoridad, que identifica la cuenta dentro de ese equipo o dominio.
En binario, un SID consta de un byte de revisión, un byte de recuento de subautoridades, una autoridad de 6 bytes en big-endian y subautoridades de 4 bytes en little-endian: 1 + 1 + 6 + 5 × 4 = 28 bytes para un SID con cinco subautoridades.
| SID o RID | Cuenta |
|---|---|
| RID 500 | Administrador integrado (deshabilitado de forma predeterminada en Windows 10/11) |
| RID 501 | Invitado (deshabilitado de forma predeterminada) |
| RID 503 | DefaultAccount |
| RID 504 | WDAGUtilityAccount (Windows Defender Application Guard) |
| RID 1.000 o 1.001 y superiores | Habitualmente, cuentas creadas por usuarios |
S-1-5-18 | SYSTEM (LocalSystem) |
S-1-5-19 | LOCAL SERVICE |
S-1-5-20 | NETWORK SERVICE |
Los RID se asignan en orden creciente y no se reutilizan, por lo que un salto en la secuencia puede indicar una cuenta eliminada. Las cuentas unidas a Microsoft Entra ID (antes Azure AD) usan SID que comienzan por S-1-12-1-.
El subárbol SAM
SAM\Domains\Account\Users (dentro del archivo SAM se encuentra bajo una clave de nivel superior también denominada SAM; en un sistema en ejecución es HKLM\SAM\SAM\Domains\Account\Users) tiene una subclave por cuenta local, cuyo nombre es el RID expresado con ocho dígitos hexadecimales: el RID 500 es 000001F4, el RID 1.001 es 000003E9. Cada una contiene dos valores binarios que decodifican herramientas como samparse de RegRipper:
F(longitud fija): último inicio de sesión, última configuración de contraseña, caducidad de la cuenta y último inicio de sesión fallido (todos FILETIME), el RID, los indicadores de control de cuenta (por ejemplo, deshabilitada), el recuento de inicios de sesión fallidos y el recuento de inicios de sesión.V(longitud variable): nombre de usuario, nombre completo, comentario, directorio principal y los hashes cifrados de las contraseñas.
La subclave Names tiene una subclave por nombre de usuario, que permite consultar el RID a partir del nombre. Cuando se vincula una cuenta Microsoft, la clave del RID también contiene valores como InternetUserName (la dirección de correo electrónico), GivenName y SurName. Los valores de último inicio de sesión abarcan los inicios de sesión correspondientes a ese registro de cuenta local; corrobórelos con los eventos de inicio de sesión (lección 2.7).
ProfileList: del SID a la carpeta de perfil
SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\<SID> tiene una subclave por perfil de usuario del equipo, incluidos S-1-5-18, -19 y -20. ProfileImagePath indica la carpeta, como C:\Users\maria, y, por tanto, la ruta a los archivos NTUSER.DAT y UsrClass.dat de ese usuario.
Cuentas locales, Microsoft y de dominio
| Tipo de cuenta | ¿En la SAM local? | Prefijo del SID | Nombre de la carpeta de perfil |
|---|---|---|---|
| Local | Sí | SID del equipo | Nombre de la cuenta al crearla |
| Cuenta Microsoft | Sí, cuenta local vinculada | SID del equipo | A menudo, los cinco primeros caracteres del correo electrónico |
| Dominio | No | SID del dominio | Nombre de usuario de dominio en el primer inicio de sesión |
Las cuentas de dominio se almacenan en el controlador de dominio, no en la SAM local. Sus únicos rastros locales son las entradas de ProfileList, las carpetas de perfil, los registros de eventos y las credenciales en caché: de forma predeterminada, Windows almacena en caché los últimos 10 inicios de sesión de dominio (CachedLogonsCount en SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon) en el subárbol SECURITY, para que los usuarios puedan iniciar sesión sin conectarse al dominio.
El nombre de una carpeta de perfil puede diferir del nombre actual de la cuenta. Cambiar el nombre de una cuenta modifica el nombre en la SAM, pero la carpeta conserva el nombre que recibió en el primer inicio de sesión. Establezca siempre la relación mediante el SID o el RID, nunca mediante el nombre.
Ejemplo resuelto: relacionar las evidencias
Una recopilación de triaje contiene lo siguiente.
1. Vincular el SID con la entrada de la SAM. ProfileList tiene la clave S-1-5-21-1844237615-456351123-789044191-1002 con ProfileImagePath C:\Users\maria. El RID es 1.002. En la SAM, la clave 000003E9 se convierte como 0x3E9 = 3 × 256 + 14 × 16 + 9 = 768 + 224 + 9 = 1.001. Su valor V indica el nombre de usuario maria.s, y Names\maria.s lo confirma: probablemente se cambió el nombre de la cuenta después de crear el perfil. El prefijo del equipo (2847193620-1735429082-3318874019) es el mismo en los SID de las otras cuentas locales, como el -500 del Administrador, lo que demuestra que se trata de una cuenta local. El subárbol del Registro del usuario es C:\Users\maria\NTUSER.DAT.
2. Convertir ShutdownTime. Los 8 bytes son 00 24 E3 0D 08 B4 DC 01. Leídos en little-endian, dan 0x01DCB4080DE32400 = 134.180.035.600.000.000 intervalos de 100 ns. Dividido entre 10.000.000, equivale a 13.418.003.560 segundos desde 1601. Al restar 11.644.473.600 (los segundos de 1601 a 1970), se obtiene el tiempo Unix 1.773.529.960, que corresponde a 2026-03-14T23:12:40Z.
3. Convertir una hora local. TimeZoneKeyName es E. South America Standard Time y ActiveTimeBias es 180 (Brasília, UTC−3, sin horario de verano desde 2019). El DateLastConnected de un perfil de red es EA 07 03 00 06 00 0E 00 0E 00 1E 00 00 00 00 00: año 0x07EA = 2026, mes 3, día de la semana 6 (sábado), día 14, 14:30:00.000 hora local. UTC = hora local + desfase = 14:30 + 180 minutos = 17:30, por lo que corresponde a 2026-03-14T17:30:00Z. El apagado anterior fue a las 20:12:40 hora local.
Herramientas
Registry Explorer y RECmd (con un archivo por lotes como Kroll_Batch.reb) leen todos estos valores y convierten sus marcas de tiempo. RegRipper ofrece complementos por artefacto, por ejemplo, rip.exe -r SYSTEM -p timezone; otros son compname y shutdown (SYSTEM), winver, profilelist y networklist (SOFTWARE) y samparse (SAM). Compruebe los valores de las claves en una vista hexadecimal cuando una respuesta dependa de ellos.
Enfoque del examen: Prepárese para indicar la zona horaria a partir deTimeZoneKeyNamey los valores de desfase y aplicar la convención de signos UTC = hora local + desfase, identificar Windows 11 a partir deCurrentBuilda pesar de queProductNameindique «Windows 10» y convertir valores FILETIME y de época Unix a UTC en formato ISO 8601. Las preguntas suelen pedir el SID o el RID de un usuario; relacione ProfileList y SAM mediante el RID en hexadecimal, no mediante los nombres de las carpetas.
Puntos clave
- Lea
SYSTEM\Select\Currentpara encontrar el conjunto de control activo;CurrentControlSetsolo existe en un sistema en ejecución. - Determine primero la zona horaria: UTC = hora local + desfase, con los desfases negativos almacenados en complemento a dos y
ActiveTimeBiasválido solo para una temporada. - Windows 11 sigue indicando «Windows 10» en
ProductName; useCurrentBuild22000 o superior, junto conDisplayVersionyUBR. InstallDate(segundos Unix) eInstallTime(FILETIME) suelen mostrar la última actualización de características; los valores anteriores se conservan enSYSTEM\Setup\Source OS.- Un SID local es
S-1-5-21-<machine>-<RID>; la clave de la SAM es el RID expresado con ocho dígitos hexadecimales, y ProfileList relaciona el SID con la carpeta de perfil. - Las cuentas de dominio no están en la SAM local, y los nombres de las carpetas de perfil pueden no coincidir con los nombres actuales de las cuentas.