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
| Artefacto | Ubicación | Registra | Fiabilidad para ejecución |
|---|---|---|---|
| Prefetch | C:\Windows\Prefetch\*.pf | Ruta, contador de ejecuciones, 8 últimas ejecuciones, archivos cargados | Muy alta — solo se escribe al iniciar el proceso |
| AmCache | C:\Windows\AppCompat\Programs\Amcache.hve | Ruta, SHA-1, tamaño, editor, instalación + primera ejecución | Alta — marcas explícitas de ejecución |
| ShimCache | Colmena SYSTEM …\AppCompatCache | Ruta, mtime del archivo | Media — prueba existencia, a menudo (no siempre) implica ejecución |
| UserAssist | NTUSER.DAT …\UserAssist | Lanzamientos GUI por usuario vía Explorer | Alta — pero solo iniciado por usuario, nombres codificados ROT13 |
| BAM / DAM | Colmena SYSTEM …\bam\State | Última ejecución por usuario para cada binario | Muy 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
- AppCompatCacheParser (Zimmerman) — parser ShimCache de referencia.
- Artefacto ShimCache de Velociraptor — lógica de recolección en sistemas en vivo.
- ShimCache & AmCache forensic analysis (Mehrnoush) — análisis detallado basado en casos.