TL;DR. El orden de prioridad que uso de verdad en triage: Prefetch (el más fuerte cuando está activado), BAM/DAM (última ejecución por usuario en Win10+, criminalmente infrautilizado), AmCache (identificación por SHA-1), ShimCache (anclaje de existencia), UserAssist (solo lanzamientos iniciados desde Explorer). Ningún artefacto único cierra un caso. Triangula o deja de afirmar ejecución.
No hay un único artefacto de Windows que responda perfectamente "¿se ejecutó este programa, cuándo y por quién?". Quien te diga lo contrario no ha trabajado suficientes casos o te está vendiendo algo. Lo que funciona es una lista corta de artefactos que cubren cada uno una parte de la pregunta y el hábito de cruzarlos.
La lista corta
| Artefacto | Ubicación | Registra | Fiabilidad para ejecución |
|---|---|---|---|
| Prefetch | C:\Windows\Prefetch\*.pf | Ruta, conteo de ejecuciones, últimas 8 horas de ejecución, archivos cargados | Muy alta. Solo se escribe al arrancar un proceso. |
| AmCache | C:\Windows\AppCompat\Programs\Amcache.hve | Ruta, SHA-1, tamaño, editor, instalación + primera ejecución | Alta. Marcas de tiempo de ejecución explícitas. |
| ShimCache | Hive SYSTEM …\Session Manager\AppCompatCache | Ruta, mtime del archivo | Media. Prueba existencia; a menudo (no siempre) implica ejecución. |
| UserAssist | NTUSER.DAT …\UserAssist (registry) | Lanzamientos GUI por usuario via Explorer | Alta, pero solo lo iniciado por usuario, nombres codificados en ROT13. |
| BAM / DAM | Hive SYSTEM …\bam\State y …\dam\State | Última ejecución por usuario de cada binario | Muy alta. Win10+, fácil de parsear, a menudo se pasa por alto. |
Leerlos en orden de prioridad
1. Prefetch primero. Un archivo .pf es lo más parecido que tiene Windows a un "recibo de que esto se ejecutó". Hasta ocho tiempos de ejecución, conteo total, lista de módulos cargados. Las SKU de estación de trabajo dejan Prefetch activado por defecto. El PECmd de Eric Zimmerman es el parser canónico. El parser de Prefetch cubre el formato si quieres rodar el tuyo.
2. BAM / DAM segundo. Background and Desktop Activity Moderator estrangulan apps en segundo plano y guardan marcas de tiempo "última ejecución" por usuario y por binario en el hive SYSTEM bajo …\Services\bam\State y …\Services\dam\State. Presentes en Windows 10 y 11, poco ruidosos, fáciles de leer. He cerrado casos con filas BAM que nadie del equipo IR original se había molestado en sacar.
3. AmCache tercero. Respalda a Prefetch en servidores (donde Prefetch suele estar desactivado) y en hosts donde el atacante limpió la carpeta Prefetch. Los hashes SHA-1 son la killer feature: cuando el archivo está borrado, el hash es tu único asidero para VirusTotal e inteligencia de amenazas. Mira ShimCache vs AmCache.
4. ShimCache cuarto. Anclaje de existencia, no afirmación de ejecución. El post de prueba de ejecución cubre el razonamiento.
5. UserAssist al final. Evidencia fuerte de lanzamiento interactivo via Explorer. Ciego a cualquier cosa lanzada desde un shell, una tarea programada o un servicio. Útil cuando la pregunta es "¿hizo el usuario clic en esto?". Léelo con cualquier herramienta de registro que maneje ROT13; el registry parser lo decodifica inline.
Cosas que muerden
- Prefetch puede estar desactivado. Los SSD, las SKU de servidor y la política de grupo lo desactivan. Un Prefetch vacío no es evidencia de ausencia.
- AmCache rota. Las entradas viejas envejecen y se pierden. Saca el hive temprano en triage.
- Las marcas de tiempo del ShimCache son la mtime del archivo. No la hora de ejecución. No la hora de volcado. La mtime del archivo. Reléelo hasta que se te quede.
- UserAssist es ROT13. Trivial de decodificar pero confunde a los lectores casuales.
- BAM está infrautilizado. Quizá la señal "¿se ejecutó este binario para este usuario?" más limpia en Windows moderno.
Otros artefactos que vale la pena conocer según el caso: RecentFileCache (legacy de Win7), SRUM para uso de red y procesos en 30 días, jump lists y archivos LNK para actividad de shell, la MFT y el USN journal para líneas de tiempo a nivel de sistema de archivos.
Tooling
Para parsing offline de máxima fidelidad, la suite de herramientas de Eric Zimmerman es el estándar de facto. AppCompatCacheParser, AmcacheParser, PECmd, RBCmd, todos fiables. Velociraptor maneja triage en vivo a escala de flota. Específicamente para ShimCache, el Shimcache Parser lee un hive directamente en el navegador sin instalar nada.
Lectura adicional
- AppCompatCacheParser de Eric Zimmerman. parser ShimCache de referencia.
- Artefacto ShimCache de Velociraptor. lógica de recolección en sistema vivo.
- ShimCache & AmCache forensic analysis de Mehrnoush. análisis extendido basado en casos.