Beweist der ShimCache, dass ein Programm ausgeführt wurde?

4 Min. Lesezeit

TL;DR. Nein. Ein ShimCache-Eintrag beweist, dass Windows die Datei untersucht hat, meist, aber nicht immer für eine Ausführung. Windows 10/11 hat das Ausführungs-Flag im Cache komplett entfernt. Bestätige die Ausführung mit Prefetch, AmCache oder Prozesserstellungs-Events (Security 4688 / Sysmon 1).

"Der ShimCache zeigt, dass es lief" ist der einzelne teuerste Satz in der Windows-Incident-Response. Er landet in Berichten. Er wird vom gegnerischen Anwalt angegriffen. Er bringt den Analysten in den Zeugenstand, wo er erklärt, warum eine mtime kein Prozessstart ist, während alle im Raum mehr über den Application Compatibility Cache lernen, als sie je wollten. Sei nicht dieser Analyst.

Was der ShimCache tatsächlich aufzeichnet

Der Cache, formal der Application Compatibility Cache, gespeichert unter HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\AppCompatCache\AppCompatCache, erfasst ausführbare Dateien, die Windows geprüft hat, um zu entscheiden, ob ein Kompatibilitäts-Shim greifen soll. Prüfen ist nicht Ausführen. Windows prüft eine Binärdatei, wenn:

  • Ein Benutzer doppelt darauf klickt.
  • Der Explorer einen Ordner durchläuft und einen PE-Header auf Icon-Daten inspiziert.
  • Ein AV-Scanner, Indexer oder EDR das Dateisystem durchläuft.
  • Ein Rechtsklick "Eigenschaften" die Versionsressource zieht.
  • Ein Systemaufruf einen Pfad auflöst, der auf .exe endet.

Die meisten davon laufen zusammen mit einer Ausführung. Manche nicht. Eine Binärdatei, die ein Angreifer abgelegt, umbenannt und gelöscht hat, ohne sie je zu starten, kann trotzdem im Cache landen, weil Defender sie beim Herunterladen gescannt hat.

Das Flag, das Windows 10 weggenommen hat

Ältere Builds (XP bis Windows 8.1) betteten ein Executed-Flag in jeden Eintrag ein. Viele Analysten lernten, nach "yes" zu greppen und Feierabend zu machen. Windows 10 hat dieses Flag entfernt. Windows 11 hat es nicht zurückgebracht. Der moderne Cache trägt den Pfad, eine mtime und strukturelle Metadaten. Es gibt keinen Marker im Cache, der sagt "das lief".

Wenn du auf Legacy-Hives trainiert wurdest und jetzt ein Windows-10/11-SYSTEM liest, justiere neu. Die "Executed"-Spalte, an die du dich erinnerst, ist weg. Jeder vernünftige Parser (Eric Zimmermans AppCompatCacheParser, Mandiants Shim Cache Parser, dieses Tool) spiegelt dieses Fehlen ehrlich wider. Wenn du ein Tool siehst, das ein Ausführungs-Flag auf einem modernen Hive meldet, erfindet das Tool es.

Für das Layout auf Feldebene siehe die Walkthrough zum Windows-10/11-Binärformat.

Was eine Ausführung bestätigt

Behandle den ShimCache-Treffer als Hypothese. Dann suche nach Belegen, die tatsächlich Prozesserstellung aufzeichnen.

  • Prefetch. C:\Windows\Prefetch\*.pf-Dateien werden innerhalb von ~10 Sekunden nach jedem Prozessstart auf Workstation-SKUs geschrieben. Run-Count, letzte acht Laufzeiten, geladene Module. Wenn die Datei existiert, lief die Binärdatei. Der Prefetch-Parser erklärt das Format und die Deaktivierungsfälle.
  • AmCache. Amcache.hve trägt SHA-1-Hashes und explizite First-Run-Zeitstempel, kontinuierlich geschrieben. Der AmCache-Parser hat den Feldführer.
  • EVTX / Sysmon. Security 4688 (mit aktiviertem Command-Line-Auditing) und Sysmon Event ID 1 sind die hochwertigsten Aufzeichnungen, die du je bekommst. Der EVTX-Parser deckt den Triage-Workflow ab.
  • BAM / DAM. Per-User-Letzte-Ausführungszeiten unter HKLM\SYSTEM\CurrentControlSet\Services\bam\State. Billig zu lesen, sträflich unterbenutzt.
  • UserAssist. Nur interaktive Explorer-Starts, ROT13-kodierte Namen. Nützlich für "hat der Benutzer das doppelt geklickt?", nicht für "lief die Binärdatei jemals?"

Querverweismuster gibt es in der Referenz für Programmausführungs-Artefakte.

Wie man es in einem Bericht formuliert

Schlecht: "ShimCache zeigt, dass mimikatz.exe am 11.04.2026 um 14:33:21 UTC ausgeführt wurde."

Besser: "ShimCache erfasst die Datei C:\Users\Public\mimikatz.exe mit $STANDARD_INFORMATION-mtime 2026-04-11 14:33:21 UTC. Prefetch-Eintrag MIMIKATZ.EXE-A1B2C3D4.pf zeigt eine Ausführung um 14:34:02 UTC. AmCache-SHA-1 stimmt mit bekanntem mimikatz-Build 2.2.0 überein."

Der zweite Satz hält einer Kreuzbefragung stand. Der erste nicht.

Einen Hive parsen, ohne den Browser zu verlassen

Lege deinen SYSTEM-Hive in den Shimcache Parser. Alles läuft clientseitig. Kein Upload, was zählt, wenn der Hive aus einer regulierten Umgebung oder einem Kundeneinsatz stammt.

Weiterführende Lektüre

Verwandte Artikel