User Execution T1204

Tactic: Execution

An adversary may rely upon specific actions by a user in order to gain execution. Users may be subjected to social engineering to get them to execute malicious code by, for example, opening a malicious document file or link. These user actions will typically be observed as follow-on behavior from forms of Phishing.

Events covered

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

ProviderEventTitle
SysmonEvent ID 1Process creation
SysmonEvent ID 3Network connection
SysmonEvent ID 7Image loaded
SysmonEvent ID 8CreateRemoteThread
SysmonEvent ID 10ProcessAccess
SysmonEvent ID 11FileCreate
SysmonEvent ID 12RegistryEvent (Object create and delete)
SysmonEvent ID 13RegistryEvent (Value Set)
SysmonEvent ID 14RegistryEvent (Key and Value Rename)
Security-AuditingEvent ID 4656A handle to an object was requested.
Security-AuditingEvent ID 4663An attempt was made to access an object.
Security-AuditingEvent ID 4688A new process has been created.
Security-AuditingEvent ID 5156The Windows Filtering Platform has permitted a connection.
Defender-DeviceEventsCreateRemoteThreadApiCallCreateRemoteThread API call
Defender-DeviceFileEventsanyFile activity (any)
Defender-DeviceFileEventsFileCreatedFile created
Defender-DeviceImageLoadEventsanyImage load (any)
Defender-DeviceNetworkEventsConnectionSuccessConnection succeeded
Defender-DeviceProcessEventsProcessCreatedProcess created
ESFexecProcess Execution (Notify)
ESFwriteFile Write (NOTIFY)
AppLockerEvent ID 8004FilePathBuffer was prevented from running.
AppLockerEvent ID 8007FilePathBuffer was prevented from running.
AppLockerEvent ID 8022PackageBuffer was prevented from running.
AppLockerEvent ID 8025PackageBuffer was prevented from running.
AppXDeployment-ServerEvent ID 400Deployment DeploymentOperation operation with target volume MountPoint on Package PackageFullName from: Path finished successfully.
AppXDeployment-ServerEvent ID 603Started deployment DeploymentOperation operation on a package with main parameter Path and Options Flags and FlagsHigh.
AppXDeployment-ServerEvent ID 854Successfully added the following uri(s) to be processed: Path.
AppXDeployment-ServerEvent ID 855Finished resolving action lists.
AppxPackagingOMEvent ID 171The reader was created successfully for app package packageFullName.
PowerShellEvent ID 4103Payload Context: ContextInfo User Data: UserData.
PowerShellEvent ID 4104Creating Scriptblock text (MessageNumber of MessageTotal).

Authoring guide

Patterns shared across the 270 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 (177 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
process_name55eq 26, in 12, match 8, regex_match 7, starts_with 5, wildcard 4, ne 3, contains 1cmd.exe, base16, base32, base64, cscript.exe
EventID47eq 43, in 3, regex_match 11, 4688, 4104, malicious_file, 4663
CommandLine42contains 25, match 8, regex_match 6, in 5, wildcard 5, ends_with 2, eq 1, length_compare 1#, (?i)PCWDiagnostic|invoke, (?i)cab|diagcab, (?i)DavWWWRoot, *-*d*
Image41ends_with 29, contains 5, wildcard 4, in 3, starts_with 2, match 1, regex_match 1\excel.exe, \mspub.exe, \onenote.exe, \cmd.exe, /bash
event.type40eq 39, ne 2start, creation, deletion, denied, allowed
parent_process_name38eq 16, match 9, regex_match 7, in 6, ends_with 1explorer.exe, 7zFM.exe, (?i)(Microsoft..., excel.exe, winrar.exe
EventType24eq 19, in 6exec, ProcessRollup2, start, creation, exec_event
ParentImage23ends_with 17, contains 4, is_not_null 2, eq 1\eqnedt32.exe, \explorer.exe, \excel.exe, \msaccess.exe, \winword.exe
Type17eq 17account
process.args16eq 7, wildcard 6, contains 5, starts_with 4, in 3, ends_with 1*-*d*, -c, *lua*, *perl*, -*p*
sourcetype15eq 15aws:cloudtrail, aws:asl, cisco:isovalent:processExec, o365:management:activity, cisco:nvm:flowdata
TargetFilename14contains 7, ends_with 4, wildcard 4, in 1, match 1, starts_with 1.bat, .cmd, .dll, (?i)\x5cdevice\x5ccdrom, *\\system32\\*
host.os.type12eq 11, in 1
OriginalFileName11eq 11powershell.exe, powershell_ise.exe, cmd.exe, popupwrapper.exe, bitsadmin.exe
ImageLoaded10ends_with 5, contains 3, starts_with 3, regex_match 1.xll, .wll, :\programdata, [a-za-z]{5,6}\.wll, \\\\

Top indicator values (1672 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
31606
event.typeeq
creation
645
EventIDeq
1
13237
EventIDeq
4688
13313
process_nameeq
powershell.exe
11104
process_nameeq
cmd.exe
1077
process_nameeq
pwsh.exe
962
process_nameeq
mshta.exe
831
process_nameeq
wscript.exe
829
process_nameeq
cscript.exe
625
process_nameeq
bitsadmin.exe
514
process_nameeq
msiexec.exe
522
spaneq
10s
99
parent_process_nameeq
explorer.exe
820
Imageends_with
\excel.exe
718
Imageends_with
\winword.exe
720
Imageends_with
\mspub.exe
510
Imageends_with
\outlook.exe
514
Imageends_with
\powerpnt.exe
515
countgt
5
714
EventSubTypene
AttackAttempt
67
EventTypeeq
exec
6171
ParentImageends_with
\winword.exe
610
sourcetypeeq
aws:cloudtrail
659
verbeq
create
624
aws::eventSourceeq
ecr.amazonaws.com
57
process_namein
base16
56
process_namein
base32
57
process_namein
base64
58
process_namein
base64mime
55

Exclusions (350 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
CurrentDirectorywildcard
/opt/zeek
2
CurrentDirectorywildcard
/proc/self/fd/*/usr/local/zeek
2
CurrentDirectorywildcard
/usr/local/zeek
2
CurrentDirectorywildcard
/usr/local/zeek_old_install
2
CurrentDirectorywildcard
/var/lib/docker/overlay2/*/opt/zeek
2
CurrentDirectorywildcard
/var/lib/docker/overlay2/*/usr/local/zeek
2
ParentCommandLinecontains
extendedglob
2
dest_ipmatch
^(10\.|172\.(1[6-9]|2[0-9]|3[0-1])\.|192\.168\.|fc00:|fd00:|fe80:)
2
parent_process_nameeq
zsh
2
process.code_signature.trustedeq
true
2
process_nameeq
cmd.exe
2
process_nameregex_match
(?i)windowsupdatelog
2
Accounteq
AccountAllowList
1
ActingProcessFileInternalNameeq
inet_access_proc
1
ActingProcessFileInternalNameeq
sys_proc
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.

Platform (all)
Domain (all)

Sigma 58 rules

Elastic 55 rules

Splunk 98 rules

Kusto 42 rules

YARA-L 5 rules

Panther 12 rules