
Tracefiles oder Prefetch-Dateien gibt es in Windows schon seit der XP-Zeit. Seitdem unterstützen sie Fachleute für digitale Forensik und Computer-Incident-Response dabei, Spuren des Programmstarts zu finden, einschließlich schädlicher Software. Der führende Spezialist für Computerforensik bei Group-IB Oleg Skulkin erklärt, was man mit Prefetch-Dateien finden kann und wie man das macht.
Prefetch-Dateien werden im Verzeichnis %SystemRoot%Prefetch gespeichert und dienen der Beschleunigung des Programmstarts. Wenn wir uns eine dieser Dateien anschauen, sehen wir, dass ihr Name aus zwei Teilen besteht: dem Namen der ausführbaren Datei und einer Prüfziffer, die aus acht Zeichen des Pfades zum Programm besteht.
Prefetch-Dateien enthalten eine Menge nützlicher Informationen aus kriminalistischer Sicht: der Name der ausführbaren Datei, die Anzahl ihrer Starts, Listen von Dateien und Verzeichnissen, mit denen die ausführbare Datei interagiert hat, und natürlich Zeitstempel. In der Regel verwenden Kriminalbeamte das Erstellungsdatum einer Prefetch-Datei, um das Datum des ersten Programmstarts zu bestimmen. Darüber hinaus speichern diese Dateien das Datum des letzten Starts, und seit Version 26 (Windows 8.1) auch die Zeitstempel der letzten sieben Starts.
Nehmen wir eine der Prefetch-Dateien, extrahieren die Daten mit dem PECmd von Eric Zimmermann und betrachten jeden dieser Teile. Zur Demonstration werde ich die Daten aus der Datei extrahieren CCLEANER64.EXE-DE05DBE1.pf.
Also, fangen wir von oben an. Natürlich haben wir die Zeitstempel für die Erstellung, die Modifikation und den Zugriff auf die Datei:

Gefolgt von dem Namen der ausführbaren Datei, der Prüfziffer des Pfades, der Größe der ausführbaren Datei sowie der Version der Prefetch-Datei:

Da wir es mit Windows 10 zu tun haben, sehen wir als Nächstes die Anzahl der Starts, das Datum und die Uhrzeit des letzten Starts und noch sieben Zeitstempeln, die auf vorherige Startdaten hinweisen:

Darauf folgt die Information über das Volume, einschließlich seiner Seriennummer und des Erstellungsdatums:
![]()
Und last but not least — die Liste der Verzeichnisse und Dateien, mit denen die ausführbare Datei interagiert hat:

Die Verzeichnisse und Dateien, mit denen die ausführbare Datei interagiert hat, sind genau das, worauf ich mich heute konzentrieren möchte. Diese Daten ermöglichen es Fachleuten der digitalen Forensik, der Reaktion auf Computer-Vorfälle oder der proaktiven Bedrohungssuche, nicht nur festzustellen, ob eine bestimmte Datei ausgeführt wurde, sondern in einigen Fällen auch die spezifischen Taktiken und Techniken der Angreifer zu rekonstruieren. Heutzutage verwenden Angreifer häufig Werkzeuge zur unwiderruflichen Datenlöschung, wie SDelete, weshalb die Fähigkeit, selbst Spuren der Anwendung bestimmter Taktiken und Techniken wiederherzustellen, für jeden modernen Verteidiger — Computerforensiker, Incident-Response-Spezialisten oder Threat Hunter-Experten — unerlässlich ist.
Lassen Sie uns mit der Taktik Initial Access (TA0001) und der beliebtesten Technik — Spearphishing Attachment (T1193) beginnen. Einige Cyberkriminalitätsgruppen gehen bei der Auswahl solcher Anhänge ziemlich kreativ vor. Zum Beispiel hat die Gruppe Silence dafür CHM-Dateien (Microsoft Compiled HTML Help) verwendet. Dies ist eine weitere Technik — Compiled HTML File (T1223). Solche Dateien werden über hh.exe, gestartet, daher werden wir, wenn wir die Daten aus seiner Prefetch-Datei extrahieren, herausfinden, welche Datei vom Opfer geöffnet wurde:

Lassen Sie uns mit Beispielen aus echten Fällen fortfahren und zur nächsten Taktik Execution (TA0002) und der Technik CSMTP (T1191) übergehen. Microsoft Connection Manager Profile Installer (CMSTP.exe) kann von Angreifern verwendet werden, um schadhafte Skripte auszuführen. Ein gutes Beispiel ist die Gruppe Cobalt. Wenn wir die Daten aus der Prefetch-Datei extrahieren cmstp.exe, werden wir erneut herausfinden, was genau ausgeführt wurde:

Eine weitere beliebte Technik ist Regsvr32 (T1117). Regsvr32.exe wird ebenfalls häufig von Angreifern zum Starten verwendet. Hier ist ein weiteres Beispiel von der Gruppe Cobalt: Wenn wir die Daten aus der Prefetch-Datei extrahieren regsvr32.exe, werden wir wieder sehen, was ausgeführt wurde:

Die folgenden Taktiken sind Persistence (TA0003) und Privilege Escalation (TA0004), sowie Application Shimming (T1138) als Technik. Diese Technik wurde von Carbanak/FIN7 verwendet, um sich im System zu verankern. In der Regel wird für den Umgang mit Datenbanken, die Informationen über Programm-Kompatibilität enthalten (.sdb), verwendet sdbinst.exe. Daher kann die Prefetch-Datei dieser ausführbaren Datei uns helfen, die Namen solcher Datenbanken und deren Standorte zu erfahren:

Wie in der Abbildung zu sehen ist, haben wir nicht nur den Namen der Datei, die für die Installation verwendet wurde, sondern auch den Namen der installierten Datenbank.
Schauen wir uns ein typisches Beispiel für lateral movement (TA0008) an – PsExec, das administrative gemeinsame Ressourcen (T1077) verwendet. Ein Dienst namens PSEXECSVC (es kann natürlich auch jeder andere Name verwendet werden, wenn die Angreifer den Parameter -r) auf dem Zielsystem erstellt wird, daher werden wir, wenn wir Daten aus der Prefetch-Datei extrahieren, sehen, dass Folgendes ausgeführt wurde:

Ich beende wohl mit dem, womit ich angefangen habe — das Löschen von Dateien (T1107). Wie ich bereits erwähnt habe, verwenden viele Angreifer SDelete zum unwiderruflichen Löschen von Dateien in verschiedenen Phasen des Angriffszyklus. Wenn wir die Daten aus der Prefetch-Datei betrachten, sdelete.exe, sehen wir, was tatsächlich gelöscht wurde:

Natürlich ist dies keine erschöpfende Liste von Techniken, die bei der Analyse von Prefetch-Dateien entdeckt werden können, aber es sollte ausreichen, um zu verstehen, dass solche Dateien dabei helfen können, nicht nur Spuren von Programmstarts zu finden, sondern auch die spezifischen Taktiken und Techniken der Angreifer zu rekonstruieren.
Quelle: habr.com
