TL;DR. Parsea la colmena SYSTEM → filtra rutas en zonas escribibles por el usuario (AppData, Temp) y rutas de sistema inesperadas → corrobora los hits con hashes de AmCache y Prefetch → pivota sobre el SHA-1 cuando el archivo ha desaparecido. ShimCache pone nombres en tu lista de caza; no cierra el caso por sí solo.
El ShimCache es uno de los puntos de pivote de mayor señal en el threat hunting de Windows: registra los ejecutables que Windows examinó, incluso los que han sido eliminados. Este post es un flujo concreto para convertir un volcado de ShimCache en una lista corta de hosts y archivos que merecen investigación.
El flujo en cinco pasos
- Recolecta la colmena SYSTEM. Saca el archivo offline de
C:\Windows\System32\config\SYSTEM(más sus hermanos.LOG1/.LOG2) o usa un colector en vivo como Velociraptor. Para el detalle de cuándo se escribe realmente el caché, mira Dónde se almacena el ShimCache. - Parsea a una lista plana. Decodifica el blob binario en filas
(ruta, mtime, formato). El Shimcache Parser lo hace en tu navegador; los parsers de referencia lo hacen offline. - Filtra rutas sospechosas. Aquí empieza la caza — buscas patrones, no filas aisladas.
- Corrobora la ejecución. Un hit en ShimCache solo prueba existencia, no ejecución. Combina cada fila interesante con Prefetch, AmCache o registros de eventos (referencia).
- Pivota sobre el hash. Cuando el archivo en disco ha desaparecido, el SHA-1 de AmCache es tu agarradera para consultas en VirusTotal / TI (por qué ambos artefactos).
Patrones a filtrar
Estos son los patrones de ruta que los cazadores puntúan más alto en la práctica:
- Directorios escribibles por el usuario:
\AppData\Local\Temp\,\AppData\Roaming\,\Users\Public\,\ProgramData\— sitios donde usuarios y servicios pueden soltar binarios sin permisos admin. - Sistema escribible pero no debería:
C:\Windows\Temp\,C:\PerfLogs\,C:\Recycler\$Recycle.Bin\— cualquier cosa bajoC:\Windows\que no sea una ruta conocida de Windows. - Doble extensión / imitación de binarios del sistema:
svchost.exefuera de\System32\,lsass.exeen sitios raros,*.pdf.exe,*.docx.exe. - Recursos compartidos de red y medios removibles:
\\?\UNC\, letras de unidad distintas aC:,\Device\HarddiskVolumeShadowCopy*. - Herramientas de un solo uso:
psexec.exe,winrm.cmd,wmiexec.exe, artefactos decobaltstrike— las herramientas legítimas de admin se abusan a menudo.
No seas demasiado listo con regex en la primera pasada. Ordena por mtime y recorre las entradas recientes a ojo — eso encuentra cosas que los filtros heurísticos pierden.
Reglas de triaje
Cuando una fila parece interesante, unas pocas comprobaciones separan señal de ruido:
- ¿Tiene un Prefetch hermano? Eso es casi prueba de ejecución.
- ¿AmCache tiene un SHA-1? Búscalo. Un hash limpio firmado por proveedor te hace despriorizar rápido.
- ¿El mtime está sospechosamente cerca de un incidente conocido? Un binario modificado en los minutos próximos a una alerta merece más atención.
- ¿El directorio padre es el perfil del usuario, pero el usuario no debería ser admin? Razonable, pero vigila indicadores de elevación (Sysmon 4688 con tokens elevados).
Lo que este flujo no te dice
El ShimCache por sí mismo no te dirá quién lanzó el binario, con qué argumentos o cuándo. Para eso necesitarás Sysmon, registros de Seguridad o una línea temporal completa de ejecución. El trabajo del ShimCache es poner nombres en tu lista de caza — no cerrar la investigación por sí solo.
Lectura adicional
- AppCompatCacheParser de Eric Zimmerman — parser offline de referencia.
Windows.Registry.AppCompatCachede Velociraptor — colección a escala.- ShimCache & AmCache forensic analysis (Mehrnoush) — walkthrough basado en casos.