XSL Script Processing T1220

Tactic: Stealth

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.

Events covered

4 catalog events are tagged with this technique by at least one rule.

Authoring guide

These 20 rules share fields, values, and exclusions.

Fields filtered most (27 distinct)

These fields appear most often in rule filters.

FieldRulesHowSample values
CommandLine10contains 7, wildcard 3, regex_match 2, in 1, length_compare 1(?i)\S+\.x[ms]l\s+.*\.xsl, */format:*, ://, * -e *, * -enc*
OriginalFileName9eq 9wmic.exe, Cmd.Exe, InstallUtil.exe, MSBuild.exe, bcdedit.exe
process_basename9eq 9WMIC.exe, cmstp.exe, cscript.exe, wmic.exe, Microsoft.Workflow.Compiler.exe
EventType8eq 7, starts_with 1start, Image loaded*, creation
Image7ends_with 5, starts_with 1, wildcard 1\wmic.exe, \msxsl.exe, ?:\ProgramData\*, ?:\Users\*, ?:\Users\*\AppData\*.exe
dll.name4eq 4jscript.dll, vbscript.dll, jscript9.dll, msxml3.dll, scrobj.dll
Hashes3contains 2, is_not_null 1IMPHASH=16A48C3CABF98A9DC1BF02C07FE1EA00, IMPHASH=1B1A3F43BF37B5BFE60751F2EE2F326E, IMPHASH=37777A96245A3C74EB217308F3546F4C,
event.type3eq 3start
parent_process_basename3eq 3cmd.exe, excel.exe, mspub.exe, powerpnt.exe, svchost.exe
process.args3wildcard 2, eq 1*,#*, *-format*:*, -n, /format*:*, ?:\ProgramData\*
process_name3regex_match 2, eq 1(?i)msxsl, msxsl.exe
EventID2eq 21, 4688
file.name2eq 2cmstp.exe.log, cscript.exe.log, jscript.dll, mshta.exe.log, vbscript.dll
ImageLoaded1ends_with 1\jscript.dll, \vbscript.dll
TargetFilename1wildcard 1?:\Users\*\Microsoft\CLR_*\UsageLogs\*.exe.log

Top indicator values (154 distinct)

These values appear most often in rule predicates.

FieldKindValueRules (here)Corpus reach
OriginalFileNameeq
wmic.exe
774
EventTypeeq
start
6388
process_basenameeq
WMIC.exe
666
process_basenameeq
msxsl.exe
422
process_basenameeq
cscript.exe
368
process_basenameeq
mshta.exe
384
process_basenameeq
wscript.exe
384
process_basenameeq
cmstp.exe
225
Imageends_with
\wmic.exe
362
Imageends_with
\msxsl.exe
26
dll.nameeq
jscript.dll
34
dll.nameeq
vbscript.dll
34
event.typeeq
start
31036
CommandLinecontains
*/format:*
22
CommandLinecontains
://
23
CommandLinecontains
\\\\
28
CommandLinecontains
* -e *
117
CommandLinecontains
* -enc*
12
CommandLinecontains
*.xsl*
1
CommandLinecontains
*bootstatuspolicy*
110
CommandLinecontains
*catalog*
112
CommandLinecontains
-format:
1
CommandLinecontains
/format:
1
CommandLineregex_match
(?i)\S+\.x[ms]l\s+.*\.xsl
22
Hashescontains
IMPHASH=16A48C3CABF98A9DC1BF02C07FE1EA00
22
Hashescontains
IMPHASH=1B1A3F43BF37B5BFE60751F2EE2F326E
22
Hashescontains
IMPHASH=37777A96245A3C74EB217308F3546F4C
22
Hashescontains
IMPHASH=9D87C9D67CE724033C0B40CC4CA1B206
22
Hashescontains
IMPHASH=B12619881D79C3ACADF45E752A58554A
22
process_nameregex_match
(?i)msxsl
22

Exclusions (196 distinct)

These values appear most often in top-level exclusions.

FieldKindValueRules excluding
process_basenameeq
mshta.exe
2
process_basenameeq
powershell.exe
2
process_basenameeq
regsvr32.exe
2
process_basenameeq
wscript.exe
2
user.ideq
S-1-5-18
2
CommandLinecontains
*\ProgramData\ServiceNow\agent-client-collector\config\acc.yml*
1
CommandLinecontains
://
1
CommandLinecontains
Format:List
1
CommandLinecontains
Format:csv
1
CommandLinecontains
Format:hform
1
CommandLinecontains
Format:htable
1
CommandLinecontains
Format:mof
1
CommandLinecontains
Format:rawxml
1
CommandLinecontains
Format:table
1
CommandLinecontains
\\\\
1

Rules under this technique

These vendors publish rules tagged with this technique.

Platform (all)
Domain (all)

Sigma 5 rules

Elastic 10 rules

Splunk 5 rules