Windows .LNK shortcut files were once reliable initial access vectors — hovering over or right-clicking a crafted shortcut would execute code. Microsoft progressively killed these vectors through Mark of the Web enforcement, Protected View, and policy restrictions. This writeup covers the history of what worked, why each was patched, and the techniques that replaced them for phishing-based initial access.
For years, malicious LNK (shortcut) files were a reliable initial access vector. Double-click a shortcut, it runs powershell.exe with encoded arguments, downloads a stager, and you're compromised.
This worked because LNK files could:
Modern endpoint protection has caught up:
ShellExecute and inspects what the shortcut actually runsThe detection is so reliable that LNK-based initial access is essentially a signature at this point.
| Technique | Why It Works | Limitation |
|---|---|---|
| ISO/IMG containers | Auto-mount bypasses MOTW on contents. Double extension (invoice.pdf.exe) shows PDF icon. | Windows 11 now propagates MOTW into mounted images |
| HTA files | mshta.exe is signed Microsoft binary. Can execute VBScript/JScript. |
Increasingly monitored, MOTW applies |
| Office macros | VBA can download via MSXML2.XMLHTTP. Trusted document context. | Microsoft disabled macros in downloaded docs by default |
| MSI installers | Custom actions execute code. "Software installation" is expected behavior. | Requires user to click through install dialogs |
| OneNote attachments | Embedded files bypass many controls. 2023's favorite. | Microsoft patched in mid-2023 |
Initial access techniques have a lifecycle:
LNK files are firmly in stage 4. The cat-and-mouse continues with each new technique.
ISO mount events: Event ID 12 from Microsoft-Windows-VHDMP. Track mounted images from user Downloads/Desktop.
HTA execution: mshta.exe running from user directories. Any HTA from Downloads is suspicious.
Office macro execution: WINWORD.EXE spawning cmd.exe, powershell.exe, or making network connections.
MSI custom actions: msiexec.exe spawning unexpected child processes.
If you're still using LNK files in engagements, you're testing whether the client has 2018-era detection. Modern assessments should use current techniques to provide meaningful security validation.
MITRE ATT&CK: T1204.002 (User Execution: Malicious File)