RecentFileCache vs Amcache vs Prefetch vs ShimCache
Vier Windows-Evidence-of-Execution-Artefakte nebeneinander: was jedes speichert, was nicht, und welches du zuerst öffnen solltest.
"Evidence of Execution" ist ein Job, den mehrere Windows-Artefakte erledigen, nicht eines. Sie überlappen, widersprechen sich und verschwinden in unterschiedlichem Tempo. Dieser Post legt die vier nützlichsten — RecentFileCache, Amcache, Prefetch, ShimCache — auf denselben Tisch, damit du nicht mehr raten musst, welches zuerst zu öffnen ist.
Auf einen Blick
| Artefakt | Ort | Windows | Granularität | Zeitstempel pro Eintrag | Reiche Metadaten | Übersteht Reboot |
|---|---|---|---|---|---|---|
| RecentFileCache | C:\Windows\AppCompat\Programs\RecentFileCache.bcf | nur 7 | Nur Pfad | Nein (nur Datei-mtime) | Keine | Ja |
| Amcache | C:\Windows\AppCompat\Programs\Amcache.hve | 7→11 | Registry-Schlüssel pro Eintrag | Ja (Schlüssel-LastWritten u.a.) | Pfad, SHA-1, PE, Herausgeber, Installationsdatum | Ja |
| Prefetch | C:\Windows\Prefetch\*.pf | XP→11 | Pro Executable | Ja (letzte 8 Läufe) | Lauf-Counter, referenzierte Dateien, Volume-Info | Ja (Auto-Beschneidung auf ~1024 Einträge unter Win10+) |
| ShimCache | SYSTEM-Hive: ControlSet\Control\Session Manager\AppCompatCache | XP→11 | Pro Executable, in-memory bis Shutdown | LastModified (Datei), nicht Ausführungszeit | Keine | Nur bei sauberem Shutdown |
Was jedes wirklich beantwortet
- RecentFileCache. "Welche Executables haben den Application-Experience-Scanner seit dem letzten
ProgramDataUpdater-Lauf passiert?" Billig zu parsen, keine Metadaten, nur Win7. - Amcache. "Welche Programme und Dateien wurden auf dieser Maschine seit der OS-Installation installiert oder ausgeführt — mit Hashes und Herausgeber-Info?" Das, was einem systemweiten Installations-und-Ausführungs-Log auf modernem Windows am nächsten kommt.
- Prefetch. "Was wurde tatsächlich ausgeführt, wann und wie oft — für die ~1024 jüngsten Binaries?" Die engste pro-Ausführungs-Beweisspur, die ohne dediziertes Logging verfügbar ist.
- ShimCache. "Welche Executables hat die AppCompat-Shim-Infrastruktur gesehen? Wann wurde jedes zuletzt modifiziert?" Hinweis: Der Zeitstempel von ShimCache ist die
LastModifiedder Datei, nicht die Ausführungszeit — das ist das in DFIR-Reports am häufigsten falsch gelesene Feld.
Wann nach welchem greifen
Ein kurzer Triage-Entscheidungsbaum für "lief Binary X?":
- Prefetch zuerst. Wenn
*X*.pfexistiert, hast du ein Ausführungs-Event mit Zeitstempel(n) und einem Lauf-Counter. Fertig. - Amcache. Wenn ein SHA-1 in
InventoryApplicationFilezu deiner Datei passt, wurde die Datei mindestens von AppCompat gesehen — in Kombination mit Prefetch ist das hochzuverlässige Ausführungsevidenz. - RecentFileCache (Win7). Wenn du auf Win7 bist und Amcache spärlich ist, kann
.bcfder einzige Ort sein, an dem ein jüngerer Pfad gelandet ist. Behandle als "von AppCompat zwischen den letzten beidenProgramDataUpdater-Läufen gesehen". - ShimCache. Bekräftigende Evidenz. Anwesenheit ≈ "die AppCompat-Infrastruktur sah eine Datei an diesem Pfad mit diesem
LastModified". Lies seinen Zeitstempel nicht als Ausführungszeit.
Ein durchgespieltes Win7-Szenario
Stell dir einen Analysten vor, der an einem kompromittierten Win7-System arbeitet. Der Angreifer legte C:\Users\Public\update.exe ab, führte es einmal aus, löschte es dann. Das System wurde am nächsten Morgen ausgeschaltet.
Was überlebt?
- Prefetch:
UPDATE.EXE-XXXXXXXX.pfwahrscheinlich vorhanden, mit eingebettetem Ausführungs-Zeitstempel. - ShimCache: Eintrag vorhanden mit der Vor-Löschungs-
LastModifiedder Datei — bestätigt, dass die AppCompat-Infrastruktur sie beobachtet hat, sagt aber nicht, wann sie lief. - Amcache: Wenn
ProgramDataUpdaterzwischen Ausführung und Shutdown gefeuert hat, existiert einInventoryApplicationFile-Schlüssel mit dem SHA-1, Herausgeber (oder dessen Fehlen) und derLastWritten-Zeit des Registry-Schlüssels als nächstem an die Ausführungszeit heranreichenden Zeitstempel. - RecentFileCache: Pfad vorhanden, wenn
ProgramDataUpdaterihn noch nicht zu Amcache befördert hatte. Wenn die Beförderung lief, kann der Pfad bereits aus.bcfverschwunden sein, während er in.hvevorhanden ist.
Dieselbe Ausführung kann also Spuren an 4 Stellen hinterlassen, die jeweils leicht unterschiedliche Dinge erzählen. Keine davon allein ist "Ausführungsevidenz". Zusammen gelesen, triangulieren sie sicher.
Tools in dieser Flotte
Jedes Artefakt in der Tabelle oben hat einen Schwester-Parser in dieser Sammlung — alle clientseitig in WebAssembly, kein Upload erforderlich:
recentfilecache-parser— diese Seite.amcache-parserprefetch-parsershim-cache-parser
Sie teilen Code-Stil, UI und dasselbe Datenschutz-Modell: die Bytes verlassen niemals deinen Browser.