TL;DR. ShimCache vive en memoria; la colmena SYSTEM en disco solo contiene entradas volcadas en el último apagado limpio. Para recuperar las entradas de la sesión actual de un host en marcha o caído, lanza windows.shimcachemem de Volatility 3 (o el artefacto Windows.Registry.AppCompatCache de Velociraptor) contra una imagen de memoria.
El ShimCache vive en memoria volátil mientras Windows está activo, y solo se escribe en la colmena SYSTEM en un apagado limpio (más detalle del timing). Eso significa que una imagen de memoria de un host en marcha suele ser el único sitio para encontrar las entradas de ShimCache de la última sesión — exactamente las entradas más probables de ser relevantes para un incidente activo.
Cuándo importa más la copia en memoria que la del disco
Quieres el ShimCache en memoria cuando:
- El host no ha sido apagado limpiamente desde el incidente. La mayoría de reinicios duros, BSODs y cortes forzados dejan obsoleto el ShimCache de la colmena SYSTEM.
- Sospechas anti-forense. Un atacante que editó la colmena en disco puede no haber tocado la copia en memoria (que se reconstruye cada sesión). Mira detección anti-forense.
- Necesitas entradas que fueron expulsadas de la colmena en disco en el último volcado. El tope de 1.024 entradas rota las antiguas, pero pueden seguir en memoria bajo ciertas condiciones.
Con Volatility 2
El plugin clásico es shimcachemem. Contra una imagen de memoria XP–Win10:
vol.py -f memory.raw --profile=Win10x64_19041 shimcachemem
Camina las estructuras AppCompatCache dentro de la representación en memoria de la colmena SYSTEM y emite filas (mtime, ruta) igual que lo haría un parser offline. Código y notas del plugin viven en el repositorio de Volatility 2.
Con Volatility 3
Volatility 3 lo lleva adelante como windows.shimcachemem:
vol -f memory.raw windows.shimcachemem
No más selección de perfil (Vol 3 detecta el SO automáticamente). La documentación de Volatility 3 documenta el plugin junto con el resto del conjunto de artefactos de Windows.
Con Velociraptor
Si recolectas a escala en vez de analizar un único volcado, el artefacto Windows.Registry.AppCompatCache de Velociraptor lee el ShimCache en memoria directamente desde un endpoint en marcha a través de la vista de registro live. Es el mismo ShimCache que el SO habría volcado al apagar — sin esperar al apagado.
Combinar las dos vistas
En la práctica tendrás a menudo:
- el ShimCache en memoria de un plugin Volatility o una colección Velociraptor,
- el ShimCache en disco de la colmena SYSTEM del mismo host.
La copia en memoria es un superconjunto de la copia en disco en cualquier momento en que no haya sucedido un apagado limpio — pero la copia en disco puede incluir entradas ya expulsadas de memoria tras un tiempo prolongado encendido. Saca ambas, desduplica por (ruta, mtime), y alimenta la unión a tu flujo de caza.
Pasos útiles a continuación
Una vez tienes las entradas:
- Usa el Shimcache Parser para un triaje offline rápido de una colmena extraída — corre en tu navegador, sin subir nada.
- Mira la referencia del formato binario si decodificas el blob bruto tú mismo.
- Mira prueba de ejecución antes de afirmar que una entrada recuperada de memoria significa que un programa se ejecutó.
Lectura adicional
- Documentación de Volatility 3 — el framework moderno de forense de memoria.
- Volatility Foundation en GitHub — código de plugins, incluido
shimcachemem. - Velociraptor
Windows.Registry.AppCompatCache— colección en sistemas vivos.