RecentFileCache vs Amcache vs Prefetch vs ShimCache
Cuatro artefactos Windows de evidence-of-execution lado a lado: qué almacena cada uno, qué no, y cuál abrir primero.
"Evidence of execution" es un trabajo que hacen varios artefactos de Windows, no uno solo. Se solapan, se contradicen y desaparecen a ritmos distintos. Este post pone los cuatro más útiles — RecentFileCache, Amcache, Prefetch, ShimCache — en la misma mesa para que dejes de adivinar cuál abrir primero.
De un vistazo
| Artefacto | Ubicación | Windows | Granularidad | Marcas de tiempo por entrada | Metadatos ricos | Sobrevive al reboot |
|---|---|---|---|---|---|---|
| RecentFileCache | C:\Windows\AppCompat\Programs\RecentFileCache.bcf | 7 solo | Solo ruta | No (mtime del archivo) | Ninguno | Sí |
| Amcache | C:\Windows\AppCompat\Programs\Amcache.hve | 7→11 | Clave de registro por entrada | Sí (LastWritten de clave, más) | Ruta, SHA-1, PE, editor, fecha de instalación | Sí |
| Prefetch | C:\Windows\Prefetch\*.pf | XP→11 | Por archivo ejecutable | Sí (últimas 8 ejecuciones) | Contador, archivos referenciados, info de volumen | Sí (poda auto a ~1024 entradas en Win10+) |
| ShimCache | Hive SYSTEM: ControlSet\Control\Session Manager\AppCompatCache | XP→11 | Por ejecutable, en memoria hasta el shutdown | LastModified (archivo), no ejecución | Ninguno | Solo con apagado limpio |
Qué responde realmente cada uno
- RecentFileCache. "¿Qué ejecutables cruzaron el escáner Application Experience desde la última ejecución de
ProgramDataUpdater?" Barato de parsear, sin metadatos, solo Win7. - Amcache. "¿Qué programas y archivos se han instalado o ejecutado en esta máquina, con hashes e info de editor, desde que se instaló el OS?" Lo más cercano a un log sistema-amplio de instalación-y-ejecución en Windows moderno.
- Prefetch. "¿Qué se ejecutó realmente, cuándo y cuántas veces — para los ~1024 binarios más recientes?" La evidencia por-ejecución más estrecha disponible sin logging dedicado.
- ShimCache. "¿Qué ejecutables ha visto la infraestructura de shim de AppCompat? ¿Cuándo se modificó cada uno por última vez?" Nota: la marca de tiempo de ShimCache es el
LastModifieddel archivo, no el momento de ejecución — este es el campo más malinterpretado en informes DFIR.
Cuándo recurrir a cuál
Un pequeño árbol de triaje para "¿se ejecutó el binario X?":
- Prefetch primero. Si
*X*.pfexiste, tienes un evento de ejecución con marca(s) de tiempo y contador de ejecuciones. Listo. - Amcache. Si un SHA-1 en
InventoryApplicationFilecoincide con tu archivo, el archivo al menos fue visto por AppCompat — combinado con Prefetch es evidencia de ejecución de alta confianza. - RecentFileCache (Win7). Si estás en Win7 y Amcache está disperso,
.bcfpuede ser el único lugar donde aterrizó una ruta reciente. Trátalo como "visto por AppCompat entre las dos últimas ejecuciones deProgramDataUpdater". - ShimCache. Evidencia corroborativa. Presencia ≈ "la infraestructura AppCompat vio un archivo en esta ruta con este
LastModified". No leas su marca de tiempo como un tiempo de ejecución.
Un escenario Win7 desarrollado
Imagina a un analista trabajando una caja Win7 comprometida. El atacante soltó C:\Users\Public\update.exe, lo ejecutó una vez, luego lo borró. El sistema se apagó a la mañana siguiente.
¿Qué sobrevive?
- Prefetch:
UPDATE.EXE-XXXXXXXX.pfprobablemente presente, con la marca de tiempo de ejecución integrada. - ShimCache: entrada presente con el
LastModifiedpre-borrado del archivo — confirma que la infraestructura AppCompat lo observó, no te dice cuándo se ejecutó. - Amcache: si
ProgramDataUpdaterse disparó entre la ejecución y el apagado, una claveInventoryApplicationFileexiste con el SHA-1, editor (o su ausencia), y elLastWrittende la clave de registro como la marca de tiempo más cercana a la ejecución que conseguirás. - RecentFileCache: ruta presente si
ProgramDataUpdateraún no la había promovido a Amcache. Si la promoción se ejecutó, la ruta puede ya haber desaparecido de.bcfmientras está presente en.hve.
Así que la misma ejecución puede dejar rastros en 4 sitios, contándote cosas ligeramente distintas. Ninguno, en solitario, es "evidencia de ejecución". Leídos juntos, triangulan con confianza.
Herramientas en esta flota
Cada artefacto de la tabla anterior tiene un parser hermano en esta colección — todos WebAssembly del lado cliente, sin upload requerido:
recentfilecache-parser— este sitio.amcache-parserprefetch-parsershim-cache-parser
Comparten estilo de código, UI y el mismo modelo de privacidad: los bytes nunca salen de tu navegador.