Detect LNK Icon Smuggling in CrowdStrike LogScale
Adversaries abuse Windows shortcut (.LNK) files to smuggle malicious payloads past content filters. LNK files contain metadata fields including an icon location field (IconEnvironmentDataBlock) designed to specify an icon file path. Adversaries exploit this field to reference external URLs that trigger payload downloads when the LNK is invoked. They also abuse the LNK target path field to embed interpreter commands with obfuscated arguments, often padding target fields with extra spaces to hide the malicious portion from casual inspection. Threat actors including Kimsuky, Gamaredon Group, Mustang Panda, and TONESHELL malware have weaponized LNK files with spoofed PDF icons to trick users into executing malicious binaries.
MITRE ATT&CK
- Tactic
- Defense Evasion
- Technique
- T1027 Obfuscated Files or Information
- Sub-technique
- T1027.012 LNK Icon Smuggling
- Canonical reference
- https://attack.mitre.org/techniques/T1027/012/
LogScale Detection Query
// T1027.012 - LNK Icon Smuggling - CrowdStrike LogScale (CQL)
// Pattern 1: LNK file creation by scripting engines
#event_simpleName = "NewExecutableWritten"
| TargetFileName = /(?i)\.lnk$/
| ImageFileName = /(?i)(powershell|cmd|wscript|cscript|mshta|rundll32|regsvr32|certutil)\.exe$/
| eval detection_type = "LNK_creation_by_scripting_engine"
| eval risk_score = 65
// Pattern 2: Padded commandline execution from explorer.exe (Kimsuky)
| union [
#event_simpleName = "ProcessRollup2"
| ParentBaseFileName = "explorer.exe"
| ImageFileName = /(?i)(powershell|cmd|wscript|cscript|mshta|regsvr32|rundll32)\.exe$/
| CommandLine = /\s{15,}/
| eval detection_type = "LNK_padded_commandline_execution"
| eval risk_score = 85
]
// Pattern 3: Suspicious binary from Temp/AppData via explorer.exe (Mustang Panda/TONESHELL)
| union [
#event_simpleName = "ProcessRollup2"
| ParentBaseFileName = "explorer.exe"
| (
ImageFileName = /(?i)\\office\.exe$/
or ImageFileName = /(?i)(\\Temp\\|\\AppData\\Local\\Temp\\|\\AppData\\Roaming\\).*\.exe$/
)
| eval detection_type = "LNK_suspicious_binary_from_temp"
| eval risk_score = 90
]
// Pattern 4: DNS request from explorer.exe for suspicious hostnames (icon field URL fetch)
| union [
#event_simpleName = "DnsRequest"
| ContextBaseFileName = "explorer.exe"
| DomainName = /(?i)\.(ps1|exe|dll|bat|vbs)$/
| DomainName != /(?i)(microsoft\.com|windows\.com|windowsupdate\.com|office\.com)$/
| eval detection_type = "LNK_icon_field_dns_lookup"
| eval risk_score = 70
]
// Aggregate and present results
| groupBy([ComputerName, detection_type], function=[
count(as=event_count),
max(risk_score, as=max_risk_score),
collect([CommandLine, ImageFileName, TargetFileName, DomainName, ParentBaseFileName], limit=10)
])
| sort(max_risk_score, order=desc) CrowdStrike LogScale CQL detection for T1027.012 LNK Icon Smuggling using Falcon telemetry events. Covers four patterns: NewExecutableWritten events for LNK creation by scripting engines, ProcessRollup2 events with padded commandlines from explorer.exe parent (Kimsuky TTP), ProcessRollup2 events with suspicious binary paths in Temp/AppData from explorer.exe parent (Mustang Panda/TONESHELL TTP), and DnsRequest events from explorer.exe for non-Microsoft hostnames (icon field URL fetch). Results are grouped by host and detection type with risk scoring.
Data Sources
Required Tables
False Positives & Tuning
- Legitimate software packagers or installers that write LNK files to disk using cmd.exe or PowerShell as part of setup routines
- Custom enterprise launchers that invoke explorer.exe with lengthy UNC paths or environment variable expansions that exceed the padding threshold
- Internal IT tooling stored in AppData that executes via desktop shortcuts causing explorer.exe to launch binaries from non-Program Files paths
Other platforms for T1027.012
Testing Methodology
Validate this detection against 4 adversary techniques from Atomic Red Team. Each test below lists the behaviour to exercise and the telemetry you should expect to see. Executable commands and cleanup steps are available with Pro.
- Test 1Create LNK with External Icon URL
Expected signal: Sysmon EventCode 11 (FileCreate) for the .lnk file creation. EventCode 1 (ProcessCreate) showing powershell.exe creating the file via WScript.Shell COM object.
- Test 2LNK with Padded Target Path (Kimsuky Evasion)
Expected signal: Sysmon EventCode 11 for LNK creation by powershell.exe. If executed: EventCode 1 showing cmd.exe spawned from explorer.exe with 260 spaces in CommandLine, then child powershell.exe process.
- Test 3LNK with PDF Icon Spoofing (Mustang Panda/TONESHELL Pattern)
Expected signal: Sysmon EventCode 11 for LNK creation. EventCode 1 for calc.exe (renamed as office.exe) execution from %TEMP% if the LNK is invoked. EventCode 11 for office.exe copy operation.
- Test 4LNK Executed via Script (Automated Execution Pattern)
Expected signal: Sysmon EventCode 11 for LNK creation by powershell.exe. EventCode 1 for cmd.exe spawned from powershell.exe. If icon URL were external: EventCode 22 DNS query and EventCode 3 network connection.
References (7)
- https://attack.mitre.org/techniques/T1027/012
- https://unprotect.it/technique/shortcut-hiding/
- https://www.uperesia.com/booby-trapped-shortcut
- https://www.securonix.com/blog/detecting-kimsuky-lnk-attack-chain/
- https://symantec-enterprise-blogs.security.com/threat-intelligence/shuckworm-ukraine-usb
- https://blog.talosintelligence.com/mustang-panda-plugx-pubload/
- https://www.sophos.com/en-us/threat-center/threat-analyses/mustang-panda-plugx
Unlock Pro Content
Get the full detection package for T1027.012 including response playbook, investigation guide, and atomic red team tests.