Malware-Jagd mit dem ShimCache: ein Schritt-für-Schritt-Workflow

3 Min. Lesezeit

TL;DR. Parsen Sie die SYSTEM-Hive → filtern Sie Pfade in benutzer-beschreibbaren Bereichen (AppData, Temp) und unerwarteten System-Pfaden → korroborieren Sie Treffer mit AmCache-Hashes und Prefetch → pivotieren Sie über SHA-1, wenn die Datei weg ist. ShimCache setzt Namen auf Ihre Hunt-Liste; er schließt den Fall nicht allein.

Der ShimCache gehört zu den Pivot-Punkten mit dem höchsten Signal-Wert im Windows-Threat-Hunting: Er protokolliert ausführbare Dateien, die Windows untersucht hat — sogar solche, die längst gelöscht wurden. Dieser Beitrag zeigt einen konkreten Workflow, mit dem ein ShimCache-Dump in eine Kurzliste verdächtiger Hosts und Dateien wird.

Fünfstufiger Workflow zur Malware-Jagd mit dem ShimCache

Der Workflow in fünf Schritten

  1. SYSTEM-Hive sammeln. Holen Sie die Offline-Datei aus C:\Windows\System32\config\SYSTEM (samt .LOG1 / .LOG2) oder nutzen Sie einen Live-Kollektor wie Velociraptor. Hintergrund zum Zeitpunkt des Schreibens unter Wo der ShimCache liegt.
  2. In eine flache Liste parsen. Decodieren Sie den Binär-Blob zu (Pfad, mtime, Format)-Zeilen. Der Shimcache Parser erledigt das im Browser; die Referenz-Parser offline.
  3. Verdächtige Pfade filtern. Hier beginnt die Jagd — Sie suchen Muster, keine Einzelzeilen.
  4. Ausführung korroborieren. Ein ShimCache-Treffer beweist Existenz, nicht Ausführung. Verknüpfen Sie jede interessante Zeile mit Prefetch, AmCache oder Ereignisprotokollen (Referenz).
  5. Auf Hash pivotieren. Wenn die Datei nicht mehr auf der Disk liegt, ist der SHA-1 in AmCache Ihr Anker für VirusTotal / TI-Lookups (warum beide Artefakte).

Filter, die sich lohnen

Diese Pfadmuster bewerten Hunter in der Praxis am höchsten:

  • Vom Benutzer beschreibbare Verzeichnisse: \AppData\Local\Temp\, \AppData\Roaming\, \Users\Public\, \ProgramData\ — Orte, an denen Nutzer und Dienste ohne Admin-Rechte Binärdateien ablegen können.
  • System-Pfade, in denen nicht geschrieben werden sollte: C:\Windows\Temp\, C:\PerfLogs\, C:\Recycler\$Recycle.Bin\ — alles unter C:\Windows\, das kein bekannter Windows-Pfad ist.
  • Doppelte Endungen / Imitation von Systembinaries: svchost.exe außerhalb von \System32\, lsass.exe an ungewöhnlichen Orten, *.pdf.exe, *.docx.exe.
  • Netzwerkfreigaben und Wechselmedien: \\?\UNC\, Laufwerksbuchstaben ≠ C:, \Device\HarddiskVolumeShadowCopy*.
  • Einmal-Werkzeuge: psexec.exe, winrm.cmd, wmiexec.exe, cobaltstrike-Artefakte — legitime Admin-Werkzeuge werden häufig missbraucht.

Seien Sie im ersten Durchlauf nicht zu klug mit Regex. Sortieren Sie nach mtime und gehen Sie die jüngsten Einträge visuell durch — das findet, was heuristische Filter übersehen.

Triage-Faustregeln

Wenn eine Zeile interessant aussieht, trennen ein paar Schnellprüfungen Signal von Rauschen:

  • Gibt es einen Prefetch-Treffer? Das ist nahe an einem Ausführungsbeweis.
  • Hat AmCache einen SHA-1? Nachschlagen. Ein sauberer signierter Hersteller-Hash heißt: schnell zurückstufen.
  • Liegt der mtime verdächtig nahe an einem bekannten Vorfall? Eine Binärdatei, die in Minutenabstand zu einer Alarmierung modifiziert wurde, verdient genaueren Blick.
  • Liegt das Elternverzeichnis im Benutzerprofil, obwohl der Benutzer keinen Admin haben sollte? Möglich, aber achten Sie auf Elevation-Indikatoren (Sysmon 4688 mit elevated Tokens).

Was dieser Workflow nicht sagt

Der ShimCache allein verrät nicht, wer die Binärdatei mit welchen Argumenten und wann gestartet hat. Dafür brauchen Sie Sysmon, Security-Logs oder eine vollständige Programmausführungs-Timeline. Aufgabe des ShimCache ist es, Namen auf Ihre Jagdliste zu setzen — nicht die Untersuchung allein abzuschließen.

Weiterführende Quellen

Verwandte Artikel