¿Cuál es la diferencia entre un archivo .pf y una entrada de Amcache?
Un archivo .pf prueba ejecución. Una entrada de Amcache
registra presencia. El mismo binario puede aparecer en ambos, en
solo uno, o en ninguno — y qué combinación observas es en sí
información investigativa.
Lado a lado#
Archivo .pf (Prefetch) |
Entrada de Amcache | |
|---|---|---|
| Dónde vive | C:\Windows\Prefetch\NAME.EXE-1A2B3C4D.pf |
Subclave dentro de Amcache.hve |
| Creado cuando | Primera vez que el binario corre | Primera vez que el appraiser inventaria el binario |
| Mantenido por | Subsistema Prefetcher | Tarea programada Compatibility Appraiser |
| ¿Prueba ejecución? | Sí | No |
| ¿Prueba presencia? | Sí (implícito — debió existir para correr) | Sí |
| ¿Tiene hash SHA-1? | No (solo hash de ruta) | Sí (SHA-1 de los primeros 31 MiB) |
| ¿Tiene publisher / versión? | No | Sí |
| ¿Marcas de tiempo de corrida? | Sí, hasta 8 (10 en Win 11) | No |
| ¿Marcas de tiempo de inventario? | No | Sí (KeyLastWriteTimestamp) |
| ¿Sobrevive al borrado del binario? | Sí (solo borrado del archivo) | Sí (persistencia del registro) |
| ¿Activado por defecto en desktops Windows? | Sí | Sí |
| ¿Activado por defecto en Servers? | A menudo desactivado | Activado (cadencia más lenta) |
Los cuatro estados#
Para cualquier binario dado en un host, observas uno de cuatro estados. Cada uno lleva una lectura diferente:
Ambos presentes#
El binario corrió, y el appraiser lo inventarió. Tienes prueba de ejecución (horas de corrida de Prefetch) y prueba de identidad (hash de Amcache + metadatos). Caso típico para software normal.
Solo Prefetch#
El binario corrió, pero Amcache no lo ha registrado. Dos razones probables:
- El binario fue borrado antes de la siguiente corrida del appraiser. Común para stagers / droppers que se auto-borran después de correr.
- El binario vive en una ruta que el appraiser no escanea.
Esta es una señal fuerte de limpieza deliberada — el patrón clásico de stager de Cobalt Strike / Sliver / Metasploit.
Solo Amcache#
El binario está presente pero nunca se ejecutó (o se ejecutó solo
como una DLL cargada por otro EXE, lo que actualiza el .pf del
otro EXE). Razones:
- Herramienta preparada esperando disparador.
- Cargada solo vía
rundll32.exe/regsvr32.exe/LoadLibrarydesde otro proceso. - Prefetch desactivado en este host.
Un hallazgo "presente pero nunca corrió" es muy diferente de "ejecutado". Útil para detectar herramientas preparadas pero sin usar.
Ambos ausentes#
El binario nunca se ejecutó y el appraiser nunca lo inventarió. Lo más cercano que llegas a "esto nunca ocurrió en este host" — pero no concluyente. Ambos artefactos pueden ser limpiados, ambos tienen huecos de cobertura, y los binarios transitorios entre pasadas del appraiser pueden no dejar rastro.
El flujo de trabajo combinado#
- Parsea Amcache con AmcacheParser.
- Parsea Prefetch con PECmd.
- Carga ambos CSVs en Timeline Explorer.
- Filtra Amcache a "PE sin firmar en ruta escribible por usuario".
- Para cada hit de Amcache, comprueba si existe un
.pfpara el mismoName. Presente → ejecución confirmada. Ausente → solo presencia. - Para cada
.pf, toma el nombre del ejecutable y comprueba Amcache para hash y metadatos.
Para cobertura completa, ver Amcache vs Prefetch.
Relacionado#
Artículos relacionados
- Amcache vs Prefetch: qué prueba realmente cada uno
Amcache registra presencia; Prefetch registra ejecución. Una guía práctica de cuándo usar cada uno, en qué se solapan y cómo combinarlos en una timeline DFIR.
- ¿Por qué mi Amcache.hve está vacío?
Tres causas comunes: el Compatibility Appraiser está desactivado, el host está recién imageado, o estás recolectando de un Server / Server Core donde el appraiser corre mucho menos a menudo.
- ¿Dónde está la clave del registro de Amcache?
Amcache es su propio archivo de hive en C:\Windows\AppCompat\Programs\Amcache.hve — no una clave bajo HKLM. Cuando es cargado por herramientas o por el propio Windows se monta como HKLM\Amcache.
- ¿Qué contiene Amcache.hve?
Amcache.hve contiene registros de inventario para cada binario PE, driver y dispositivo conectado que el Compatibility Appraiser de Windows ha visto — con hashes SHA-1, rutas, publishers y marcas de tiempo.