Was ist Amcache ProgramId? (Glossar)

ProgramId ist der 44-stellige Anwendungs-Identitäts-Hash, den Amcache jeder logischen Anwendung zuweist. Anders als FileId, das den Datei-Inhalt hasht, hasht ProgramId Anwendungs-Metadaten — Name, Herausgeber, Version und Sprache.

Ein typischer Wert:

0006fa0b2a9f8a4eb9d7c81e8b1f3c5d3e2a0000ffff

Zwei Eigenschaften machen ProgramId in der DFIR wertvoll:

  1. Stabil über Hosts hinweg. Derselbe Office-365-Build auf zwei verschiedenen Workstations erhält dieselbe ProgramId.
  2. Verknüpft Datei-Datensätze mit Anwendungs-Datensätzen. Eine Datei in Root\InventoryApplicationFile und die übergeordnete Anwendung in Root\InventoryApplication teilen den Wert.

Wie sie sich von FileId unterscheidet#

FileId ProgramId
Länge 41 Zeichen ("0000" + SHA-1) 44 Zeichen
Hasht Erste 31 MiB der Datei-Bytes Anwendungs-Metadaten
Pro-Binärprogramm eindeutig Ja Nein — Geschwister teilen sich
Pro-Host eindeutig Nein Nein — Cross-Host-stabil
Pivot-Nutzen Exaktes Binärprogramm cross-host Anwendungs-Familie cross-host

Wann ProgramId gewinnt#

  • Neu kompilierte Tools mit gleicher Identität. Angreifer baut seinen Loader zwischen Hosts neu — Hash unterscheidet sich, ProgramId bleibt gleich.
  • Umbenannte Binärprogramme. mimikatz.exesvchost64.exeupdate.exe. Wenn der Angreifer die PE-Versionsinformations- Ressource nicht gescrubbed hat, folgt ProgramId dem Binärprogramm durch die Umbenennungen.
  • Cross-Host-Scoping. Eine einzige verdächtige ProgramId auf einem Host wird zur Abfrage gegen die Amcache jedes anderen gesammelten Hosts. Siehe Lateral Movement und Amcache-ProgramId-Pivoting.

Wann ProgramId der falsche Pivot ist#

  • Living-off-the-land-Binärprogramme. net.exe, psexec.exe und certutil.exe teilen sich ProgramId über jeden Host, der sie hat. Pivotieren Sie stattdessen über die Kommandozeile.
  • Per-Host-Implants. Wirklich opferspezifische Malware produziert pro Host eindeutige ProgramId-Werte. Verwenden Sie für diese Verhaltensmuster (4624-Logon, Netzwerk-Indikatoren).

Für die vollständige ProgramId-Referenz siehe Amcache ProgramId erklärt.

Verwandte Begriffe#

Verwandte Beiträge

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

  • Was ist Amcache FileId? (Glossar)

    FileId ist der 41-stellige Identifikator, den Amcache für jede Datei speichert — '0000' + das SHA-1-Hex der ersten 31 MiB der Datei.

Zurück zu allen Beiträgen