ATT&CK coverage › Technique

Indirect Command Execution T1202

Adversaries may abuse utilities that allow for command execution to bypass security restrictions that limit the use of command-line interpreters. Various Windows utilities may be used to execute commands, possibly without invoking cmd. For example, Forfiles, the Program Compatibility Assistant (`pcalua.exe`), components of the Windows Subsystem for Linux (WSL), `Scriptrunner.exe`, as well as other utilities may invoke the execution of programs and commands from a Command and Scripting Interpreter, Run window, or via scripts. Adversaries may also abuse the `ssh.exe` binary to execute malicious commands via the `ProxyCommand` and `LocalCommand` options, which can be invoked via the `-o` flag or by modifying the SSH config file.

Events covered

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

ProviderEvent IDTitle
Sysmon1Process creation
Sysmon7Image loaded
Sysmon13RegistryEvent (Value Set)
Security-Auditing4688A new process has been created.
PowerShell4104Creating Scriptblock text (MessageNumber of MessageTotal).

Authoring guide

Patterns shared across the 39 rules above: which fields they filter on, what specific values they look for, and what they exclude. Field names are normalized across vendors so Sigma's Image, Elastic's process.name, and Splunk's process_name collapse into one row. Each rule contributes at most once per row.

Fields filtered most (16 distinct)

The fields most rules look at when detecting this technique. The How column shows the operators authors use (eq, wildcard, regex_match, match) and how often each appears. Sample values are concrete examples to start from, not an exhaustive list.

FieldRulesHowSample values
Image31ends_with 27, match 7, starts_with 2, eq 1, is_null 1, regex_match 1\pwsh.exe, \msdt.exe, \WINWORD.exe, :\Windows\System32\bash.exe, :\Windows\SysWOW64\bash.exe
CommandLine20match 17, ends_with 4, is_null 1, eq 1.lnk, .lnk", .lnk', bash -, bash.exe
OriginalFileName17eq 17WinWord.exe, Bash.exe, msdt.exe, ftp.exe, Excel.exe
ParentImage13ends_with 12, match 1\conhost.exe, \bginfo64.exe, \bginfo.exe, \wsl.exe, \wslhost.exe
Details2match 1, eq 1-command, powershell, "unknown"
Product2is_null 1, starts_with 1, match 1Sysinternals, PAExec
Description2eq 2The curl executable, PAExec Application
Hashes2match 2IMPHASH=11D40A7B7876288F919AB819CC2D9802, IMPHASH=1a6cca4d5460b1710a12dea39e4a592c, IMPHASH=dfd6aa3f7b2b1035b76b718f1ddc689f, IMPHASH=6834B1B94E49701D77CCB3C0895E1AFD, IMPHASH=F1039CED4B91572AB7847D26032E6BBF
TargetObject1match 1shell\open\command\
ImageLoaded1ends_with 1\sdiageng.dll
Company1is_null 1, eq 1Sysinternals - www.sysinternals.com, Sysinternals
IntegrityLevel1eq 1High, S-1-16-12288
ScriptBlockText1match 1-AnswerFile, C:\Windows\Diagnostics\System\PCW, Invoke-TroubleshootingPack
Provider_Name1eq 1SystemTraceProvider-Process
CurrentDirectory1match 1\\\\wsl.localhost

Top indicator values (414 distinct)

Specific (field, operator, value) combinations the rules check for, ranked by how many rules under this technique use each one. The Corpus reach column counts how many rules across the entire catalog (any technique) check the same combination. High numbers point to widely-used indicators that are likely noisy on their own; combine them with another condition for useful signal. Blank means the combination is specific to rules under this technique.

FieldKindValueRules (here)Corpus reach
Imageends_with\cscript.exe464
Imageends_with\pwsh.exe4140
Imageends_with\wscript.exe464
Imageends_with\cmd.exe492
Imageends_with\powershell.exe4143
Imageends_with\msdt.exe310
OriginalFileNameeqWinWord.exe34
Imageends_with\WINWORD.exe35
Imageends_with\calc.exe313
Imageends_with\regsvr32.exe357
Imageends_with\mshta.exe357
Imageends_with:\Windows\System32\bash.exe22
OriginalFileNameeqBash.exe23
Imageends_with:\Windows\SysWOW64\bash.exe22
OriginalFileNameeqmsdt.exe26
OriginalFileNameeqftp.exe22
Imageends_with\ftp.exe23
Imageends_with\POWERPNT.EXE24
Imageends_with\EXCEL.EXE22
OriginalFileNameeqExcel.exe23

Common exclusions (2 distinct)

Field/operator/value combinations that rules under this technique routinely exclude (top-level not() clauses). These are the false-positive paths the community has learned to filter out. A new rule that ignores the high-count entries here will likely fire on the same noisy paths.

FieldKindValueRules excluding
registry_value_nameeq"MRUList"1
Detailseq"unknown"1

Rules under this technique

Every rule in the catalog tagged with this technique, grouped by vendor. Click a rule title for its full predicates, exclusions, and indicators.

Sigma 38 rules

Splunk 1 rule