Exploitation for Client Execution T1203

Tactic: Execution

Adversaries may exploit software vulnerabilities in client applications to execute code. Vulnerabilities can exist in software due to unsecure coding practices that can lead to unanticipated behavior. Adversaries can take advantage of certain vulnerabilities through targeted exploitation for the purpose of arbitrary code execution. Oftentimes the most valuable exploits to an offensive toolkit are those that can be used to obtain code execution on a remote system because they can be used to gain access to that system. Users will expect to see files related to the applications they commonly used to do work, so they are a useful target for exploit research and development because of their high utility.

Events covered

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

Authoring guide

Patterns shared across the 106 rules above: which fields they filter on, what specific values they look for, and what they exclude. The catalog normalizes field names 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 (108 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
EventType22eq 14, in 6, contains 1, starts_with 1exec, ProcessRollup2, IntrusionEvent, exec_event, ConnectionEvent
Image21ends_with 19, contains 2, is_not_null 1\cmd.exe, \cscript.exe, \mshta.exe, /bash, \dfsvc.exe
event.type21eq 19, ne 3, in 1start, deletion, creation, process_started
parent_process_name21eq 13, match 4, in 3, wildcard 1foomatic-rip, (?i)EQNEDT32.EXE, cupsd, excel.exe, outlook.exe
process_name20eq 14, in 5, wildcard 4bash, dash, csh, curl, arp.exe
CommandLine17contains 12, eq 2, match 2, regex_match 2, wildcard 2, ends_with 1, is_not_null 1, is_null 1 -e , && echo, (?i).*mmc\.exe.*((Windows\s+\\\\System32)|(Windows\s+Syst..., */dev/shm/*, */dev/tcp*
ParentImage16ends_with 14, contains 1, eq 1\winrar.exe, \winword.exe, /node, /rsync, /rsyncd
host.os.type13eq 10, in 3
sourcetype8eq 8cisco:sfw:estreamer, stream:dns, stream:tcp
Action7eq 7, contains 2Blocked, Matched, *, dvcaction, vulnerabilityAlert
EventID6eq 67, 4688, 1, 22
TargetFilename5contains 2, wildcard 2, ends_with 1.cfg, .log, .txt, /*/sap.com/*/servlet_jsp/irj/root/*, /*/sap.com/*/servlet_jsp/irj/work/*
Total_TransactionId5ge 53, 1
Category4eq 4FrontDoorWebApplicationFirewallLog, ApplicationGatewayFirewallLog
ImageLoaded4ends_with 2, starts_with 1, wildcard 1?:\users\*\appdata\local\temp\wps\inetcache\*, \\*, \\\\, \\sdiageng.dll, \device\mup\**

Top indicator values (972 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. Click a value to expand the rules under this technique that use it.

FieldKindValueRules (here)Corpus reach
event.typeeq
start
18606
sourcetypeeq
cisco:sfw:estreamer
732
EventTypein
exec
6171
EventTypein
ProcessRollup2
5117
EventTypein
start
5134
EventTypein
exec_event
3139
Imageends_with
\cmd.exe
6130
Imageends_with
\powershell.exe
6182
Imageends_with
\pwsh.exe
6168
Imageends_with
\cscript.exe
473
Imageends_with
\rundll32.exe
495
Imageends_with
\wscript.exe
475
Imageends_with
\mshta.exe
367
process_namein
bash
588
process_namein
csh
571
process_namein
dash
578
process_namein
fish
572
process_namein
ksh
573
process_namein
sh
583
process_namein
tcsh
569
process_namein
zsh
582
Actioneq
Blocked
46
Actioneq
Matched
45
Total_TransactionIdge
3
46
process_namewildcard
curl
416
process_namewildcard
perl*
411
process_namewildcard
python*
424
Categoryeq
FrontDoorWebApplicationFirewallLog
34
EventIDeq
7
339
EventTypeeq
IntrusionEvent
318

Exclusions (297 distinct)

Field/operator/value combinations excluded by rules under this technique (top-level not() clauses), sorted by how many rules exclude each. 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. Click a value to expand the rules under this technique that exclude it.

FieldKindValueRules excluding
process.code_signature.trustedeq
true
3
CommandLinewildcard
*-sDEVICE=ps2write*
2
CommandLinewildcard
*/tmp/foomatic-*
2
CommandLinewildcard
*printf*
2
CommandLinewildcard
/bin/bash -c cat
2
CommandLinewildcard
/bin/bash -e -c cat
2
CommandLinewildcard
/bin/sh -e -c cat
2
DestinationPorteq
443
2
DestinationPorteq
80
2
Imagewildcard
?:\users\*\appdata\local\google\chrome\application\chrome.exe
2
Imagewildcard
?:\users\*\appdata\local\island\island\application\island.exe
2
Imagewildcard
?:\users\*\appdata\local\mozilla firefox\firefox.exe
2
Imagewildcard
?:\windows\system32\werfault.exe
2
Imagewildcard
?:\windows\syswow64\werfault.exe
2
dest_ipcidr_match
10.0.0.0/8
2

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.

Platform (all)
Domain (all)

Sigma 33 rules

Elastic 29 rules

Splunk 17 rules

Kusto 24 rules

Panther 3 rules