De SID a nombre de usuario en BAM: atribuir la ejecución
Cómo vincula BAM programas y cuentas: leer el SID, resolverlo con ProfileList, SAM o el dominio, los SID conocidos como SYSTEM y DWM, y las trampas a evitar.
TL;DR. Los nombres de las claves de BAM son la atribución: una subclave por SID bajo UserSettings. Resuelve los SID con la ProfileList de la colmena SOFTWARE (nombre de carpeta), la colmena SAM (nombres de cuentas locales) o el dominio (cuentas de dominio). Reconoce los SID conocidos — S-1-5-18 es LocalSystem, S-1-5-90-0-N son cuentas DWM, S-1-5-96-0-N cuentas del controlador de fuentes. Y redacta con cuidado: BAM atribuye la ejecución a una cuenta, no a una persona frente al teclado.
La atribución a un usuario es la principal ventaja de BAM frente a Prefetch, ShimCache y Amcache, que son globales al sistema. Este artículo muestra cómo pasar de un SID a un nombre que puedas poner en un informe, y hasta qué punto ese nombre es fiable. Lo básico está en la guía completa de BAM/DAM.
Leer un SID
Un identificador de seguridad como S-1-5-21-3623811015-3361044348-30300820-1119 se descompone así (Microsoft Learn):
| Parte | Valor | Significado |
|---|---|---|
| Revisión | 1 | Siempre 1 |
| Autoridad identificadora | 5 | NT Authority |
| Identificador de dominio | 21-3623811015-3361044348-30300820 | El equipo (cuentas locales) o el dominio |
| Identificador relativo (RID) | 1119 | La cuenta dentro de ese dominio |
Dos reglas prácticas de la misma documentación: el RID 500 es el Administrador integrado, y los SID nunca se reutilizan dentro de su ámbito. Dos claves de BAM que comparten la parte de dominio pertenecen al mismo equipo o dominio; compara ese prefijo con el SID del equipo para distinguir cuentas locales de cuentas de dominio.
Resolver los nombres
ProfileList (colmena SOFTWARE)
SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\<SID> tiene un valor ProfileImagePath, por ejemplo C:\Users\svc_backup. La última carpeta suele ser el nombre de la cuenta, y es lo que muestra nuestro BAM/DAM Parser en cuanto añades la colmena SOFTWARE: cada fila recibe una Cuenta junto a su SID (columna User en las exportaciones), y el filtro de cuentas muestra «nombre (SID)».
La trampa: Microsoft documenta que cambiar el nombre de una cuenta de usuario no cambia la ruta del perfil (Microsoft Learn). Por tanto, el «nombre de la carpeta de perfil» es un indicio sólido, no el nombre de cuenta oficial. En nuestros informes lo presentamos así.
Colmena SAM (cuentas locales)
Para las cuentas locales, la clave SAM\Domains\Account\Users de la colmena SAM asocia cada RID con su nombre de usuario actual. Si la parte de dominio del SID de BAM coincide con el SID del equipo, el RID se resuelve ahí. Nuestra herramienta no analiza SAM; Registry Parser o los plugins de SAM de RegRipper sí lo hacen.
El dominio
Para las cuentas de dominio, consulta al controlador de dominio (Get-ADUser -Identity <SID>) o usa los eventos de inicio de sesión del equipo, que incluyen tanto el SID como el nombre de la cuenta (EVTX Parser para los inicios de sesión 4624/4648).
SID conocidos que te encontrarás
| SID | Cuenta | Etiqueta en nuestra herramienta | Qué significa para BAM |
|---|---|---|---|
S-1-5-18 | LocalSystem | SYSTEM | Procesos atribuidos a la cuenta del sistema |
S-1-5-19 | LocalService | LOCAL SERVICE | Contexto de servicio |
S-1-5-20 | NetworkService | NETWORK SERVICE | Contexto de servicio |
S-1-5-90-0-N | Window Manager\DWM-N | DWM-N | Cuenta virtual del Desktop Window Manager para la sesión N |
S-1-5-96-0-N | Font Driver Host\UMFD-N | UMFD-N | Cuenta que usa fontdrvhost.exe |
Los tres primeros figuran en la lista de Microsoft de SID conocidos; los formatos de DWM y del controlador de fuentes están documentados en la referencia Security Identifier y en las notas de Boutnaru sobre dwm.exe.
Una clave SYSTEM con entradas fuera de System32 merece atención. En el ejemplo ficticio del sitio, S-1-5-18 muestra \Windows\Temp\svchost.exe junto al auténtico \Windows\System32\svchost.exe — justo el tipo de fila para el que existe la señal «Binario del sistema fuera de lugar». Algo se ejecutó como LocalSystem desde una carpeta temporal; en un caso real buscarías el servicio o la tarea programada que lo lanzó (instalaciones de servicios 7045, clave Services, XML de las tareas).
Una cuenta, no una persona
Una entrada de BAM bajo el SID X significa que el proceso se atribuyó a la cuenta X. No dice quién estaba frente al teclado. Nada en el registro distingue entre estas situaciones, que ejecutan código con la misma cuenta:
- el usuario ejecutó el programa él mismo,
- otra persona usó su contraseña, su token o su sesión (RDP,
runas, credenciales robadas), - lo inició una tarea programada o un servicio configurado para ejecutarse con esa cuenta,
- una herramienta de ejecución remota creó un proceso con esas credenciales.
Por eso en los informes la fórmula debe ser «ejecutado con la cuenta…», con el contexto de inicio de sesión (interactivo, RDP, red, servicio) extraído de los registros de eventos. Para accesos remotos, SRUM y los artefactos de RDP ayudan a situar la sesión.
Cuentas de servicio y cuentas compartidas
Las cuentas de servicio son donde la atribución de BAM brilla. Una cuenta de copias de seguridad que normalmente solo ejecuta un agente y de repente muestra cmd.exe, mstsc.exe y un escáner en su clave de BAM es una señal clara de uso interactivo indebido. La investigación de movimiento lateral sigue exactamente ese patrón con la cuenta ficticia svc_backup.
Las cuentas compartidas (quiosco, laboratorio, administrador genérico) son lo contrario: BAM lo atribuirá todo a un único SID. Combínalo con los eventos de inicio de sesión y las IP de origen para separar las sesiones.
Ejemplo práctico con los datos de ejemplo
Las colmenas de ejemplo ficticias detrás del botón Probar un ejemplo de la herramienta contienen tres claves de BAM:
| SID | Nombre según la ProfileList | Lectura |
|---|---|---|
S-1-5-21-3623811015-3361044348-30300820-1104 | alice | Cuenta normal |
S-1-5-21-3623811015-3361044348-30300820-1119 | svc_backup | Cuenta de servicio, misma parte de dominio |
S-1-5-18 | (conocido) | LocalSystem, etiquetado SYSTEM |
Los dos SID S-1-5-21 comparten la parte de dominio 3623811015-3361044348-30300820, así que pertenecen al mismo equipo o dominio; sus RID, 1104 y 1119, distinguen las cuentas. Sin la colmena SOFTWARE, la herramienta solo mostraría los SID; con ella, el filtro de cuentas indica alice (S-1-5-21-…-1104) y svc_backup (S-1-5-21-…-1119). Con estas dos colmenas no se puede decidir si son cuentas locales o de dominio: compara la parte de dominio con el SID del equipo de la colmena SAM, o consulta el dominio. La investigación detallada usa exactamente esta atribución para mostrar que fue la cuenta de servicio, y no la usuaria, quien ejecutó las herramientas de ataque.
Lista de comprobación
- Carga SYSTEM y SOFTWARE para que los nombres aparezcan junto a los SID.
- Compara la parte de dominio de cada SID con el SID del equipo: ¿local o de dominio?
- Obtén los nombres oficiales desde SAM (local) o el dominio.
- Trata los SID conocidos como una categoría aparte; examina con lupa las rutas inusuales bajo
SYSTEM. - Redacta «con la cuenta» y aporta el tipo y el origen del inicio de sesión desde los registros de eventos.
Todo lo anterior, salvo las consultas a SAM y al dominio, se hace directamente en el BAM/DAM Parser; consulta la guía paso a paso para el flujo completo.
Preguntas frecuentes
¿Cómo convierto un SID de BAM en un nombre de usuario?
Carga la colmena SOFTWARE y lee ProfileList\<SID>\ProfileImagePath: la última carpeta de esa ruta suele ser el nombre de la cuenta. Para cuentas locales, la colmena SAM da el nombre actual a partir del RID; para cuentas de dominio, consulta el dominio o revisa los eventos de inicio de sesión.
¿Demuestra una entrada de BAM que una persona ejecutó el programa?
Demuestra que el proceso se atribuyó al SID de esa cuenta. El registro no distingue entre el usuario, un atacante que usa su contraseña o una tarea o servicio configurado para ejecutarse con esa cuenta; aporta el contexto de inicio de sesión desde los registros de eventos.