Used an XSL file to run VBScript code.1
XSL Script Processing T1220
- Tactic
- Stealth
- Platform
- Windows
- Version
- 2.0
- Created
- 17 October 2018
- Last modified
- 12 May 2026
- Contributors
- Avneet Singh; Casey Smith; Praetorian
Adversaries may bypass application control and obscure execution of code by embedding scripts inside XSL files. Extensible Stylesheet Language (XSL) files are commonly used to describe the processing and rendering of data within XML files. To support complex operations, the XSL standard includes support for embedded scripting in various languages. [1]
XSL Script Processing MITRE reference T1220
2 groups have been recorded using this technique. Newest first; each entry carries MITRE’s procedure text and a link to the group’s full record. Click a name to filter the rules below.
Used msxsl.exe to bypass AppLocker and to invoke Jscript code from an XSL file.1
All 2 groups for this technique
1 campaign has been recorded using this technique. Listed newest first; dates are year-granularity and attribution is MITRE’s.
During Operation Dream Job, Lazarus Group used a remote XSL script to download a Base64-encoded DLL custom downloader.1
All 1 campaigns for this technique
Offense vs defense T1220
Is defensive coverage keeping up with adversary use? Eight counts, each ranked against all 697 ATT&CK techniques. Attack sits left, defense right, so a shape leaning left means adversaries are better documented here than defenders are equipped. Hover any spoke for its percentile and the share of techniques that have more. The timeline below shows when each side arrived.
How it got here
Adversary activity (campaign spans) over cumulative rule output. Each source is plotted independently from zero, so neither line includes the other. Campaign dates are year-granularity.
XSL Script Processing detection strategy DET0205
MITRE names one behaviour worth catching for this technique and breaks it into 1 analytic, one per platform. Each carries the log sources it needs and the fields you tune per environment.
Detect XSL Script Abuse via msxsl and wmic
AN0581 · Windows
Execution of XSL scripts via msxsl.exe or wmic.exe using embedded JScript or VBScript for proxy execution. Detection correlates process creation, command-line patterns, and module load behavior of scripting components (e.g., jscript.dll).
Log sources
The data this analytic draws on. You do not need every component — each one you already collect covers part of it. Each links to its ATT&CK record.
| Data component | Name | Channel |
|---|---|---|
| Module LoadDC0016 | WinEventLog:Sysmon | EventCode=7 |
| Process CreationDC0032 | WinEventLog:Sysmon | EventCode=1 |
Tunable fields
MITRE calls these the analytic’s mutable elements: the thresholds and filters you set for your own environment.
| Field | What you tune |
|---|---|
| CommandLinePattern | May need to tune based on encoded input or custom extensions (e.g., .jpeg instead of .xsl). |
| ParentProcess | Legitimate administrative or developer tools may use msxsl; validate the parent process chain. |
| TimeWindow | Temporal correlation window between script engine DLL load and suspicious process spawn. |
| RemoteXSLDomainWhitelist | Filter known safe URLs used by enterprise for XSL transformations. |
If msxsl.exe is unnecessary, then block its execution to prevent abuse by adversaries.
Tests from Atomic Red Team (MIT licence) · technique definition