Was ist eine Windows Jump List? Ein Leitfaden für Einsteiger
Eine Windows Jump List ist ein Menü pro Anwendung mit zuletzt verwendeten, häufig verwendeten und angehefteten Elementen, das Windows aus der Taskleiste und dem Startmenü anzeigt. Sie wurde in Windows 7 ausgeliefert und das Festplattenformat hat sich durch Windows 10 und 11 nicht geändert. Jede Jump List ist auch eine Datei auf der Festplatte, die aufzeichnet, was ein Benutzer mit welcher Anwendung, wann und von wo geöffnet hat. Diese letzte Tatsache ist der Grund, warum DFIR-Analysten sich für ein Artefakt interessieren, das die meisten Benutzer niemals benennen werden.
Was Sie in der UI sehen
Klicken Sie mit der rechten Maustaste auf ein Taskleistensymbol, Notepad, Word, Explorer, Chrome, und das erscheinende Flyout ist die Jump List dieser Anwendung. Dasselbe Menü erscheint neben angehefteten Kacheln im Startmenü. Abschnitte variieren je nach App: Angeheftet, Zuletzt, Häufig, plus alle anwendungsdefinierten Gruppen (Chromes Meistbesucht, Words Zuletzt verwendete Dokumente, VS Codes Zuletzt verwendete Arbeitsbereiche).
Es gibt zwei Autoren, die in denselben Ordner schreiben. Windows selbst verfolgt zuletzt verwendete und häufige Elemente für jede registrierte Anwendung. Die Anwendung kann auch ihre eigenen Kategorien mit der Shell-API ICustomDestinationList veröffentlichen. Beide landen auf der Festplatte am selben Ort, in zwei verschiedenen Dateiformaten.
Wie Windows sie aufbaut
Jede Anwendung, die eine Jump List möchte, registriert eine AppID, eine 16 Zeichen lange Hex-Zeichenkette in Kleinbuchstaben wie 1b4dd67f29cb1962, berechnet als gekürzter CRC64 über den Pfad der ausführbaren Datei. Dieselbe Binärdatei am selben Pfad erzeugt auf jedem Rechner dieselbe AppID, was veröffentlichte AppID-Listen für die Analystenarbeit nützlich macht.
Wenn der Benutzer eine Datei durch diese Anwendung öffnet, schreibt die Windows-Shell einen Windows Shell Link (.lnk) in die entsprechende Jump-List-Datei. Das LNK erfasst den Zielpfad, die Dateigröße, drei FILETIME-Zeitstempel, die Volumen-Seriennummer und, durch seinen TrackerDataBlock, den NetBIOS-Hostnamen der ursprünglichen Maschine und eine Droid-GUID, abgeleitet aus ihrer MAC-Adresse.
Zwei Dateitypen, ein Ordner
Beide liegen unter %AppData%\Microsoft\Windows\Recent\ und verwenden die Benennung <AppID>.<extension>:
- AutomaticDestinations (
*.automaticDestinations-ms), geschrieben von Windows. Der Container ist eine OLE-Compound-Datei (MS-CFB, dasselbe Format wie eine ältere.doc). Jeder nummerierte Stream ist ein eingebettetes LNK; ein speziellerDestList-Stream ordnet sie und zeichnet Zugriffszeitstempel pro Eintrag, Zugriffszählungen, Eintrags-IDs und den Quell-Hostnamen auf. - CustomDestinations (
*.customDestinations-ms), geschrieben von der Anwendung. Der Container ist ein flacher Binär-Blob: ein Header, dann eine Sequenz von LNK-Strukturen, gruppiert in benannten Kategorien, terminiert von0xBABFFBAB.
Praktische Version: AutomaticDestinations ist das, was Windows Ihnen sagt, was der Benutzer getan hat. CustomDestinations ist das, was die Anwendung Ihnen sagt, was sie anbieten wollte.
Was tatsächlich in einem Eintrag steckt
Das Dekodieren eines einzelnen Jump-List-Eintrags ergibt typischerweise:
- Den vollständigen Zielpfad der geöffneten Datei oder URL.
- Datei-Metadaten zum Zeitpunkt des Öffnens, Größe, MAC-Zeiten, Attribute.
- Die Volumen-Seriennummer und den Laufwerkstyp, nützlich zum Fingerprinting von Wechselmedien.
- Einen TrackerDataBlock, der den NetBIOS-Namen der Maschine und eine MAC-Adressen-abgeleitete Droid-GUID enthält.
- Für AutomaticDestinations den Zugriffszeitstempel und die Zugriffszählung aus dem DestList-Stream.
- Befehlszeilenargumente und Arbeitsverzeichnis, wenn das LNK sie mitgeführt hat.
Zusammen verwandeln diese Felder eine Jump List in eine pro-Benutzer-Timeline von Dateiinteraktion, die auch nach dem Löschen der Originaldatei überlebt.
Warum DFIR-Analysten sich darum kümmern
Jump Lists beantworten eine Frage, die wenige andere Artefakte sauber beantworten: welche Anwendung welche Datei auf welchem Host zu welcher Zeit geöffnet hat. Sie bestätigen ShellBags, Recent Items, Prefetch, AmCache und Browserverlauf, und sie bewahren oft Verweise auf Dateien auf USB-Laufwerken oder Netzwerkfreigaben auf, die nicht mehr existieren. Das Hostname-Feld in DestList ist besonders nützlich für die Arbeit mit lateraler Bewegung, die Jump List einer Workstation erinnert sich an den NetBIOS-Namen des Staging-Servers, lange nachdem die Freigabe weg ist.
Um über die Einführung hinauszugehen und die Bytes selbst zu lesen, geht der Folgebeitrag Windows Jump Lists verstehen im Detail durch beide Formate.
Weiterführende Literatur
- Die Byte-Ebenen-Referenz für AutomaticDestinations und CustomDestinations.
- Eine DFIR-Anleitung aus dem Feld.
- Schwester-Artefakte: der LNK-Parser für eigenständige Verknüpfungen, der Registry-Parser für die passenden
UserAssist- undRecentDocs-Schlüssel.