Prefetch, AmCache, ShimCache: referencia rápida de artefactos de ejecución de programas

4 min de lectura

TL;DR. Lee en orden de prioridad: Prefetch (el más fuerte, cuando está activo) → BAM/DAM (última ejecución por usuario en Win10+, criminalmente infrautilizado) → AmCache (identificación SHA-1) → ShimCache (existencia del archivo) → UserAssist (lanzamientos vía Explorer solamente, codificado ROT13). Triangula; ningún artefacto cierra un caso por sí solo.

No existe un único artefacto de Windows que responda perfectamente a «¿se ejecutó este programa, cuándo y por quién?». Los investigadores triangulan entre varios. Esta es la lista corta práctica, con lo que cada uno te dice y lo que no.

La lista corta

ArtefactoUbicaciónRegistraFiabilidad para ejecución
PrefetchC:\Windows\Prefetch\*.pfRuta, contador de ejecuciones, 8 últimas ejecuciones, archivos cargadosMuy alta — solo se escribe al iniciar el proceso
AmCacheC:\Windows\AppCompat\Programs\Amcache.hveRuta, SHA-1, tamaño, editor, instalación + primera ejecuciónAlta — marcas explícitas de ejecución
ShimCacheColmena SYSTEM …\AppCompatCacheRuta, mtime del archivoMedia — prueba existencia, a menudo (no siempre) implica ejecución
UserAssistNTUSER.DAT …\UserAssistLanzamientos GUI por usuario vía ExplorerAlta — pero solo iniciado por usuario, nombres codificados ROT13
BAM / DAMColmena SYSTEM …\bam\StateÚltima ejecución por usuario para cada binarioMuy alta — Win10+, fácil de analizar, a menudo olvidado

A leer por orden de prioridad

1. Prefetch primero. Un archivo .pf es lo más parecido a un recibo «esto se ejecutó» que tiene Windows. Almacena hasta las últimas ocho horas de ejecución, y el Windows moderno mantiene Prefetch activado por defecto en estaciones de trabajo. PECmd de Eric Zimmerman es el parser estándar.

2. BAM / DAM segundo. Background y Desktop Activity Moderator son servicios que regulan apps en segundo plano. Guardan una marca temporal «última ejecución» por usuario y por binario en la colmena SYSTEM bajo …\bam\State y …\dam\State. Presentes en Windows 10/11, de baja relación señal-ruido, fáciles de leer con cualquier herramienta de registro.

3. AmCache tercero. AmCache cubre lo que Prefetch no ve donde está deshabilitado (¡servidores!) y aporta hashes SHA-1 para identificación inequívoca de archivos. Mira ShimCache vs AmCache para el desglose.

4. ShimCache cuarto. Trátalo como ancla de «el archivo existió», no como afirmación de ejecución. El artículo sobre prueba de ejecución explica exactamente por qué.

5. UserAssist por último. Prueba sólida de lanzamiento interactivo (iniciado por Explorer), pero ciega a cualquier cosa lanzada desde shell, tarea programada o servicio. Útil para «¿pulsó el usuario esto?», no para «¿se ha ejecutado alguna vez este binario?».

Trampas habituales

  • Prefetch puede estar desactivado en SSD o por política. No asumas que su ausencia significa que no se ejecutó nada.
  • AmCache rota y caduca. Las entradas viejas se purgan. Recoge el artefacto pronto en tu triaje.
  • Las marcas de tiempo del ShimCache son el mtime del archivo, no el momento de ejecución. Muchos investigadores lo han aprendido por las malas.
  • Los nombres de UserAssist están codificados en ROT13. Trivial de decodificar pero despista al lector casual.
  • BAM está criminalmente infrautilizado. Es una de las señales más limpias de «¿se ejecutó este binario para este usuario?» en el Windows moderno.

Herramientas

Para análisis offline de máxima fidelidad, la suite de herramientas de Eric Zimmerman es el estándar de facto — AppCompatCacheParser, AmcacheParser, PECmd, RBCmd, y compañía. La biblioteca de artefactos de Velociraptor cubre el triaje en vivo. Y para el ShimCache en concreto, puedes usar el Shimcache Parser directamente en tu navegador sin instalar nada.

Lectura adicional

Artículos relacionados