¿Qué es Amcache FileId? (glosario)
FileId es "0000" seguido del SHA-1 de los primeros 31 MiB del archivo. Cuarenta y un caracteres. Vive en Root\InventoryApplicationFile. Uno de los campos individuales más útiles que el Compatibility Appraiser haya escrito jamás, y el que atrapa a analistas nuevos más veces que cualquier otro.
0000da39a3ee5e6b4b0d3255bfef95601890afd80709
Dos trampas#
El prefijo es una trampa#
VirusTotal, feeds de threat intel y tu allowlist interna quieren todos un SHA-1 hex de 40 caracteres. No casarán nada si incluyes "0000". Tampoco te lo van a decir. La respuesta parece idéntica a "nunca hemos visto este archivo". Quita el prefijo.
AmcacheParser lo maneja por ti separando la columna en FileId (con prefijo) y Hash (sin). Usa Hash.
El corte de 31 MiB es una trampa#
El hash cubre solo los primeros 31 MiB del archivo. Para la mayoría de binarios PE es irrelevante porque casi todo es más pequeño. Para instaladores grandes, binarios gordos de juegos y bastante software empresarial, el valor de Amcache no va a coincidir con un SHA-1 del archivo completo. Si VirusTotal no devuelve hits en un instalador de 200 MB, prueba a hashear los primeros 31 MiB y buscar eso, o hashea el archivo completo y busca el resultado. A menudo los dos coexisten en el índice de VT porque ambos se han enviado en algún momento.
Para calcular el mismo valor:
import hashlib
def amcache_sha1(path):
h = hashlib.sha1()
with open(path, 'rb') as f:
h.update(f.read(31 * 1024 * 1024))
return h.hexdigest()Dónde se gana el sitio#
- Triage en VirusTotal sobre cada fila sospechosa.
- Cazas de hash entre hosts para acotar propagación (ve Movimiento lateral y pivote por ProgramId de Amcache).
- Joins con Sysmon
7(Image Loaded). Sysmon registra el SHA-1 de cada carga de DLL. EmparejaHashcon elHashesde Sysmon y tienes "qué proceso cargó la DLL del atacante y cuándo".
Para la referencia larga, ve FileId de Amcache explicado.
Términos relacionados#
Artículos relacionados
- ¿Qué es Amcache ProgramId? (glosario)
ProgramId es el hash de identidad de aplicación de 44 caracteres que almacena Amcache. Estable entre hosts para la misma instalación. Atrapa recompilaciones y renombrados que Hash se pierde.
- ¿Qué es LinkDate en Amcache? (glosario)
LinkDate es el PE TimeDateStamp. Controlable por el atacante. Úsalo para agrupar builds, no para líneas de tiempo de host.
- ¿Qué es KeyLastWriteTimestamp en Amcache? (glosario)
El tiempo de escritura de la clave Amcache en el Registro. Lo más cercano a 'cuándo el appraiser anotó esto'. El campo individual que los analistas nuevos confunden más a menudo con LinkDate.
- ¿Qué es Root\InventoryApplicationFile? (glosario)
La clave principal de Amcache. Una subclave por PE que el appraiser inventarió, con hash, ruta, fabricante, fecha de enlace y una marca de escritura de registro. Donde se va el 90% del tiempo del analista.