Cheatsheet CLI de AmcacheParser: cada opción, con ejemplos prácticos

Esta es la referencia práctica y copiable para AmcacheParser.exe. Para el contexto sobre qué hace la herramienta, ver la guía completa de AmcacheParser. Para detalles sobre el CSV que produce, ver Las columnas de salida de AmcacheParser explicadas.


Referencia de opciones#

Requerido (una de las dos)#

Opción Descripción
-f <ruta> Ruta a un único archivo Amcache.hve.
-d <dir> Directorio para recorrer recursivamente, analizando cada Amcache.hve encontrado. Útil cuando has recogido hives de muchos hosts en un solo árbol.

Salida#

Opción Descripción
--csv <dir> Requerido. Directorio de salida para los CSVs por categoría.
--csvf <nombre> Nombre de archivo base opcional. Triage multi-host: ponlo a <HOSTNAME> para que los CSVs ordenen limpiamente.

Filtros e inclusión#

Opción Descripción
-i Incluir entradas con IsOSComponent = true (binarios incluidos en Windows). Desactivado por defecto — los componentes Windows añaden decenas de miles de filas de bajo valor.
--mp Multi-pasada. Vuelve a recorrer para recuperar entradas huérfanas que se descartarían. Añade unos segundos; casi siempre vale la pena.
--nl Omitir journals de transacciones incluso si están presentes (rara vez correcto — ver advertencia abajo).

Logging y depuración#

Opción Descripción
--debug Logging de depuración verboso a stderr. Úsalo cuando un análisis parezca incorrecto.
--trace Verbosidad máxima. Redirige a un archivo; la salida es grande.

Combinaciones comunes#

La invocación "buenos defaults" en la que la mayoría de analistas estandariza:

AmcacheParser.exe -f <hive> --csv <dirsalida> --csvf <HOSTNAME>_amcache.csv --mp

Añade -i solo cuando necesites específicamente las filas de componentes OS (p. ej. investigando una DLL del sistema secuestrada).

Advertencia sobre journals de transacciones. Amcache.hve escribe a través de .LOG1 / .LOG2 como cualquier hive del registro. Recoge siempre los journals junto al hive, y nunca pases --nl salvo que tengas una razón específica para ignorar los journals — puedes perder silenciosamente la actividad más reciente.


Ejemplos prácticos#

Ejemplo 1 — un host, un hive#

AmcacheParser.exe `
  -f 'C:\Triage\HOST01\Windows\AppCompat\Programs\Amcache.hve' `
  --csv 'C:\Triage\HOST01\out' `
  --csvf 'HOST01_amcache.csv' `
  --mp

Produce:

C:\Triage\HOST01\out\
├── HOST01_amcache_AssociatedFileEntries.csv
├── HOST01_amcache_UnassociatedFileEntries.csv
├── HOST01_amcache_ProgramEntries.csv
├── HOST01_amcache_ShortcutEntries.csv
├── HOST01_amcache_DriverBinaries.csv
├── HOST01_amcache_DevicePnps.csv
└── HOST01_amcache_DeviceContainers.csv

Ejemplo 2 — procesar muchos hives en batch con PowerShell#

Cuando has recogido hives de 50 hosts en un solo árbol:

$root    = 'C:\Cases\2026-INC-042\collected'
$outRoot = 'C:\Cases\2026-INC-042\parsed'
 
Get-ChildItem -Path $root -Filter Amcache.hve -Recurse | ForEach-Object {
    # Asume que la ruta padre codifica el nombre del host, p. ej. ...\HOST01\Windows\AppCompat\Programs\Amcache.hve
    $hostName = ($_.FullName -split '\\')[-5]
    $hostOut  = Join-Path $outRoot $hostName
    New-Item -ItemType Directory -Path $hostOut -Force | Out-Null
 
    & 'C:\Tools\ZTools\net6\AmcacheParser\AmcacheParser.exe' `
        -f      $_.FullName `
        --csv   $hostOut `
        --csvf "${hostName}_amcache.csv" `
        --mp |
      Out-File (Join-Path $hostOut "${hostName}_amcache.log") -Encoding utf8
}

La captura de log por host es lo que la mayoría de pipelines olvida; quieres saber qué análisis advirtieron sobre journals faltantes o discrepancias de esquema sin volver a ejecutar todo.

Ejemplo 3 — modo recursivo#

Si tu recolección ya vive en un árbol que AmcacheParser puede recorrer por sí mismo:

AmcacheParser.exe `
  -d 'C:\Cases\2026-INC-042\collected' `
  --csv 'C:\Cases\2026-INC-042\parsed' `
  --mp

--csvf se ignora en modo -d — los nombres de archivo de salida se derivan de la ruta origen de cada hive.

Ejemplo 4 — host de analista no-Windows#

En Linux o macOS con el runtime .NET instalado:

dotnet /opt/ztools/net6/AmcacheParser/AmcacheParser.dll \
  -f   /cases/inc-042/HOST01/Amcache.hve \
  --csv /cases/inc-042/HOST01/out \
  --csvf HOST01_amcache.csv \
  --mp

Mismas opciones, misma salida. Si tu equipo es enteramente no- Windows y solo necesitas triage, el analizador en navegador de este sitio elimina la dependencia de .NET por completo — suelta un hive y lee las categorías sin instalar nada.


Integración con KAPE#

KAPE gestiona tanto la recolección como el análisis. El patrón canónico:

# Recoger el hive + journals de transacciones
.\kape.exe `
  --tsource C: `
  --target Amcache `
  --tdest .\out\HOST01\collected
 
# Analizar el hive recogido con AmcacheParser
.\kape.exe `
  --msource .\out\HOST01\collected `
  --module AmcacheParser `
  --mdest .\out\HOST01\parsed

El módulo AmcacheParser de KAPE envuelve las opciones CLI de arriba y escribe los CSVs en mdest con nombres de archivo sensatos. El patrón de dos pasos --tsource → --msource mantiene la recolección y el análisis auditables — la salida de la recolección es evidencia inalterada; el paso de análisis es reproducible desde ella.

Para triage one-shot puedes colapsar a una sola llamada combinando --tsource y --mdest en una invocación, pero la mayoría de playbooks de engagement prefieren la variante de dos pasos.


Integración con Velociraptor#

El artefacto Windows.Forensics.Amcache recoge el hive, descarga AmcacheParser si no está ya cacheado, lo ejecuta y sube el CSV al servidor. Configuración típica de hunt:

artifacts:
  - Windows.Forensics.Amcache
  parameters:
    - name: AmcacheGlob
      value: 'C:\Windows\AppCompat\Programs\Amcache.hve*'

El glob con * es intencional — tira el hive y ambos journals de transacciones en una sola pasada. El artefacto gestiona el resto en el servidor.

Para hunting a nivel de flota, programa el artefacto en una cadencia regular (semanal es típico) y enruta las filas UnassociatedFileEntries resultantes a tu SIEM. Las detecciones que pivotean en KeyLastWriteTimestamp > now - 7d AND Publisher = '' AND IsPeFile = true son ruidosas pero baratas y tienen alta precisión para "algo nuevo apareció en un host esta semana".


Consejos operativos#

Un puñado de patrones que aparecen en engagements reales:

  • Recoge siempre los journals de transacciones. AmcacheParser advertirá pero continuará si faltan; pierdes silenciosamente las escrituras más recientes.
  • Usa --csvf <HOSTNAME>. Cuando apilas los CSVs de 50 hosts en una sola carpeta para pivotes inter-host, los nombres de host en los nombres de archivo te salvan.
  • Ejecuta --mp por defecto. El coste son segundos; las filas recuperadas son a veces las más interesantes.
  • Nunca ejecutes AmcacheParser contra el hive vivo en un host sospechoso. Copia siempre primero el hive + .LOG1 + .LOG2. Aunque el analizador abre en solo lectura, evidencialmente quieres una copia hasheada.
  • Hashea el hive de entrada antes de analizar y guarda el hash junto a la salida CSV. Ese paso extra minúsculo mantiene limpia la cadena de custodia si el caso va a un tribunal.

Ver también#

¿Quieres leer un hive ahora mismo sin levantar nada de esto? Suelta uno en la página de inicio del analizador — completamente en tu navegador, nada se sube.

Artículos relacionados

Volver a todos los artículos