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 Hash mit 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#

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.

Zurück zu allen Beiträgen