Skip to content

Cómo analizar las claves BAM y DAM paso a paso

Flujo práctico para analizar BAM/DAM desde una colmena SYSTEM: recopilar, analizar en el navegador, acotar por usuario y control set, corroborar y exportar.

Publicado el 6 min de lectura

TL;DR. Recopila SYSTEM + sus dos archivos .LOG + SOFTWARE. Reproduce los registros si la colmena está dirty. Suelta todo en el BAM/DAM Parser. Deja activado «Solo control set activo», elige una cuenta y ordena por hora. Usa las señales para decidir qué abrir primero, revisa el panel de detalle, corrobora con Prefetch/Amcache/registros de eventos y exporta las filas filtradas. Unos veinte minutos para un solo equipo.

Este es el flujo que seguimos con un equipo Windows 10/11. Da por hecho que sabes qué es BAM — si no, lee antes la guía completa de BAM/DAM. Los ejemplos usan los datos integrados de «Probar un ejemplo»: colmenas sintéticas que describen una intrusión ficticia en un equipo llamado FIN-WKS-07. No hay datos reales.

Paso 1 — Recopilar las colmenas

Necesitas, de C:\Windows\System32\config\:

ArchivoPara qué
SYSTEMAquí están BAM y DAM
SYSTEM.LOG1, SYSTEM.LOG2Escrituras pendientes — a menudo las ejecuciones más recientes
SOFTWARELa ProfileList convierte los SID en nombres de cuenta

Los archivos están bloqueados en un sistema en marcha. Usa KAPE (target RegistryHivesSystem, o !SANS_Triage), Velociraptor, FTK Imager, o cópialos desde una imagen de disco montada. reg save HKLM\SYSTEM también sirve y genera una colmena ya consolidada. Comandos y trampas en dónde está la clave BAM y cómo recopilarla.

Si quieres actividad anterior a la última semana, extrae también SYSTEM de cada instantánea de volumen.

Paso 2 — Comprobar si la colmena está dirty y reproducir los registros

Si Windows tenía cambios sin volcar en el momento de la copia, los dos números de secuencia de la cabecera difieren: la colmena está dirty. En ese caso el BAM/DAM Parser muestra un aviso («Colmena «dirty»: las escrituras BAM más recientes pueden seguir en SYSTEM.LOG1/LOG2 y no se reproducen.»).

El analizador no reproduce los registros por sí mismo. Ejecuta rla.exe de Eric Zimmerman (o abre la colmena en Registry Explorer y guarda la copia limpia) — ambos están en la página de las herramientas EZ — y analiza el resultado. Analizar el archivo dirty tal cual sirve para un primer vistazo; simplemente no concluyas que una entrada falta.

Paso 3 — Cargar las colmenas

Abre la herramienta y:

  • suelta los archivos en la página,
  • usa Elegir archivos o Elegir una carpeta, o
  • suelta un ZIP completo de KAPE o Velociraptor.

El analizador funciona como WebAssembly en un Web Worker dentro de tu navegador; no se sube nada. Localiza las colmenas SYSTEM y SOFTWARE dentro de una colección y enumera cada archivo omitido con el motivo (un registro de transacciones, otra colmena, un archivo todo ceros de una copia bloqueada, etc.).

Después, lee la cabecera:

  • Equipo — de ControlSet00X\Control\ComputerName (FIN-WKS-07 en el ejemplo).
  • Zona horaria — el TimeZoneKeyName configurado (Romance Standard Time en el ejemplo, es decir, París).
  • Control set activo — de Select\Current.
  • Entradas / Cuentas / Señaladas — recuentos de la vista actual.

Paso 4 — Acotar la vista

Control set. Deja activado Solo control set activo. El ControlSet002 del ejemplo contiene una instantánea anterior de las entradas de alice, de antes del incidente; desactivar el filtro muestra ambas, algo útil para comparar pero ruidoso para una línea de tiempo. Más detalles en el artículo sobre la ubicación.

Cuenta. La lista de cuentas muestra cada SID con su nombre de la ProfileList, de más a menos activa. Los SID conocidos llevan etiqueta (SYSTEM para S-1-5-18, DWM-1, UMFD-0…). Cómo razonar sobre esas cuentas se explica en la atribución de BAM a usuarios.

Fuente. «BAM + DAM» por defecto; limita a una de las dos si hace falta (DAM explicado).

Orden. Haz clic en Última ejecución para leer la actividad de un usuario en orden. La columna de hora está en UTC con precisión de 100 ns; el botón Local convierte a la zona horaria de tu navegador y muestra el desfase, que no tiene por qué ser el del equipo investigado.

Búsqueda. El cuadro de filtro busca en ruta, usuario, SID o fecha — 2026-09-14 reduce el ejemplo al día del incidente, \Users\Public\ a una carpeta.

Paso 5 — Revisar las filas señaladas

La herramienta señala cuatro patrones. Son heurísticas sencillas y explicables que indican dónde mirar primero — no veredictos:

SeñalReglaEjemplo
Carpeta escribible por el usuarioRuta bajo AppData, Downloads, Desktop… de un perfil, Users\Public, ProgramData, Windows\Temp, $Recycle.Bin, PerfLogs\Users\Public\rclone.exe
Doble extensiónExtensión de documento/archivo comprimido seguida de una ejecutableInvoice_2026-0914.pdf.exe
Binario del sistema fuera de lugarNombre de un binario básico de Windows fuera de su carpeta esperada\Windows\Temp\svchost.exe
Herramienta de doble uso / ataqueNombre incluido en una lista de herramientas de administración remota, exfiltración y robo de credencialesPsExec64.exe, Advanced_IP_Scanner.exe

Activa Solo señaladas para una lista corta y luego desactívalo: las entradas de aspecto legítimo (cmd.exe, mstsc.exe, 7z.exe) suelen ser el contexto que da sentido a las señaladas.

Haz clic en cualquier fila para abrir el panel de detalle:

  • Clave de registro — ruta completa con control set y formato.
  • Datos sin procesar — el REG_BINARY completo en hexadecimal (formato explicado).
  • FILETIME — el valor de 64 bits en bruto.
  • Última escritura de la clave SID — cuándo cambió por última vez la clave de ese usuario; una comprobación útil contra la manipulación (antiforense).
  • Colmena de origen — de qué archivo sale la fila, importante cuando cargas varias colmenas SYSTEM.

Paso 6 — Corroborar

BAM te da quién, qué ruta y cuándo (por última vez). No da hash, contador, línea de comandos ni proceso padre. Para cada fila importante:

  • Prefetch — número de ejecuciones y hasta ocho horas de ejecución, archivos cargados (Prefetch Parser).
  • Amcache — SHA-1 y metadatos del archivo (Amcache Parser).
  • Registros de eventos — 4688 creación de procesos (si la auditoría está activada), evento 1 de Sysmon, inicios de sesión 4624/4648, instalaciones de servicios 7045 (EVTX Parser).
  • ShimCache — presencia de la ruta en disco (ShimCache Parser).

La matriz comparativa resume qué artefacto responde a qué pregunta.

Paso 7 — Exportar

CSV y JSON exportan las filas que se muestran en ese momento, así que aplica antes los filtros (o quítalos para una exportación completa). Los archivos llevan el nombre del equipo (FIN-WKS-07_bamdam.csv).

  • Columnas CSV: LastExecutionUtc, Program, Path, User, SID, Service, ControlSet, ActiveControlSet, LegacyLayout, Volume, Flags, SidKeyLastWriteUtc, FileTime, DataHex, SourceFile. Las celdas que empiezan por =, +, - o @ llevan un prefijo para que una ruta maliciosa no pueda ejecutarse como fórmula de hoja de cálculo.
  • El JSON añade metadatos por origen: nombre de la colmena, indicador dirty, versión del analizador, equipo, zona horaria, control sets y avisos.

Incorpora cualquiera de los dos a tu herramienta de línea de tiempo (por ejemplo Plaso o una supertimeline en hoja de cálculo) junto con los artefactos de corroboración.

Errores habituales

  • Analizar SYSTEM sin sus registros y afirmar una ausencia.
  • Mezclar las filas de ControlSet002 con la línea de tiempo actual.
  • Presentar la columna en hora local como la hora local del equipo investigado.
  • Tomar una señal por un hallazgo, o la ausencia de señal por un visto bueno.
  • Olvidar que BAM no ve las ejecuciones desde soportes extraíbles, recursos de red y muchas desde la línea de comandos.

Para un caso completo, lee la investigación ficticia de un movimiento lateral con BAM.

Artículos relacionados