Was ist Amcache FileId? (Glossar)
FileId ist der 41-stellige Inhalts-Identifikator, den Amcache
für jede inventarisierte PE-Datei speichert. Es ist "0000",
gefolgt vom SHA-1-Hex der ersten 31 MiB der Datei, wie der
Appraiser sie gesehen hat. Die führenden "0000" sind ein fester
Typ-Tag; der Rest ist ein echter SHA-1.
Ein typischer Wert:
0000da39a3ee5e6b4b0d3255bfef95601890afd80709
Es ist eines der nützlichsten einzelnen Felder in Amcache — direkt verwendbar für VirusTotal-Lookups, TI-Feed-Anreicherung und Cross-Host-Hash-Pivots — aber es birgt zwei Fallen, die neue Analysten ständig erwischen.
Falle 1: das 0000-Präfix nicht in externe Lookups einbeziehen#
VirusTotal, Ihr TI-Feed und Ihre Hash-Allowlist-Datenbank erwarten
alle einen 40-stelligen SHA-1. Das Einbeziehen des 0000-Präfix
liefert lautlos keine Treffer, was identisch zu „dieser Hash ist
unbekannt" aussieht und zu falschen Untersuchungsschlüssen führt.
Die CSV-Ausgabe von AmcacheParser stellt beide Formen bereit:
| Spalte | Wert |
|---|---|
FileId |
Die vollständige "0000" + SHA-1-Zeichenkette. |
Hash |
Nur die 40 Hex-Zeichen. Verwenden Sie diesen für Lookups. |
Falle 2: es ist ein Präfix-Hash, kein Gesamtdatei-Hash#
Der SHA-1 deckt nur die ersten 31 MiB der Datei ab. Für die meisten PE-Binärprogramme ist das irrelevant (fast alles ist kleiner). Für große Installer, Spiele-Binärprogramme und manche Unternehmenssoftware wird der Amcache-Hash nicht mit einem Gesamtdatei-SHA-1 übereinstimmen.
Um denselben Hash zur Verifikation neu zu berechnen:
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()Wo es verwendet wird#
- VirusTotal-Lookups — von einer einzelnen verdächtigen Zeile auf ein Bösartig-oder-nicht-Urteil pivotieren.
- Cross-Host-Hash-Suche — finden Sie jeden anderen Host in Ihrer Umgebung mit demselben Binärprogramm. Siehe Lateral Movement und Amcache-ProgramId-Pivoting.
- Sysmon-Korrelation — Sysmon Event ID 7 (Image Loaded)
zeichnet SHA-1 auf; verknüpfen Sie Amcache
Hashmit Sysmon 7, um zu sehen, welche Prozesse eine bestimmte DLL geladen haben.
Für die vollständige FileId-Referenz siehe Amcache FileId erklärt.
Verwandte Begriffe#
- Amcache.hve — die Hive, die FileId-Werte enthält.
- ProgramId — der andere eindeutige Identifikator in InventoryApplicationFile.
- InventoryApplicationFile — der Registry-Schlüssel, in dem FileId-Werte leben.
Verwandte Beiträge
- Was ist Amcache ProgramId? (Glossar)
ProgramId ist der 44-stellige Anwendungs-Identitäts-Hash, den Amcache jeder logischen Anwendung zuweist. Dieselbe ProgramId auf verschiedenen Hosts bedeutet dieselbe Anwendungsinstallation.
- Was ist LinkDate in Amcache? (Glossar)
LinkDate ist der PE-Header-TimeDateStamp, den Amcache aufzeichnet — wann das Binärprogramm kompiliert oder gelinkt wurde, nicht wann es auf dem Host erschien.
- Was ist KeyLastWriteTimestamp in Amcache? (Glossar)
KeyLastWriteTimestamp ist die Last-Write-Zeit eines Amcache-Eintrags auf Registry-Ebene — was am nächsten daran kommt, was Amcache als 'wann der Appraiser diese Datei aufgezeichnet hat' offenlegt.
- Was ist Root\InventoryApplicationFile? (Glossar)
InventoryApplicationFile ist der zentrale Amcache-Registry-Schlüssel — ein Unterschlüssel pro PE-Binärprogramm, das vom Appraiser inventarisiert wurde, mit Pfad, SHA-1, Herausgeber, Link-Datum und Zeitstempeln.