¿Registra Amcache las DLLs?

Sí — en Windows 10 build 1709 (octubre de 2017) y posterior. La clave Root\InventoryApplicationFile registra tanto EXEs como DLLs que el Compatibility Appraiser clasifica como archivos PE, con el mismo schema para ambos: ruta completa, hash SHA-1, publisher, versión, fecha de link, ProgramId y KeyLastWriteTimestamp.

Los builds anteriores de Windows usaban el schema legado (Root\File y Root\Programs), que era más escaso e inconsistente respecto a las DLLs. Para cualquier investigación moderna de Windows 10/11, asume cobertura de DLLs.

Cómo encontrar DLLs en el CSV#

En *_UnassociatedFileEntries.csv y *_AssociatedFileEntries.csv de AmcacheParser:

Import-Csv .\HOST_amcache_UnassociatedFileEntries.csv |
  Where-Object { $_.Name -like '*.dll' } |
  Select-Object FullPath, Hash, KeyLastWriteTimestamp, Publisher

O filtra por BinaryType — las DLLs a menudo afloran como pe32 o pe64 con extensión .dll.

Cargas de DLL por proceso vs registros de DLL de Amcache#

Estas son señales muy diferentes:

Registro de DLL en Amcache Sysmon 7 (Image Loaded)
Disparado por Pasada de inventario del appraiser Cada carga de la DLL por proceso
Frecuencia ~Diaria Tiempo real
¿Registra contexto de proceso? No
¿Registra tiempo de carga? Solo tiempo de inventario Tiempo de carga por proceso
¿Visibilidad inter-proceso? No Sí — por proceso

Para investigaciones enfocadas en qué proceso cargó qué DLL, Sysmon Event ID 7 es el artefacto correcto. Para investigaciones enfocadas en estuvo esta DLL presente en este host, Amcache es el artefacto correcto. La combinación — uniendo Hash de Amcache con Hashes de Sysmon 7 — te da el panorama completo del lado de las DLLs.

Ataques del lado de DLL que Amcache captura#

  • DLL sideloading. DLL dejada por el atacante junto con un EXE legítimo que la carga. La DLL del atacante aparece en *_UnassociatedFileEntries.csv con una ruta inusual y un Publisher en blanco.
  • DLLs del sistema hijacked. La misma FullPath apareciendo dos veces con valores de Hash diferentes a través de dos momentos de KeyLastWriteTimestamp — la DLL en esa ruta cambió. Indicador fuerte de reemplazo de binario.
  • Señuelos de carga reflectiva. La DLL señuelo (la del disco) aparece en Amcache. La versión realmente cargada está solo en memoria y no aparecerá en Amcache — pero Sysmon Event ID 7 capturará la carga.

Para el flujo de trabajo completo de investigación con DLLs, ver Caza de malware comodín con Amcache.

Qué Amcache no captura#

  • DLLs cargadas solo desde memoria. Los loaders reflectivos (Cobalt Strike, Sliver, Metasploit Meterpreter) cargan DLLs desde buffers, no desde disco. Esas DLLs pueden no tocar nunca un archivo que el appraiser pueda escanear.
  • DLLs en rutas que el appraiser no escanea. Algunas rutas personalizadas caen fuera del alcance por defecto del appraiser.
  • Contexto de carga por proceso. Amcache no dice qué proceso cargó la DLL — usa Sysmon 7.

Relacionado#

Artículos relacionados

  • ¿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.

  • ¿Cuál es la diferencia entre un archivo .pf y una entrada de Amcache?

    Los archivos .pf son registros de Windows Prefetch — prueba de que un binario se ejecutó, con marcas de tiempo de ejecución y listas de archivos cargados. Las entradas de Amcache registran presencia, con el hash SHA-1 y metadatos.

Volver a todos los artículos