Ein Doppelklick auf eine .lnk führt aus, worauf sie verweist. Das ist in Ordnung, wenn die Verknüpfung Ihre eigene ist und Sie dem Ziel vertrauen. Es ist das Gegenteil von dem, was Sie wollen, wenn die Verknüpfung aus einem Phishing-ZIP, einem USB-Stick oder einem E-Mail-Anhang kam. Die vier Optionen unten öffnen die .lnk selbst, nicht das Ziel.
Option 1: in den Parser auf dieser Seite einfügen
Die Drop-Zone auf der Startseite akzeptiert jede .lnk. Die Datei wird von einer Rust-Crate geparst, die zu WebAssembly kompiliert ist, in Ihrem Browser. Nichts wird hochgeladen. Sie erhalten eine strukturierte Ansicht jedes Feldes: ShellLinkHeader-Bits, LinkFlags, LinkTargetIDList, die LinkInfo (mit VolumeID und LocalBasePath), die StringData-Strings (NAME_STRING, RELATIVE_PATH, WORKING_DIR, COMMAND_LINE_ARGUMENTS, ICON_LOCATION) und alle ExtraData-Blöcke. Der TrackerDataBlock, falls vorhanden, legt den NetBIOS-Namen der ursprünglichen Maschine und die MAC-abgeleitete Droid-GUID offen, Felder, die Gold für die Triage sind, aber PII, die Sie nicht über eine Anbietergrenze hinweg übertragen wollen.
Option 2: PowerShell, für eine schnelle lokale Prüfung
PowerShell verwendet denselben Shell-COM-Resolver, den auch Explorer verwendet, sodass seine Sicht mit dem übereinstimmt, was ein Doppelklick zeigen würde, aber sie stoppt vor dem Starten.
$ws = New-Object -ComObject WScript.Shell
$lnk = $ws.CreateShortcut("C:\path\to\file.lnk")
$lnk | Format-List TargetPath, Arguments, WorkingDirectory, IconLocation, WindowStyle, Description, Hotkey
Was Ihnen das bringt, ist schnell und passt zum Resolver. Was Sie damit nicht erhalten, sind die LinkFlags, die FILETIME-Zeitstempel im Header, der LinkTargetIDList-Shell-Item-Walk oder die ExtraData-Blöcke. Für eine echte DFIR-Sicht verwenden Sie eines der speziellen Tools unten.
Option 3: ein Hex-Viewer für den Sniff-Test
Wenn Sie nur bestätigen wollen, dass eine Datei ein Shell Link ist, schauen Sie sich die ersten 20 Bytes an. Jede konforme .lnk beginnt mit einer HeaderSize von 4C 00 00 00 (76 Little-Endian), gefolgt von der LinkCLSID 00021401-0000-0000-C000-000000000046. Alles andere und es ist keine echte .lnk, was auch immer die Erweiterung behauptet. Nützlich, wenn Sie vermuten, dass eine Datei in .lnk umbenannt wurde, um wie eine auszusehen, oder wenn ein Parser sich weigert zu laden und Sie wissen müssen warum.
Option 4: spezielle Forensik-Tools
Diejenigen, die ich tatsächlich verwende:
- Eric Zimmermans
LECmd, der de-facto-Standard im DFIR. Befehlszeile, .NET, schnell, CSV/JSON-Ausgabe, die Timeline-Tools erwarten. Das Ausgabeschema ist im Wesentlichen der Community-Standard. - libyals
liblnk/lnkinfo, das Linux-Pendant. Gleiche MS-SHLLINK-Spezifikation, andere Sprache. Passt in Shell-Pipelines. lnkparse3, reiner Python-Shell-Link-Parser. Praktisch, wenn Sie bereits in einem Python-Notebook sind und Felder programmatisch abrufen möchten.- Windows-LNK-Parsing-Library (lcorbasson und Freunde), nützlich für die Code-Integration mit benutzerdefiniertem Tooling.
Alle vier implementieren MS-SHLLINK. Sie stimmen über den Feldsatz überein; sie sind uneins über die Ausgabeformatierung und darüber, wie streng sie bei reservierten-müssen-null-sein Bytes sind. Für Tiefenanalysen, bei denen Sie gestaltete Bytes vermuten, führen Sie zwei davon aus und vergleichen Sie die Ergebnisse.
Was Sie nicht tun sollten
- Doppelklicken Sie nicht auf verdächtige
.lnk-Dateien. Das ist der Angriffsvektor. Siehe LNK-Datei-Malware für das, was am anderen Ende tendenziell zu finden ist. - Vertrauen Sie nicht dem Icon. Eine
.lnkkann überIconLocationjedes Icon rendern, unabhängig davon, was sie tatsächlich startet. Klassischer Phishing-Trick: ein PDF-Icon über einemcmd.exe-Ziel. - Nehmen Sie nicht an, dass die Erweiterung passt. Windows blendet
.lnkstandardmäßig im Explorer aus, sodassInvoice.pdf.lnkwieInvoice.pdfaussieht. Inspizieren Sie zuerst. - Laden Sie nicht zu zufälligen Online-Parsern hoch. Eine
.lnkverrät Ihren NetBIOS-Namen und MAC. Ein Browser-lokaler Parser tut das nicht.
Wenn Sie bereits wissen, was die Bytes bedeuten, und eine Tour durch jedes Feld wollen, ist Was ist eine Windows-.lnk-Datei? die nächste Lektüre. Für die DFIR-spezifische Extraktion siehe forensische Analyse von .lnk-Dateien.
Weiterführende Literatur
- Microsofts [MS-SHLLINK]-Spezifikation auf Microsoft Learn, die maßgebliche Referenz.
- Eric Zimmerman, LECmd, das Offline-Tool.
- libyal, liblnk, das Linux-Pendant.
- Für bestätigende Artefakte, wenn eine
.lnkTeil eines größeren Falles ist: Jumplist-Parser, Prefetch-Parser, Registry-Parser.