Communitygithub.com

Analyse von LNK-Dateien und Jump-List-Artefakten

Analysieren Sie Windows LNK-Verknüpfungsdateien und Jump-List-Artefakte mit LECmd, JLECmd und Python-Skripten für forensische Untersuchungen.

Was ist Analyse von LNK-Dateien und Jump-List-Artefakten?

Diese Fertigkeit ermöglicht die detaillierte forensische Analyse von Windows LNK-Dateien (Verknüpfungen) und Jump Lists (Sprunglisten), einschließlich der Extraktion von Zielpfaden, Zeitstempeln, Volumeseriennummern, MAC-Adressen und Maschinen-IDs. Sie unterstützt die Werkzeuge LECmd und JLECmd von Eric Zimmerman sowie Python-Bibliotheken wie pylnk3. Die Fertigkeit deckt die wichtigsten Speicherorte ab, darunter der Ordner "Recent", der Desktop, das Startmenü und Office-Dokumente, und erläutert die Dateistruktur von LNK-Dateien (Shell-Link-Header, LinkInfo, TrackerDataBlock). Zudem werden Jump Lists in automatische und benutzerdefinierte Destinationen unterteilt, mit AppID-Hash-Tabellen für gängige Anwendungen wie Windows Explorer, Notepad, Microsoft Office und Edge. Anwendungsfälle umfassen den Nachweis von Dateizugriffen, Wechselmedienzugriffen und Netzwerkfreigabeaktivitäten, wobei die Artefakte auch nach dem Löschen der Zieldateien erhalten bleiben. Die Fertigkeit berücksichtigt Unterschiede zwischen Windows 10 und Windows 11 aus der aktuellen Forschung (IEEE 2025) und liefert ein vollständiges Python-Skript zur Header-Analyse, um die Ergebnisse der Kommandozeilenwerkzeuge zu ergänzen.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/mukul975/Anthropic-Cybersecurity-Skills/tree/main/skills/analyzing-lnk-file-and-jump-list-artifacts

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Was macht Analyse von LNK-Dateien und Jump-List-Artefakten?

Übersicht

Windows LNK-Dateien (Verknüpfungen) und Jump Lists (Sprunglisten) sind kritische forensische Artefakte, die Belege für Dateizugriffe, Programmausführungen und das Benutzerverhalten liefern. LNK-Dateien werden automatisch erstellt, wenn ein Benutzer eine Datei über den Windows Explorer oder den Öffnen/Speichern-Dialog öffnet, und speichern Metadaten über die Zieldatei, einschließlich ihres ursprünglichen Pfads, Zeitstempel, Volumeseriennummer, NetBIOS-Name und MAC-Adresse des Hostsystems. Jump Lists, eingeführt mit Windows 7, erweitern dies, indem sie anwendungsspezifische Listen zuletzt und häufig verwendeter Dateien führen. Diese Artefakte bleiben auch nach dem Löschen der Zieldateien erhalten, was sie unverzichtbar macht, um nachzuweisen, dass ein Benutzer zu bestimmten Zeiten auf bestimmte Dateien zugegriffen hat.

Verwendungszweck

  • Bei der Untersuchung von Sicherheitsvorfällen, die eine Analyse von LNK-Dateien und Jump-List-Artefakten erfordern
  • Beim Erstellen von Erkennungsregeln oder Bedrohungssuchabfragen für diesen Bereich
  • Wenn SOC-Analysten strukturierte Verfahren für diese Analyseart benötigen
  • Bei der Validierung der Sicherheitsüberwachungsabdeckung für verwandte Angriffstechniken

Voraussetzungen

  • LECmd (Eric Zimmerman) zum Parsen von LNK-Dateien
  • JLECmd (Eric Zimmerman) zum Parsen von Jump Lists
  • Python 3.8+ mit den Bibliotheken pylnk3 oder LnkParse3
  • Forensisches Image oder Triage-Erfassung von einem Windows-System
  • Timeline Explorer zur CSV-Analyse

LNK-Dateispeicherorte

SpeicherortBeschreibung
%USERPROFILE%\AppData\Roaming\Microsoft\Windows\Recent\Zuletzt verwendete Dateien
%USERPROFILE%\Desktop\Vom Benutzer erstellte Verknüpfungen
%USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\Startmenü-Verknüpfungen
%USERPROFILE%\AppData\Roaming\Microsoft\Office\Recent\Kürzlich verwendete Office-Dokumente

LNK-Dateistruktur

Shell-Link-Header (76 Bytes)

OffsetGrößeFeld
0x004HeaderSize (immer 0x0000004C)
0x0416LinkCLSID (immer 00021401-0000-0000-C000-000000000046)
0x144LinkFlags
0x184FileAttributes
0x1C8CreationTime (FILETIME)
0x248AccessTime (FILETIME)
0x2C8WriteTime (FILETIME)
0x344FileSize der Zieldatei
0x384IconIndex
0x3C4ShowCommand
0x402HotKey

Wichtige forensische Felder in LNK-Dateien

  • Zeitstempel der Zieldatei: Erstellungs-, Zugriffs- und Änderungszeitpunkte der referenzierten Datei
  • Volumeninformationen: Seriennummer, Laufwerkstyp, Datenträgerbezeichnung
  • Netzwerkfreigabeinformationen: UNC-Pfad, Freigabename
  • Maschinenkennungen: NetBIOS-Name, MAC-Adresse (aus TrackerDataBlock)
  • Distributed Link Tracking: Maschinen-ID und Objekt-GUID

Analyse mit EZ Tools

LECmd - LNK-Datei-Parser

# Alle LNK-Dateien im Ordner "Recent" parsen
LECmd.exe -d "C:\Evidence\Users\suspect\AppData\Roaming\Microsoft\Windows\Recent" --csv C:\Output --csvf lnk_analysis.csv

# Eine einzelne LNK-Datei mit vollständigen Details parsen
LECmd.exe -f "C:\Evidence\Users\suspect\Desktop\Confidential.docx.lnk" --json C:\Output

# LNK-Dateien mit zusätzlichen Detailstufen parsen
LECmd.exe -d "C:\Evidence\Users\suspect\AppData\Roaming\Microsoft\Windows\Recent" --csv C:\Output --csvf lnk_all.csv --all

JLECmd - Jump-List-Parser

# Automatische Sprunglisten parsen
JLECmd.exe -d "C:\Evidence\Users\suspect\AppData\Roaming\Microsoft\Windows\Recent\AutomaticDestinations" --csv C:\Output --csvf jumplists_auto.csv

# Benutzerdefinierte Sprunglisten parsen
JLECmd.exe -d "C:\Evidence\Users\suspect\AppData\Roaming\Microsoft\Windows\Recent\CustomDestinations" --csv C:\Output --csvf jumplists_custom.csv

# Alle Sprunglisten mit detaillierter Ausgabe parsen
JLECmd.exe -d "C:\Evidence\Users\suspect\AppData\Roaming\Microsoft\Windows\Recent\AutomaticDestinations" --csv C:\Output --csvf jumplists_auto.csv --ld

Jump-List-Struktur

Automatische Ziele (automaticDestinations-ms)

Diese sind OLE Compound-Dateien (Structured Storage), die im Dateinamen durch einen AppID-Hash identifiziert werden:

AppID-HashAnwendung
5f7b5f1e01b83767Windows Explorer Angeheftet/Häufig
1b4dd67f29cb1962Windows Explorer Zuletzt verwendet
9b9cdc69c1c24e2bNotepad
a7bd71699cd38d1cNotepad++
12dc1ea8e34b5a6Microsoft Paint
7e4dca80246863e3Systemsteuerung
1cf97c38a5881255Microsoft Edge
f01b4d95cf55d32aWindows Explorer
9d1f905ce5044aeeMicrosoft Excel
a4a5324453625195Microsoft Word
d00655d2aa12ff6dMicrosoft PowerPoint
bc03160ee1a59fc1Outlook

Benutzerdefinierte Ziele (customDestinations-ms)

Erstellt, wenn Benutzer Elemente an Anwendungs-Sprunglisten anheften. Diese Dateien enthalten sequenzielle LNK-Einträge.

Python-Analyse-Skript

import struct
import os
from datetime import datetime, timedelta

FILETIME_EPOCH = datetime(1601, 1, 1)

def filetime_to_datetime(filetime_bytes: bytes) -> datetime:
    """Konvertiert Windows FILETIME (100-ns-Intervalle seit 1601) in datetime."""
    ft = struct.unpack("<Q", filetime_bytes)[0]
    if ft == 0:
        return None
    return FILETIME_EPOCH + timedelta(microseconds=ft // 10)

def parse_lnk_header(lnk_path: str) -> dict:
    """Parst den Shell-Link-Header aus einer LNK-Datei."""
    with open(lnk_path, "rb") as f:
        header = f.read(76)

    header_size = struct.unpack("<I", header[0:4])[0]
    if header_size != 0x4C:
        return {"error": "Ungültiger LNK-Header"}

    link_flags = struct.unpack("<I", header[0x14:0x18])[0]
    file_attrs = struct.unpack("<I", header[0x18:0x1C])[0]

    result = {
        "header_size": header_size,
        "link_flags": hex(link_flags),
        "file_attributes": hex(file_attrs),
        "creation_time": filetime_to_datetime(header[0x1C:0x24]),
        "access_time": filetime_to_datetime(header[0x24:0x2C]),
        "write_time": filetime_to_datetime(header[0x2C:0x34]),
        "file_size": struct.unpack("<I", header[0x34:0x38])[0],
        "has_target_id_list": bool(link_flags & 0x01),
        "has_link_info": bool(link_flags & 0x02),
        "has_name": bool(link_flags & 0x04),
        "has_relative_path": bool(link_flags & 0x08),
        "has_working_dir": bool(link_flags & 0x10),
        "has_arguments": bool(link_flags & 0x20),
        "has_icon_location": bool(link_flags & 0x40),
    }
    return result

Untersuchungs-Anwendungsfälle

Nachweis von Dateizugriffen

  1. LNK-Dateien aus dem Ordner "Recent" parsen, um aufgerufene Dokumente zu identifizieren
  2. Abgleich mit MFT-Zeitstempeln und USN-Journal-Einträgen
  3. Beachten, dass LNK-Dateien auch nach dem Löschen der Zieldateien erhalten bleiben

Zugriff auf Wechselmedien

  1. LNK-Dateien, die auf Laufwerksbuchstaben E:, F:, G: verweisen, weisen auf die Nutzung von Wechselmedien hin
  2. Die Volumeseriennummer in der LNK-Datei identifiziert das spezifische Gerät
  3. Die MAC-Adresse im TrackerDataBlock identifiziert den Quellrechner

Netzwerkfreigabe-Aktivitäten

  1. LNK-Dateien mit UNC-Pfaden (\Server\Freigabe) weisen auf Netzwerkdateizugriffe hin
  2. Der NetBIOS-Name identifiziert den entfernten Server
  3. Zeitstempel legen fest, wann der Zugriff erfolgte

Unterschiede zwischen Windows 10 und Windows 11

Aktuelle Forschung (IEEE 2025) zeigt, dass Windows 11 andere LNK- und Jump-List-Artefakte erzeugt:

  • Weniger automatische LNK-Dateien für bestimmte Dateitypen
  • Geändertes Jump-List-Verhalten für moderne Anwendungen
  • UWP-/MSIX-Anwendungen generieren möglicherweise keine traditionellen Jump Lists
  • Windows 11 Quick Access ersetzt teilweise die Recent-Funktionalität

Referenzen

Beispielausgabe

$ LECmd.exe -d "C:\Evidence\Users\jsmith\AppData\Roaming\Microsoft\Windows\Recent" --csv /analysis/lnk_output

LECmd v1.11.0 - LNK-Datei-Parser
================================

Verarbeite 47 LNK-Dateien...

--- LNK-Datei: Q4_Report.xlsx.lnk ---
  Quelle:           C:\Evidence\Users\jsmith\Recent\Q4_Report.xlsx.lnk
  Zielpfad:         C:\Users\jsmith\Downloads\Q4_Report.xlsm
  Ziel erstellt:    2024-01-15 14:33:45 UTC
  Ziel geändert:    2024-01-15 14:33:45 UTC
  Ziel zugegriffen: 2024-01-15 14:35:12 UTC
  Dateigröße:       251.904 Bytes
  Laufwerkstyp:     Festplatte (C:)
  Volumeserien-Nr.: A4E7-3F21
  Maschinen-ID:     DESKTOP-J5M1TH
  MAC-Adresse:      48:2A:E3:5C:9B:01

--- LNK-Datei: update_client.exe.lnk ---
  Quelle:           C:\Evidence\Users\jsmith\Recent\update_client.exe.lnk
  Zielpfad:         C:\ProgramData\Updates\update_client.exe
  Ziel erstellt:    2024-01-15 14:34:02 UTC
  Ziel geändert:    2024-01-15 14:34:02 UTC
  Ziel zugegriffen: 2024-01-15 14:36:30 UTC
  Dateigröße:       1.258.496 Bytes
  Laufwerkstyp:     Festplatte (C:)
  Volumeserien-Nr.: A4E7-3F21
  Maschinen-ID:     DESKTOP-J5M1TH
  Arbeitsverz.:     C:\ProgramData\Updates
  Argumente:        --silent --no-update-check
  Ausführen:        Versteckt

======================================================================

$ JLECmd.exe -d "C:\Evidence\Users\jsmith\AppData\Roaming\Microsoft\Windows\Recent\AutomaticDestinations" --csv /analysis/jumplist_output

JLECmd v1.5.0 - Jump-List-Parser
==================================

Verarbeite 23 AutomaticDestinations-Dateien...

--- Anwendung: Microsoft Excel (AppID: 12dc1ea8e34b5a6) ---
  Einträge: 15
  Neueste:
    Eintrag 0:  C:\Users\jsmith\Downloads\Q4_Report.xlsm         (2024-01-15 14:35:12 UTC)
    Eintrag 1:  \\FILESERV01\Finance\Budget_2024.xlsx             (2024-01-14 09:22:30 UTC)
    Eintrag 2:  C:\Users\jsmith\Documents\Expenses\Dec2023.xlsx   (2024-01-10 16:45:00 UTC)

--- Anwendung: Windows Explorer (AppID: f01b4d95cf55d32a) ---
  Einträge: 28
  Neueste:
    Eintrag 0:  C:\ProgramData\Updates\                         (2024-01-15 14:36:25 UTC)
    Eintrag 1:  E:\Backup\                                      (2024-01-15 15:30:00 UTC)
    Eintrag 2:  \\FILESERV01\HR\Employees\                      (2024-01-15 16:12:45 UTC)

--- Anwendung: cmd.exe (AppID: 9b9cdc69c1c24e2b) ---
  Einträge: 5
  Neueste:
    Eintrag 0:  C:\Windows\System32\cmd.exe                     (2024-01-15 14:36:00 UTC)

Zusammenfassung:
  Verarbeitete LNK-Dateien insgesamt:     47
  Jump-List-Einträge insgesamt:          156
  Verdächtige Artefakte:                   3 (Ausführung im versteckten Fenster, USB-Laufwerkszugriff, Netzwerkfreigaben)
  CSV exportiert nach:                   /analysis/lnk_output/ und /analysis/jumplist_output/

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

abusing-dpapi-for-credential-access

Extract and decrypt Windows DPAPI-protected secrets (Credential Manager, browser logins/cookies, Wi-Fi credentials, KeePass keys) online or offline using SharpDPAPI, SharpChrome, Mimikatz, or Impacket

abusing-shadow-credentials-for-privesc

Take over Active Directory accounts by writing attacker-controlled public keys to msDS-KeyCredentialLink (Shadow Credentials) with pyWhisker, Whisker, or Certipy, then authenticate via PKINIT to recover the target

achieving-cmmc-level-2-compliance

>-

acquiring-disk-image-with-dd-and-dcfldd

Create forensically sound bit-for-bit disk images with dd or dcfldd on a Linux forensic workstation, preserving evidence integrity through hash verification (MD5/SHA) during acquisition. Use when imaging a suspect drive, USB device, or memory card for investigation, preserving volatile disk evidence during incident response, or producing a verified copy for legal or law-enforcement proceedings before any destructive analysis.

analyzing-active-directory-acl-abuse

Detect dangerous ACL misconfigurations in Active Directory using ldap3

analyzing-android-malware-with-apktool

Perform static analysis of Android APK malware using apktool for resource decompilation, jadx for Java source recovery, and androguard for manifest inspection, dangerous permission-combination detection, and identification of obfuscated code, dynamic code loading, and reflection-based API calls. Use to statically triage a suspicious APK without executing it or to build mobile malware detection rules.

analyzing-api-gateway-access-logs

Parses API Gateway access logs (AWS API Gateway, Kong, Nginx) to detect

analyzing-apt-group-with-mitre-navigator

Query ATT&CK data with attackcti, mitreattack-python, and stix2, then build MITRE ATT&CK Navigator layers and multi-layer heatmap overlays mapping one or more APT groups

analyzing-azure-activity-logs-for-threats

Queries Azure Monitor activity logs and sign-in logs via azure-monitor-query

analyzing-bootkit-and-rootkit-samples

Analyzes bootkit and advanced rootkit malware infecting the Master

analyzing-browser-forensics-with-hindsight

Parse Chromium-based browser databases with Hindsight to extract and correlate browsing history, downloads, cookies, cached content, autofill data, saved passwords, and extensions from Chrome, Edge, Brave, Opera, and Vivaldi into a unified timeline (XLSX, JSON, or SQLite output). Use during incident response, insider-threat investigations, or criminal cases when you need to reconstruct a user

analyzing-campaign-attribution-evidence

Systematically evaluate cyber-campaign evidence to attribute an operation to a threat actor, using the Diamond Model and Analysis of Competing Hypotheses (ACH) to weigh infrastructure overlaps, TTP consistency, malware code similarity, and timing/language artifacts into confidence-weighted attribution assessments. Use when an incident investigation needs a defensible attribution confidence level.

analyzing-certificate-transparency-for-phishing

Monitor Certificate Transparency logs using crt.sh and Certstream to

analyzing-cloud-storage-access-patterns

Detect abnormal access in AWS S3, GCS, and Azure Blob Storage by analyzing CloudTrail Data Events, GCS audit logs, and Azure Storage Analytics for after-hours bulk downloads, new-IP access, and API-call spikes (e.g. GetObject) via statistical baselines and time-series anomaly detection. Use when investigating suspected cloud data exfiltration or building related detection rules.

analyzing-cobalt-strike-beacon-configuration

Extract and analyze Cobalt Strike beacon configuration from PE files

analyzing-cobaltstrike-malleable-c2-profiles

Parse and analyze Cobalt Strike Malleable C2 profiles with dissect.cobaltstrike (profiles and beacon-payload configs) and pyMalleableC2 (AST parsing) to extract HTTP/DNS transforms, URIs, headers, sleep/jitter, and injection behavior, then generate network detection signatures. Use when reverse-engineering a captured malleable profile or building detections against Cobalt Strike Beacon traffic.

analyzing-command-and-control-communication

Analyzes malware C2 communication over HTTP, HTTPS, DNS, and custom

analyzing-cyber-kill-chain

Analyzes intrusion activity against the Lockheed Martin Cyber Kill Chain

analyzing-disk-image-with-autopsy

Perform comprehensive forensic analysis of raw (dd), E01, or AFF disk images with Autopsy and The Sleuth Kit, recovering deleted files, examining metadata and embedded artifacts, keyword searching, and building investigation timelines with visual reports. Use for structured analysis of a forensic disk image or when stakeholders need visual reports from evidence.

analyzing-dns-logs-for-exfiltration

Analyzes DNS query logs to detect data exfiltration via DNS tunneling,

Verwandte Skills