Jump List Parser
Zurück zum Blog

Windows Jump Lists verstehen

2026-05-183 Min. Lesezeit

Windows Jump Lists verstehen

Jump Lists wurden in Windows 7 ausgeliefert, um Benutzern schnellen Zugriff auf zuletzt und häufig verwendete Dateien pro Anwendung zu geben. Für einen DFIR-Analysten sind sie etwas völlig anderes: eine Aufzeichnung pro Benutzer und pro Anwendung von Dateiinteraktion, die das Löschen der Zieldatei überlebt und häufig auch die Versuche des Benutzers überlebt, sie zu löschen. Wenn Sie nicht bereits Jump Lists bei jedem "Was hat dieser Benutzer angefasst?"-Auftrag ziehen, verpassen Sie die billigste Quelle für diese Antwort.

Beginnen Sie mit der Einführung in Windows Jump Lists, wenn Sie kalt einsteigen. Andernfalls finden Sie die Kurzfassung unten.

Zwei Dateien, zwei Autoren

  • AutomaticDestinations (*.automaticDestinations-ms), eine OLE-Compound-Datei, die von der Shell geschrieben wird. Jeder nummerierte Stream ist ein Windows Shell Link (LNK). Ein einzelner DestList-Stream ordnet sie und zeichnet Zugriffszeitstempel, Zugriffszählungen, den ursprünglichen NetBIOS-Hostnamen und Volume-/Objekt-GUIDs auf. Das ist es, was Windows Ihnen über den Benutzer sagt.
  • CustomDestinations (*.customDestinations-ms), ein flacher Byte-Stream, der von der Anwendung selbst über ICustomDestinationList geschrieben wird. Kategorien von LNK-Strukturen Rücken an Rücken konkateniert, terminiert von 0xBABFFBAB. Das ist es, was die Anwendung der Shell zu zeigen befohlen hat.

Beide liegen unter %AppData%\Microsoft\Windows\Recent\(Automatic|Custom)Destinations\ und verwenden dieselbe <AppID>.<extension>-Benennung. Die AppID ist ein 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 Triage nützlich macht. Siehe wo Windows Jump-List-Dateien speichert für die pro-Benutzer-Pfade und Beschaffungshinweise.

Was Sie tatsächlich aus einer herausbekommen

Nach dem Parsen, pro Eintrag: der vollständige Zielpfad (lokal, UNC oder Wechselmedien), drei FILETIMEs aus dem eingebetteten LNK-Header, ein DestList-Zugriffszeitstempel und -zählung, das angeheftete Flag, der zum Zugriffszeitpunkt aufgezeichnete NetBIOS-Hostname, die Volumen-Seriennummer und -Bezeichnung, Befehlszeilenargumente und Arbeitsverzeichnis, falls vorhanden, und der TrackerDataBlock mit seinen Droid-GUIDs (die die MAC-Adresse der LNK-erstellenden Maschine enthalten).

Diese Menge deckt die Fragen ab, die der Fall tatsächlich stellt: wer hat sie geöffnet, wann, von wo und von welcher physischen Platte. Das Hostname-Feld ist dasjenige, nach dem ich in der Arbeit mit lateraler Bewegung am häufigsten greife, die Jump List auf dem kompromittierten Endpunkt erinnert sich an den NetBIOS-Namen des Staging-Servers, lange nachdem der Staging-Server weg ist.

Warum im Browser parsen

Die Beweismittelkette ist im DFIR wichtig. Ebenso die Tatsache, dass Jump Lists aus regulierten Umgebungen fast immer Benutzer-PII und Dokumentpfade enthalten, die Sie nicht über eine Anbietergrenze hinweg übertragen wollen. Der Parser auf dieser Seite kompiliert eine Rust-Crate zu WebAssembly und führt sie vollständig clientseitig aus. Kein Upload, keine serverseitige Protokollierung, keine Telemetrie. Datei ablegen, geparste Ansicht erhalten.

Für einen Side-by-Side-Blick auf die anderen Optionen (JLECmd, JumpListExplorer, Kacos2000s Jumplist-Browser) siehe den Tool-Vergleich. Für eine Schritt-für-Schritt-Untersuchung ist die DFIR-Anleitung die nächste Lektüre. Versuchen Sie stattdessen, den Jump-List-Verlauf zu entfernen? Siehe wie man Windows Jump Lists leert oder löscht, aber lesen Sie zuerst den Abschnitt darüber, was das Leeren überlebt, bevor Sie ihm vertrauen.

Weiterführende Literatur