TL;DR. Parse den SYSTEM-Hive. Filtere nach Pfaden in benutzerbeschreibbaren Speicherorten (\AppData\, \Temp\) und unerwarteten Systempfaden. Belege Treffer mit AmCache-Hashes und Prefetch. Pivote auf SHA-1, wenn die Datei weg ist. ShimCache setzt Namen auf deine Jagdliste. Er schließt Fälle nicht allein.
Der Grund, warum der ShimCache seinen Platz in einem Hunting-Workflow verdient, ist, dass er überlebt. Ein Angreifer legt ein Tool ab, führt es aus, löscht es, und der Pfad sitzt immer noch im Cache. Das macht ihn zu einem signalstarken Pivot, wenn AmCache und Prefetch gewischt wurden oder nie an waren. So benutze ich ihn tatsächlich.
Der Workflow in fünf Schritten
- Sammle den SYSTEM-Hive. Zieh
C:\Windows\System32\config\SYSTEMund seine.LOG1- und.LOG2-Geschwister, oder nutze Velociraptor für die Live-Erfassung. Der Akquisitionsleitfaden deckt die sicheren Methoden ab. Denk dran, dass der Cache bis zum sauberen Shutdown im Speicher lebt, also prüfe das Speicher-Timing, bevor du davon ausgehst, dass der On-Disk-Hive aktuell ist. - Parse zu einer flachen Liste. Dekodiere den binären Blob zu
(path, mtime, format)-Zeilen. Der Shimcache Parser tut das in deinem Browser; Eric ZimmermansAppCompatCacheParseroder Mandiants Shim Cache Parser tun es offline. - Filtere nach verdächtigen Pfaden. Hier passiert die Jagd wirklich.
- Belege die Ausführung. Eine ShimCache-Zeile beweist allein nur Existenz, keine Ausführung. Paare jede interessante Zeile mit Prefetch, AmCache oder EVTX / Sysmon. Die vollständige Matrix steht in der Referenz der Programmausführungs-Artefakte.
- Pivote auf den Hash. Wenn die Datei auf der Festplatte weg ist, ist der SHA-1 von AmCache dein Hebel für VirusTotal- und Threat-Intel-Lookups. Der ShimCache-vs-AmCache-Breakdown erklärt, warum du immer beide ziehst.
Filtermuster, die sich lohnen
Das sind die Pfadmuster, die in echten Jagden konsistent am höchsten punkten:
- Benutzerbeschreibbare Verzeichnisse.
\AppData\Local\Temp\,\AppData\Roaming\,\Users\Public\,\ProgramData\. Benutzer und Dienste können hier Binärdateien ohne Admin-Rechte ablegen, und sie tun es. - Systembeschreibbar-aber-sollte-nicht-sein.
C:\Windows\Temp\,C:\PerfLogs\, alles unterC:\Windows\, das kein bekannter Windows-Pfad ist. PsExec-Service-Binärdateien und Named-Pipe-Tooling landen hier ständig. - Doppelendungen und Lookalikes.
svchost.exeaußerhalb von\System32\,lsass.exean irgendeinem ungewöhnlichen Ort,*.pdf.exe,*.docx.exe. DerOriginalFileNameaus AmCache bricht die Verkleidung meist auf. - Netzwerkfreigaben und Wechselmedien.
\\?\UNC\, Laufwerksbuchstaben, die nichtC:sind,\Device\HarddiskVolumeShadowCopy*. Diese zeigen den Staging-Pfad. Quervergleich mit LNK-Dateien für Shell-Historie. - Einmal-Tooling.
psexec.exe,winrm.cmd,wmiexec.exe,mimikatz*.exe, Cobalt-Strike-Artefakte. Legitime Admin-Tools werden missbraucht; behandle sie als zu klärende Funde, nicht als Rauschen, das man ignoriert.
Werde im ersten Durchgang nicht clever mit Regexen. Sortiere nach mtime und gehe die aktuellen Einträge per Auge durch. Das fängt Dinge ab, die heuristische Filter verpassen, einschließlich der Binärdateien, die der Angreifer umbenannt hat, um deine Filterliste zu umgehen.
Triage-Faustregeln
Ein paar schnelle Checks trennen Signal von Rauschen:
- Hat sie ein Prefetch-Geschwister? Nahezu Beweis einer Ausführung.
- Trägt AmCache einen SHA-1? Schau ihn nach. Sauberer signierter Vendor-Hash bedeutet deprioritisieren. Unbekannter Hash auf einem benutzerbeschreibbaren Pfad bedeutet eskalieren.
- Ist die mtime verdächtig nahe an einer bekannten Vorfallszeit? Innerhalb von Minuten zu einem Alert geändert ist einen tieferen Blick wert. Denk dran, dass die mtime eine Eigenschaft der Datei ist, nicht der Moment, in dem Windows sie sah.
- Ist das Elternverzeichnis das Profil des Benutzers, aber der Benutzer ist kein Admin? Vernünftig für Installer; achte auf Elevationsindikatoren in Sysmon Event ID 1 und Security 4688 mit erhöhten Tokens.
- Bestätigt das USN-Journal oder die MFT die Erstellung im interessanten Fenster? Starke Bestätigung, wenn die Datei noch auf der Festplatte ist.
Was dieser Workflow dir nicht sagt
ShimCache allein wird dir nicht sagen, wer die Binärdatei gestartet hat, mit welchen Argumenten oder wann. Dafür brauchst du Sysmon, Security-Eventlogs oder eine volle Programmausführungs-Timeline. Die Aufgabe des Caches ist es, Namen auf die Jagdliste zu setzen, nicht die Ermittlung abzuschließen.
Weiterführende Lektüre
- Eric Zimmermans AppCompatCacheParser. Goldstandard-Offline-Parser.
- Velociraptors
Windows.Registry.AppCompatCache. Erfassung in großem Maßstab. - Mehrnoushs ShimCache & AmCache forensic analysis. fallgetriebener Walkthrough.