Skip to content

Cómo recopilar el repositorio WMI para análisis forense

Dónde está el repositorio WMI y cómo copiar OBJECTS.DATA, INDEX.BTR y los archivos MAPPING de forma segura: instantánea, KAPE, Velociraptor o imagen.

Publicado el 3 min de lectura

En resumen. Tome la carpeta C:\Windows\System32\wbem\Repository completa —OBJECTS.DATA, INDEX.BTR, MAPPING1.MAP, MAPPING2.MAP, MAPPING3.MAP— del mismo instante. En un host en funcionamiento, el servicio WMI bloquea los archivos: léalos desde una instantánea de volumen, con KAPE (target WBEM) o con Velociraptor. Nunca detenga el servicio WMI para copiarlos.

Dónde están los archivos

Versión de WindowsCarpeta
Vista, 7, 8, 10, 11, Server 2008 y posterioresC:\Windows\System32\wbem\Repository\
XP, Server 2003C:\WINDOWS\system32\wbem\Repository\FS\
Tras una actualización in situtambién C:\Windows.old\Windows\System32\wbem\Repository\

OBJECTS.DATA basta por sí solo para recuperar suscripciones mediante carving. INDEX.BTR y los archivos MAPPING añaden los espacios de nombres y distinguen los objetos activos de los eliminados, así que recopílelo todo.

Antes de empezar

  • No detenga Winmgmt y no ejecute winmgmt /salvagerepository ni /resetrepository antes de recopilar: reescriben el repositorio y pueden destruir los registros eliminados que busca.
  • Mantenga los archivos juntos. Un INDEX.BTR o un archivo MAPPING de otro momento apunta a páginas equivocadas. La vista estructurada se rompe; el carving sigue funcionando.
  • Recopile pronto. Las suscripciones eliminadas solo sobreviven hasta que WMI reutiliza sus páginas; las instalaciones y actualizaciones de software escriben en el repositorio.

Paso 1: Abrir un PowerShell con privilegios elevados

En el host, inicie Windows PowerShell con Ejecutar como administrador. Un simple copy de OBJECTS.DATA falla con una infracción de uso compartido mientras el servicio WMI está en ejecución.

Paso 2: Crear una instantánea y enlazarla

En la misma ventana, cree una instantánea de C: y expóngala como carpeta. La instantánea congela todos los archivos del repositorio en el mismo instante:

New-Item -ItemType Directory -Force -Path C:\triage | Out-Null
$sc = Invoke-CimMethod -ClassName Win32_ShadowCopy -MethodName Create -Arguments @{ Volume = 'C:\' }
$vss = Get-CimInstance -ClassName Win32_ShadowCopy -Filter "ID='$($sc.ShadowID)'"
cmd /c mklink /d C:\triage\vss "$($vss.DeviceObject)\"

Paso 3: Copiar la carpeta Repository

robocopy /B copia en modo de copia de seguridad, de modo que no se omite ningún archivo:

robocopy C:\triage\vss\Windows\System32\wbem\Repository C:\triage\Repository /E /B /R:0 /W:0 /NP /NDL

Paso 4: Eliminar el enlace y la instantánea

cmd /c rmdir C:\triage\vss
$vss | Remove-CimInstance

Ya tiene C:\triage\Repository. Calcule su hash y empaquételo si va a analizarlo en otro equipo (tar.exe viene con Windows 10 1803 y posteriores):

tar -a -c -f C:\triage\wmi-repository.zip -C C:\triage Repository

Los mismos cuatro pasos están disponibles como un único bloque para copiar y pegar en Cómo obtener sus datos, en la página de inicio de WMI Parser.

Con una herramienta de triaje

KAPE tiene un target WBEM que copia ambas carpetas Repository (la actual y la de Windows.old) con acceso directo al disco. Está incluido en los targets compuestos KapeTriage y !SANS_Triage, así que una colección de triaje existente puede contenerlo ya:

kape.exe --tsource C: --tdest C:\triage\kape --target WBEM

Velociraptor: recopile Windows.Triage.Targets (proyecto Velociraptor Triage) con el target WBEM desde la interfaz gráfica, una hunt o un recopilador offline. Desde la línea de comandos, el artefacto integrado Windows.Search.FileFinder puede subir la carpeta:

velociraptor.exe artifacts collect Windows.Search.FileFinder --args SearchFilesGlob=C:\Windows\System32\wbem\Repository\* --args Upload_File=Y --output C:\triage\wmi.zip

Ambas salidas pueden soltarse tal cual en WMI Parser: encuentra el repositorio dentro de la carpeta o del ZIP, incluidas las rutas de Velociraptor codificadas con porcentajes.

Desde una imagen de disco

Monte la imagen en solo lectura (por ejemplo con Arsenal Image Mounter como E:) y copie la carpeta:

robocopy E:\Windows\System32\wbem\Repository C:\triage\Repository /E /R:0 /W:0 /NP /NDL

En Linux o macOS, con la imagen montada en /mnt/win:

mkdir -p ~/triage && cp -a /mnt/win/Windows/System32/wbem/Repository ~/triage/

En FTK Imager, vaya a Windows\System32\wbem, haga clic derecho en Repository y luego en Export Files. Revise también las instantáneas de volumen de la imagen: un repositorio anterior puede conservar una suscripción que se eliminó después.

Un vistazo rápido en vivo (no sustituye a lo anterior)

Para ver lo que está activo en este momento, pregunte al propio WMI:

'__EventFilter','__EventConsumer','__FilterToConsumerBinding' | ForEach-Object { Get-CimInstance -Namespace root/subscription -ClassName $_ } | Format-List *

Esto muestra solo los objetos activos de un único espacio de nombres, nunca los eliminados, y confía en el servicio WMI de un host posiblemente comprometido. Úselo para el triaje y después analice los archivos recopilados. La checklist de investigación enumera lo que conviene revisar a continuación.

Artículos relacionados

Artículos relacionados

Leer CCM_RecentlyUsedApps del repositorio WMI: qué programas ejecutó cada usuario, cuándo y cuántas veces, incluidas copias antiguas de OBJECTS.DATA.
Checklist paso a paso para la persistencia WMI: consultas en vivo, el repositorio, eventos 5860 y 5861, Sysmon 19-21, evidencias de ejecución y limpieza segura.
Las dos suscripciones WMI que incluye Windows, SCM Event Log y BVTFilter/BVTConsumer: qué contienen, por qué son inofensivas y cómo se abusa de sus nombres.