LNK-Datei-Malware: Wie Windows-Verknüpfungen waffentauglich gemacht werden
· 4 Min. Lesezeit
Verknüpfungsdateien sind seit fünfzehn Jahren und mehr ein zuverlässiger Windows-Malware-Auslieferungsvektor. Sie sind klein, sie sehen im Explorer harmlos aus, die Erweiterung ist standardmäßig versteckt, und das Format lässt sie jede ausführbare Datei mit beliebigen Argumenten unter einem beliebigen Icon starten. Berichte von CISA, Mandiant, Trellix und SentinelOne ab 2023 markieren immer wieder dasselbe Muster: .lnk ist zurück an der Spitze des Initial-Access-Toolkits. Die Verlagerung ist real, und der Trick ist, dass es nichts zu patchen gibt, der Missbrauch nutzt legitime Felder genau wie spezifiziert.
Zwei Varianten des LNK-Missbrauchs
Parser-Ausnutzung
Eine kleine Anzahl von CVEs hat zugelassen, dass ein Shell-Link Code ausführt, einfach weil Explorer ihn gerendert hat.
- CVE-2010-2568, der Parsing-Fehler, den Stuxnet zur Verbreitung über USB-Laufwerke nutzte. Explorer lud automatisch eine bösartige DLL, während er das Icon der Verknüpfung zeichnete. Keine Klicks erforderlich.
- CVE-2017-8464, gleiche Familie, breiter. Gepatcht, aber nicht gepatchte Systeme blieben jahrelang Ziele.
- CVE-2020-0729, CVE-2022-37969, spätere parser-seitige Probleme mit kleinerem Wirkungsbereich.
Moderne Windows-Versionen patchen den Parser, sodass diese Klasse 2026 selten ist. Die aktive Bedrohung ist alles im nächsten Abschnitt.
Waffentauglichmachung legitimer Felder
Die Shell-Link-Spezifikation lässt eine Verknüpfung alles mit beliebigen Argumenten unter einem beliebigen Icon starten. Aktuelle Kampagnen missbrauchen genau das, kein Exploit erforderlich:
- Target zeigt auf
C:\Windows\System32\cmd.exe,powershell.exe,mshta.exe,rundll32.exe,regsvr32.exeoder eine kürzlich beliebte Living-off-the-Land-Binärdatei. Selten die Anwendung, die das Icon vorgibt. - Arguments trägt einen Einzeiler, der eine Nutzlast herunterlädt oder dekodiert,
-enc <base64>,iex (iwr http://...),mshta http://...,rundll32 .\loader.dll,Entryoder AMSI-Bypass-Strings. - WorkingDirectory zeigt auf das ISO/ZIP-Root oder
%TEMP%/%APPDATA%, sodass eine Sidecar-DLL oder ein Skript mit einem relativen Pfad aufgelöst wird. - IconLocation löst zu einer System-DLL auf,
imageres.dll,-187ist das PDF-Icon,imageres.dll,-3ist Word, um zum Dateinamen der Lockmittel zu passen.Invoice_April.pdf.lnkgerendert mit einem PDF-Icon.
Seit 2022, als Microsoft begann, VBA-Makros in Mark-of-the-Web-getaggten Office-Dokumenten zu blockieren, ist dies das dominante Phishing-Muster: ZIP- oder ISO-Container, .lnk darin, Sidecar-Nutzlast, die die LNK aufruft. Qakbot, Bumblebee, IcedID, Emotet-Wiederbelebungen und die meisten Ransomware-Affiliate-Aufnahmen von 2023-2025 haben es verwendet.
Wie eine bösartige LNK unter der Haube aussieht
Parsen Sie eine reale Phishing-.lnk (legen Sie sie in den Parser auf der Startseite, kein Upload, keine Ausführung), und Sie werden typischerweise sehen:
LinkInfo → LocalBasePath = C:\Windows\System32\cmd.exeoderpowershell.exe. Nicht die Datei, die das Icon vorgibt zu sein.StringData → COMMAND_LINE_ARGUMENTSenthält-enc,-EncodedCommand,iex,IEX,Invoke-Expression,mshta,rundll32.exe,regsvr32.exe, URLs oder Base64-Blobs länger, als die ursprüngliche LNK plausibel berechtigt ist zu tragen.StringData → WORKING_DIRzeigt auf das ISO/ZIP-Root oder%TEMP%/%APPDATA%.StringData → ICON_LOCATIONzeigt inimageres.dllodershell32.dll, keine echte Datei.ShellLinkHeader → ShowCommand = 7(minimiert). Halten Sie das cmd-Fenster außer Sicht.- ExtraData-Blöcke reich genug, um die Build-Maschine des Angreifers durch den NetBIOS-Namen und die Droid-GUID des TrackerDataBlock durchsickern zu lassen. Mehrere öffentliche Attributionserfolge stammten genau daraus, die Berichte zu Lazarus, APT37, APT41 zitieren es ausdrücklich.
LinkFlagsmit gesetztemHasArgumentsundHasIconLocation, oft mitIsUnicodeundHasExpStringfür den EnvironmentVariableDataBlock, der%USERPROFILE%- oder%TEMP%-Pfade zur Laufzeit auflöst.
Die Erkennungsmuster legen sich natürlich über die Parser-Ausgabe. Das CSV-Format von Eric Zimmermans LECmd ist das, worauf die meisten Erkennungsregeln zielen; lnkparse3 und libyals lnkinfo emittieren äquivalente Daten in verschiedenen Schemata.
Triage-Checkliste
Bevor Sie irgendeine .lnk öffnen, die Sie nicht selbst erstellt haben:
- Bestätigen Sie, dass die Datei das ist, was sie behauptet. Windows blendet
.lnkstandardmäßig aus.Invoice.pdfkann tatsächlichInvoice.pdf.lnksein. Erweiterungen anzeigen oder die ersten 20 Bytes hex-dumpen, eine echte LNK beginnt mit4C 00 00 00, gefolgt von der LinkCLSID00021401-0000-0000-C000-000000000046. - Lesen Sie den LocalBasePath. Wenn es nicht die Anwendung ist, die Sie für das Icon erwarten würden, hören Sie auf.
- Lesen Sie die COMMAND_LINE_ARGUMENTS. Jeder codierte Befehl, eingebettete URL oder Verweis auf eine Sidecar-Datei im selben Archiv ist ein rotes Tuch.
- Lesen Sie die ICON_LOCATION. Ein Pfad in
imageres.dll, während das Zielcmd.exeist, ist die klassische Maske. - Lesen Sie die ExtraData-Blöcke. Der NetBIOS-Name und die Droid-GUID des TrackerDataBlock werden Ihnen manchmal die Build-Maschine in die Hand geben. Verwenden Sie sie, um über Samples hinweg zu clustern.
- Anderswo zünden. Wenn Sie die Nutzlast verstehen müssen, tun Sie es in einer isolierten VM mit gesperrtem Netzwerk. Niemals auf Ihrer Arbeitsmaschine.
Defensive Leitplanken
- Dateierweiterungen im Explorer anzeigen. Richtlinien-gesteuert, wenn Sie Benutzern nicht vertrauen können.
- Verwenden Sie Attack Surface Reduction-Regeln: "Ausführung potenziell verschleierter Skripte blockieren" und "Diebstahl von Anmeldedaten aus LSASS blockieren" stumpfen beide die typische LNK-Kette ab.
- Wenden Sie Mark-of-the-Web auf heruntergeladene ISO- und IMG-Container an (dies änderte sich in Windows 11 22H2; überprüfen Sie Ihren Build).
- Bereitstellen Sie eine parser-basierte Erkennungsregel, die Verknüpfungen markiert, deren Ziel
cmd.exe/powershell.exe/mshta.exe/rundll32.exe/regsvr32.exeaußerhalb einer bekannten Allowlist ist. - Stellen Sie sicher, dass die Befehlszeilenauditierung von EVTX (
4688mit Befehlszeilen oder SysmonEventID=1) aktiviert ist. Die LNK ist der Auslöser; der erzeugte Prozess ist, wo Sie die Kette tatsächlich abfangen.
Weiterführende Literatur
- Microsofts [MS-SHLLINK]-Spezifikation, die Felder, die diese Kampagnen missbrauchen, sind dort dokumentiert.
- CISA, Bösartige LNK-Dateien Empfehlungen ab 2023, Details auf Kampagnenebene.
- Eric Zimmerman, LECmd, Offline-Parser, dessen Ausgabeschema die meisten Erkennungsregeln ansteuern.
- Für korrelierende Artefakte, wenn eine LNK läuft: Prefetch, AmCache, EVTX, Jumplist-Parser für die passende DestList-Zeile, MFT-Parser.