Analysieren von Windows Amcache-Artefakten
Wann anwenden
- Feststellen, welche Programme auf einem Windows-System während der Incident Response vorhanden waren oder ausgeführt wurden
- Abgleichen von SHA-1-Hashes aus der Amcache mit bekannten Malware-Datenbanken (VirusTotal, CIRCL, MISP)
- Erstellen einer Anwendungsinstallations- und Ausführungszeitachse für forensische Untersuchungen
- Identifizieren gelöschter ausführbarer Dateien, die auch nach dem Entfernen Spuren in der Amcache hinterlassen
- Untersuchen von Insider-Bedrohungen durch Dokumentation, welche portablen oder nicht autorisierten Anwendungen vorhanden waren
- Analysieren des Treiberladungsverlaufs zur Erkennung von Rootkits oder bösartigen Kernelmodulen
Nicht verwenden als alleiniger Beweis für die Programmausführung. Die Amcache belegt die Dateiexistenz und Metadaten-Registrierung, aber ShimCache (AppCompatCache) und Prefetch liefern stärkere Ausführungsbelege. Verwenden Sie alle drei Artefakte gemeinsam für eine schlüssige Analyse.
Voraussetzungen
- Ein forensisches Image oder eine Live-Triage-Kopie von
C:\Windows\appcompat\Programs\Amcache.hve(sowie zugehörige.LOG1,.LOG2-Transaktionsprotokolle) - Eric Zimmermans AmcacheParser (
AmcacheParser.exe) heruntergeladen von https://ericzimmerman.github.io/ - Eric Zimmermans Timeline Explorer zum Anzeigen der geparsten CSV-Ausgabe
- Optional: Registry Explorer für manuelle Hive-Inspektion
- Eine SHA-1-Whiteliste bekannter gutartiger ausführbarer Dateien (z. B. NSRL-Hashset) zum Filtern
- .NET 6+ Laufzeitumgebung installiert (erforderlich für aktuelle EZ-Tools)
- Schreibzugriff auf ein Ausgabeverzeichnis für CSV-Ergebnisse
Arbeitsablauf
Schritt 1: Erwerben der Amcache.hve-Datei
Extrahieren Sie die Amcache-Hive aus einem forensischen Image oder einem Live-System:
# Von einem Live-System (erhöhte Rechte und Raw-Kopierwerkzeug erforderlich)
# Amcache.hve ist vom System gesperrt; verwenden Sie ein Raw-Disk-Kopierwerkzeug
# Option A: FTK Imager – Image einbinden und navigieren zu:
# C:\Windows\appcompat\Programs\Amcache.hve
# Auch sammeln: Amcache.hve.LOG1, Amcache.hve.LOG2
# Option B: Verwenden von KAPE für automatisierte Triage-Sammlung
kape.exe --tsource C: --tdest D:\Evidence\%m --target Amcache
# Option C: Von einem eingebundenen forensischen Image (E: = eingebundenes Image)
copy "E:\Windows\appcompat\Programs\Amcache.hve" D:\Evidence\
copy "E:\Windows\appcompat\Programs\Amcache.hve.LOG1" D:\Evidence\
copy "E:\Windows\appcompat\Programs\Amcache.hve.LOG2" D:\Evidence\
Sammeln Sie immer die Transaktionsprotokolldateien (.LOG1, .LOG2) zusammen mit der Hive. AmcacheParser spielt nicht bestätigte Transaktionen aus diesen Protokollen ab, um die vollständigsten Daten wiederherzustellen.
Schritt 2: Parsen der Amcache mit AmcacheParser
Führen Sie AmcacheParser gegen die erworbene Hive aus:
# Basis-Parsing mit CSV-Ausgabe
AmcacheParser.exe -f "D:\Evidence\Amcache.hve" --csv "D:\Evidence\Output"
# Parsen mit einer SHA-1-Whiteliste zum Ausschließen bekannter gutartiger Einträge (NSRL)
AmcacheParser.exe -f "D:\Evidence\Amcache.hve" -w "D:\Whitelists\nsrl_sha1.txt" --csv "D:\Evidence\Output"
# Parsen mit einer SHA-1-Einschlussliste (nur Übereinstimmungen mit bekannten bösartigen Hashes anzeigen)
AmcacheParser.exe -f "D:\Evidence\Amcache.hve" -b "D:\IOCs\malware_sha1.txt" --csv "D:\Evidence\Output"
# Gelöschte Einträge mit hochpräzisen Zeitstempeln einbeziehen
AmcacheParser.exe -f "D:\Evidence\Amcache.hve" --csv "D:\Evidence\Output" -i --mp
AmcacheParser erzeugt mehrere CSV-Dateien im Ausgabeverzeichnis:
| Ausgabedatei | Inhalt |
|---|---|
Amcache_AssociatedFileEntries.csv | Dateieinträge mit SHA-1-Hashes, Pfaden, Größen und Zeitstempeln |
Amcache_UnassociatedFileEntries.csv | Verwaiste Dateieinträge aus älterem Amcache-Format |
Amcache_ProgramEntries.csv | Installierte Programm-Metadaten (Name, Herausgeber, Version, Installationsdatum) |
Amcache_DeviceContainers.csv | USB- und Geräteverbindungsverlauf |
Amcache_DevicePnps.csv | Plug-and-Play-Gerätetreiberinformationen |
Amcache_DriverBinaries.csv | Geladene Treiberbinärdateien mit Pfaden und Hashes |
Schritt 3: Analysieren von Dateieinträgen auf verdächtige Programme
Öffnen Sie die Datei AssociatedFileEntries.csv im Timeline Explorer und prüfen Sie die wichtigsten Spalten:
Wichtige zu prüfende Spalten:
- ProgramId : Verknüpft die Datei mit ihrem übergeordneten Programmeintrag
- SHA1 : Hash für Bedrohungsanalyse-Abfragen
- FullPath : Ursprünglicher Dateispeicherort auf der Festplatte
- FileSize : Größe der ausführbaren Datei
- FileKeyLastWriteTimestamp : Wann der Amcache-Eintrag zuletzt aktualisiert wurde
- Name : Dateiname
- Publisher : Herausgeber der Codesignatur (leer = unsigniert)
- BinProductVersion : Versionszeichenfolge aus dem PE-Header
- LinkDate : PE-Übersetzungszeitstempel (nützlich zum Erkennen von Timestomping)
Filtern Sie nach verdächtigen Indikatoren:
# Im Timeline Explorer diese Filter anwenden:
# 1. Unsignierte ausführbare Dateien finden (potenziell bösartig)
Publisher-Spalte = (leer)
# 2. Ausführbare Dateien von verdächtigen Pfaden finden
FullPath enthält: \temp\, \appdata\, \downloads\, \public\, \programdata\
# 3. Ausführbare Dateien mit aktuellen Zeitstempeln während des Vorfallzeitfensters finden
FileKeyLastWriteTimestamp zwischen: 2026-03-15 00:00:00 und 2026-03-16 00:00:00
# 4. Ausführbare Dateien mit verdächtigen Übersetzungsdaten finden (Timestomping)
LinkDate Jahr < 2015 UND FileKeyLastWriteTimestamp Jahr = 2026
Schritt 4: Abgleichen von SHA-1-Hashes mit Bedrohungsdaten
Extrahieren Sie SHA-1-Hashes und prüfen Sie sie gegen Malware-Datenbanken:
# Eindeutige SHA-1-Hashes aus der geparsten Ausgabe extrahieren
# Verwenden von PowerShell zum Extrahieren der SHA1-Spalte
Import-Csv "D:\Evidence\Output\Amcache_AssociatedFileEntries.csv" |
Select-Object -ExpandProperty SHA1 -Unique |
Where-Object { $_ -ne "" } |
Out-File "D:\Evidence\Output\extracted_hashes.txt"
# Hashes gegen VirusTotal mit vt-cli prüfen
foreach ($hash in Get-Content "D:\Evidence\Output\extracted_hashes.txt") {
vt file $hash --format json | Select-Object -Property meaningful_name, last_analysis_stats
}
# Hashes gegen CIRCL hashlookup prüfen
foreach ($hash in Get-Content "D:\Evidence\Output\extracted_hashes.txt") {
Invoke-RestMethod -Uri "https://hashlookup.circl.lu/lookup/sha1/$hash"
}
# Mit NSRL abgleichen, um bekannte gute vs. unbekannte zu identifizieren
# Unbekannte Hashes, die nicht in NSRL sind, rechtfertigen eine genauere Untersuchung
Schritt 5: Analysieren von Programmeinträgen auf nicht autorisierte Installationen
Prüfen Sie die Datei ProgramEntries.csv auf Software, die der Angreifer möglicherweise installiert hat:
Wichtige Spalten in ProgramEntries:
- ProgramName : Anzeigename der installierten Anwendung
- ProgramVersion : Versionszeichenfolge
- Publisher : Software-Herausgeber
- InstallDate : Wann das Programm installiert wurde
- Source : Installationsquelle (msi, exe, usw.)
- UninstallKey : Deinstallationspfad der Registrierung
- PathsList : Installationsverzeichnisse
Suchen Sie nach:
- Remote-Zugriffswerkzeugen (AnyDesk, TeamViewer, ngrok, Chisel)
- Hacking-Werkzeugen (Mimikatz, PsExec, Cobalt Strike)
- Tunnel-Dienstprogrammen (plink, socat, WireGuard)
- Programmen, die während des Vorfallzeitfensters installiert wurden
- Programmen, die an nicht standardmäßigen Speicherorten installiert wurden
Schritt 6: Analysieren von Treiberbinärdateien auf Rootkit-Hinweise
Prüfen Sie die Datei DriverBinaries.csv auf verdächtige geladene Treiber:
Wichtige Spalten in DriverBinaries:
- DriverName : Name des Treibers
- DriverInBox : Ob er mit Windows ausgeliefert wurde (false = Drittanbieter)
- DriverSigned : Ob der Treiber eine gültige Signatur hat
- DriverTimeStamp : Übersetzungszeitstempel
- Product : Produkt, das mit dem Treiber verknüpft ist
- ProductVersion : Treiberversion
- SHA1 : Hash der Treiberbinärdatei
Filtern Sie nach DriverInBox = false und DriverSigned = false, um unsignierte Drittanbieter-Treiber zu finden, bei denen es sich um Rootkits oder anfällige Treiber handeln könnte, die bei BYOVD-Angriffen (Bring Your Own Vulnerable Driver) verwendet werden.
Schritt 7: Erstellen einer Zeitachse aus Amcache-Daten
Kombinieren Sie Amcache-Daten mit anderen Artefakten für eine umfassende Zeitachse:
# Zusammenführen der Amcache-CSV mit anderen EZ-Tools-Ausgaben mit Timeline Explorer
# Laden Sie die folgenden CSVs in Timeline Explorer:
# - Amcache_AssociatedFileEntries.csv (Dateibeweise)
# - Amcache_ProgramEntries.csv (Installationsbeweise)
# - Prefetch-Ausgabe von PECmd.exe (Ausführungsbeweise)
# - ShimCache-Ausgabe von AppCompatCacheParser.exe (Ausführungsbeweise)
# Sortieren aller Einträge nach Zeitstempel, um die Angriffssequenz zu rekonstruieren
# Timeline Explorer unterstützt das Laden mehrerer Dateien und spaltenbasiertes Sortieren
# Exportieren der kombinierten Zeitachse
# Datei > Speichern unter CSV > combined_timeline.csv
Schlüsselkonzepte
| Begriff | Definition |
|---|---|
| Amcache.hve | Eine Windows-Registrierungsstruktur unter C:\Windows\appcompat\Programs\Amcache.hve, die Metadaten zu Anwendungen, Dateien und Treibern für Anwendungskompatibilitätszwecke speichert |
| Zugehöriger Dateieintrag | Ein Amcache-Datensatz, der mit einer bestimmten Programminstallation verknüpft ist und Dateipfad, Größe, Hash und Zeitstempel enthält |
| Nicht zugehöriger Dateieintrag | Ein verwaister Amcache-Datensatz aus einem älteren Format, der nicht mit einem Programmeintrag verknüpft ist; häufig auf Windows 7/8-Systemen |
| Programmeintrag | Amcache-Datensatz mit Installationsmetadaten: Programmname, Version, Herausgeber, Installationsdatum und Deinstallationsschlüssel |
| SHA-1-Hash | Kryptografischer Hash, der in der Amcache für jede registrierte Datei gespeichert wird und die Malware-Identifizierung durch Bedrohungsdaten-Abfragen ermöglicht |
| LinkDate | Der PE-Übersetzungszeitstempel, der im ausführbaren Header eingebettet ist; Diskrepanz zu Dateisystem-Zeitstempeln kann auf Timestomping hinweisen |
| Transaktionsprotokolle | .LOG1- und .LOG2-Dateien mit nicht bestätigten Registrierungstransaktionen, die AmcacheParser für eine vollständige Datenwiederherstellung abspielt |
| NSRL (National Software Reference Library) | Von NIST verwaltete Datenbank mit SHA-1-Hashes für bekannte kommerzielle Software, die als Whiteliste zum Filtern gutartiger Einträge verwendet wird |
Überprüfung
- Amcache.hve und Transaktionsprotokolle (LOG1, LOG2) wurden aus dem forensischen Image gesammelt
- AmcacheParser hat alle erwarteten CSV-Ausgabedateien fehlerfrei erzeugt
- SHA-1-Hashes wurden extrahiert und gegen VirusTotal oder CIRCL hashlookup geprüft
- Unsignierte ausführbare Dateien in verdächtigen Pfaden wurden zur weiteren Analyse markiert
- Programmeinträge zeigen alle Softwareinstallationen innerhalb des Vorfallzeitfensters
- Treiberbinärdateien wurden auf unsignierte oder nicht zum Lieferumfang gehörende Einträge geprüft
- LinkDate- vs. FileKeyLastWriteTimestamp-Vergleich wurde zur Erkennung von Timestomping durchgeführt
- Amcache-Ergebnisse sind mit Prefetch und ShimCache zur Ausführungsbestätigung korreliert
- Die endgültige Zeitachse integriert Amcache-Daten mit anderen forensischen Artefakten