ShellBags vs. LNK-Dateien, Jump Lists und RecentDocs
Vier Artefakte der Benutzeraktivität im Vergleich: was ShellBags, LNK-Dateien, Jump Lists und RecentDocs aufzeichnen, was sie belegen und wo sie blind sind.
TL;DR. ShellBags beantworten „welche Ordner hat dieser Benutzer durchsucht?“. LNK-Dateien und Jump Lists beantworten „welche Dateien (und Ordner) hat er geöffnet, mit welcher Anwendung und wann?“. RecentDocs beantwortet „was wurde zuletzt geöffnet, nach Dateiendung?“ kompakt in der Registry. Alle vier sind benutzerbezogen und nutzen dasselbe Shell-Item-Format. Sie sind sich ergänzende Zeugen: ShellBags liefern Breite über Ordner, die anderen Tiefe über Dateien.
Wenn ich eine Zeitachse der Benutzeraktivität prüfe, ist der häufigste strukturelle Fehler, eines dieser Artefakte als Ersatz für ein anderes zu verwenden: „keine LNK-Datei, also war der Benutzer nie dort“ oder „die ShellBags zeigen den Ordner, also hat der Benutzer die Tabelle geöffnet“. Dieser Beitrag zeigt, was jedes enthalten kann.
Auf einen Blick
| ShellBags | LNK-Dateien | Jump Lists | RecentDocs | |
|---|---|---|---|---|
| Speicherort | UsrClass.dat + NTUSER.DAT, Shell\BagMRU | %APPDATA%\Microsoft\Windows\Recent\*.lnk | ...\Recent\AutomaticDestinations\*.automaticDestinations-ms, CustomDestinations\*.customDestinations-ms | NTUSER.DAT Software\Microsoft\Windows\CurrentVersion\Explorer\RecentDocs |
| Aufgezeichnete Einheit | Ordner | Zieldatei oder -ordner | Element pro Anwendung (AppID) | Datei- oder Ordnername, pro Endung |
| Entsteht durch | Navigieren/Auswählen von Ordnern im Explorer und in Standarddialogen | Öffnen einer Datei über die Shell | Öffnen von Elementen mit einer Anwendung, die Jump Lists nutzt | Die „Zuletzt verwendet“-Verfolgung der Shell (SHAddToRecentDocs) |
| Wichtige Zeiten | Schlüssel-LastWrite, MRU-abgeleitete letzte Interaktion, MAC-Zeiten des Ordners | Erstellung/Änderung der LNK-Datei, MAC-Zeiten des Ziels | Letzter Zugriff pro Eintrag in DestList | Schlüssel-LastWrite + MRUListEx-Reihenfolge |
| Zusätzlicher Kontext | MFT-Referenz des Ordners, UNC-Pfad, Archivpfad | Volume-Seriennummer, Laufwerkstyp, NetBIOS-Name, MAC-Adresse des Hosts (Tracker-Block) | Anwendungsidentität, Zugriffszähler in neueren Versionen, eingebettete LNK-Daten | Nutzungsreihenfolge pro Endung |
| Belegt Dateizugriff | Nein | Ja | Ja | Ja |
| Überdauert das Löschen des Ziels | Ja | Ja | Ja | Ja |
Strukturreferenzen: MS-SHLLINK für LNK, libyals Jump-lists-Format und das libfwsi-Shell-Item-Format, das alle vier teilen. Das SANS-Poster Windows Forensic Analysis führt sie unter „Öffnen von Dateien/Ordnern“.
Wann ShellBags gewinnen
- Durchsuchen ohne Öffnen. Wer eine Freigabe durchstöbert, um zu sehen, was darauf liegt, oder prüft, ob eine Kopie auf USB fertig ist, öffnet oft nichts. Nur ShellBags erinnern sich daran.
- Breite auf Ordnerebene. Jeder übergeordnete Ordner jedes besuchten Pfads wird aufgezeichnet. Sie sehen die Struktur eines Wechseldatenträgers, den der Benutzer erkundet hat, nicht nur die eine geöffnete Datei.
- Langlebigkeit. LNK-Dateien in
Recentwerden ausgedünnt, Jump-List-Einträge altern pro Anwendung heraus. ShellBags bleiben in einem typischen Profil viel länger erhalten (mit den Grenzen aus ShellBags: Grenzen und Anti-Forensik). - Gelöschte Ordner. Mit der MFT-Referenz im Shell-Item lässt sich prüfen, ob der Datensatz des Ordners wiederverwendet wurde. Siehe gelöschte Ordner.
Wann LNK-Dateien und Jump Lists gewinnen
- Nachweis auf Dateiebene. Sie nennen die geöffnete Datei. ShellBags können das nicht.
- Geräteidentität. LNK-Dateien enthalten Volume-Seriennummer und Laufwerkstyp des Ziels und verknüpfen damit eine geöffnete Datei mit einem bestimmten USB-Volume. Ein ShellBag liefert nur einen Laufwerksbuchstaben.
- Anwendungskontext. Eine Jump List gehört zu einer AppID; Sie wissen also, dass die Datei etwa im Standard-ZIP-Handler oder in einem Remotedesktop-Client geöffnet wurde.
- Bessere Zeiten für die Datei. Die Erstellungszeit der LNK-Datei nähert das erste Öffnen an, ihre Änderungszeit das letzte Öffnen (über diese Verknüpfung).
Wann RecentDocs hilft
RecentDocs ist ein kompakter, benutzerbezogener Index der zuletzt geöffneten Elemente, mit einem Unterschlüssel pro Endung und einem Unterschlüssel Folder, jeweils mit eigener MRUListEx. Damit sortieren Sie „zuletzt geöffnet“ nach Typ und erkennen Endungen, die nicht zum Benutzer passen (.ps1, .7z, .kdbx). Es speichert Namen, keine vollständigen Pfade; kombinieren Sie es für den Pfad mit LNK-Dateien. Verwandte Listen unter ComDlg32 (OpenSavePidlMRU, LastVisitedPidlMRU) zeichnen Dateien und Ordner aus Öffnen-/Speichern-Dialogen auf, pro Endung und pro Anwendung.
Gemeinsam nutzen: ein Muster
Eine hypothetische Abfolge, die das fiktive Sample der Website fortschreibt (Dateiname und LNK-Details sind zur Veranschaulichung erfunden):
- ShellBags verorten den Benutzer um 10:36 in
\\FILESRV01\Finance\Board(MRU-abgeleitet). - LNK/Jump Lists zeigen
Q3_board_pack.pdf, um 10:37 von dieser Freigabe geöffnet. - Der Unterschlüssel
.pdfin RecentDocs enthält denselben Namen an Position 0. - ShellBags zeigen danach
E:\exfil\finance_2026, durchsucht um 10:45; eine LNK-Datei für eine Datei in diesem Ordner trägt die Volume-Seriennummer von E:, die Sie mit der USB-Gerätehistorie im SYSTEM-Hive und den Ereignisprotokollen abgleichen (EVTX-Parser).
Jedes Artefakt schließt die Lücken der anderen. Fehlt eines, ist die Geschichte deshalb nicht falsch; es zeigt Ihnen, wo Sie als Nächstes suchen müssen.
Das Fehlen deuten
- ShellBag vorhanden, keine LNK-Datei. Der Ordner wurde durchsucht; entweder wurde keine Datei über die Shell geöffnet, oder die LNK-Datei wurde ausgedünnt oder gelöscht. Kein Beleg für Dateizugriff.
- LNK-Datei vorhanden, kein ShellBag für ihren Ordner. Die Datei kann über einen Pfad geöffnet worden sein, den der Benutzer nie durchsucht hat (ein Link in einer E-Mail, eine Befehlszeile, die Verlaufsliste einer Anwendung), oder die ShellBags wurden bereinigt.
- Keines von beiden. Denken Sie an Konsolen- oder Skriptaktivität, ein anderes Konto oder Anti-Forensik. Ausführungsartefakte wie Prefetch, Amcache und die SRUM-Datenbank zeigen, welche Werkzeuge liefen.
Häufige Fragen
Welches Artefakt beweist, dass eine Datei geöffnet wurde, ShellBags oder LNK-Dateien?
LNK-Dateien, Jump Lists und RecentDocs zeichnen geöffnete Dateien auf. ShellBags zeichnen nur Ordner auf, zu denen navigiert oder die ausgewählt wurden.
Warum ShellBags auswerten, wenn ich schon LNK-Dateien habe?
Weil Benutzer viele Ordner durchsuchen, ohne darin eine Datei zu öffnen, und ShellBags diese Ordner auch auf Wechseldatenträgern und Freigaben noch lange aufbewahren, nachdem die LNK-Dateien rotiert oder gelöscht wurden.