Create or Modify System Process T1543

Tactics: Persistence, Privilege Escalation

Adversaries may create or modify system-level processes to repeatedly execute malicious payloads as part of persistence. When operating systems boot up, they can start processes that perform background system functions. On Windows and Linux, these system processes are referred to as services. On macOS, launchd processes known as Launch Daemon and Launch Agent are run to finish system initialization and load user specific parameters.

Events covered

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

ProviderEventTitle
SysmonEvent ID 1Process creation
SysmonEvent ID 3Network connection
SysmonEvent ID 5Process terminated
SysmonEvent ID 6Driver loaded
SysmonEvent ID 7Image loaded
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 4624An account was successfully logged on.
Security-AuditingEvent ID 4674An operation was attempted on a privileged object.
Security-AuditingEvent ID 4688A new process has been created.
Security-AuditingEvent ID 4689A process has exited.
Security-AuditingEvent ID 4697A service was installed in the system.
Security-AuditingEvent ID 4698A scheduled task was created.
Event ID 0Event ID 0
Defender-DeviceEventsanyDefender event (any)
Defender-DeviceProcessEventsanyProcess activity (any)
ESFexecProcess Execution (Notify)
ESFcreateFile or Directory Create (NOTIFY)
ESFwriteFile Write (NOTIFY)
Linux-AuditdEvent ID 1300SYSCALL
Linux-AuditdEvent ID 1302PATH
Linux-AuditdEvent ID 1309EXECVE
CodeIntegrityEvent ID 3023The driver FileNameBuffer is blocked from loading as the driver has been revoked by Microsoft.
CodeIntegrityEvent ID 3077Code Integrity determined that a process (Process Name) attempted to load File Name that did not meet the Requested Signing Level signing level requirements or violated code integrity p...
PowerShellEvent ID 4103Payload Context: ContextInfo User Data: UserData.
PowerShellEvent ID 4104Creating Scriptblock text (MessageNumber of MessageTotal).
PowerShellEvent ID 800Event ID 800
Service-Control-ManagerEvent ID 7036The Microsoft Software Shadow Copy Provider service entered the stopped state.
Service-Control-ManagerEvent ID 7045A service was installed in the system.
Sysmon-for-LinuxEvent ID 1Process Create
Sysmon-for-LinuxEvent ID 11File created

Authoring guide

Patterns shared across the 218 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 (105 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
event.type55eq 47, ne 5, in 3start, change, creation, deletion, process_started
process_name54eq 33, in 19, starts_with 6, wildcard 3, ends_with 1, is_not_null 1bash, csh, sc.exe, dash, cmd.exe
host.os.type51eq 50, in 1
Image49ends_with 28, is_not_null 8, contains 5, eq 5, ne 3, starts_with 3, wildcard 2, in 1\sc.exe, /curl, /python3, \reg.exe, *:\\windows\\cursors\\*
EventType48eq 24, in 22, contains 1, ne 1exec, ProcessRollup2, creation, exec_event, rename
CommandLine39contains 31, in 4, match 3, regex_match 3, eq 2, starts_with 2create, binpath, config, start, (?i)cmd\.exe\s+\/Q\s+\/c
TargetFilename26wildcard 12, starts_with 11, ends_with 4, eq 3, contains 1, in 1/boot/efi/efi/*/grub.cfg, /boot/grub/grub.cfg, /boot/grub2/grub.cfg, .git/hooks/, .helper
parent_process_name26eq 16, in 9, contains 1, is_not_null 1, wildcard 1bash, services.exe, apt, csh, dash
process.args25eq 14, contains 5, wildcard 5, in 4, starts_with 4, ends_with 1, ne 1-c, -i, --install, .git/hooks/, config
ServiceName21eq 13, contains 4, in 2, starts_with 2KrbSCM, ammyyadmin, atera, BTOBTO, Bluetooth Service
EventID19eq 197045, 6, 4688, 4697, 1
OriginalFileName18eq 17, in 1sc.exe, cmd.exe, devcon.exe, gpt4all.exe, hamakaze.exe
Provider_Name17eq 17Service Control Manager
ImagePath14contains 9, match 2, regex_match 2, ends_with 1, in 1, starts_with 1 -c , -e, -k , -nop , -r
ImageLoaded10ends_with 7, contains 1, in 1, starts_with 1*:\\windows\\cursors\\*, *:\\windows\\prefetch\\*, *\\appdata\\*, ?:\$recycle.bin\, ?:\amd\temp\

Top indicator values (7204 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
change
877
event.typeeq
creation
845
Provider_Nameeq
Service Control Manager
1750
EventTypein
exec
14171
EventTypein
start
12134
EventTypein
ProcessRollup2
9117
EventTypein
exec_event
9139
EventTypein
creation
823
EventTypein
rename
618
Imageends_with
\sc.exe
1230
EventIDeq
7045
1120
EventIDeq
6
46
EventTypeeq
exec
11171
process_nameeq
sc.exe
1029
process_nameeq
cmd.exe
677
OriginalFileNameeq
sc.exe
926
process_namein
bash
988
process_namein
csh
971
process_namein
fish
972
process_namein
ksh
973
process_namein
sh
983
process_namein
tcsh
969
process_namein
zsh
982
process_namein
dash
878
CommandLinecontains
create
724
CommandLinecontains
binpath
56
CommandLinecontains
config
516
event.categoryeq
process
6128
event.typene
deletion
528

Exclusions (788 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
Imagein
/bin/autossl_check
12
Imagein
/bin/chef-client
12
Imagein
/bin/dnf
12
Imagein
/bin/dnf-automatic
12
Imagein
/bin/dockerd
12
Imagein
/bin/microdnf
12
Imagein
/bin/podman
12
Imagein
/bin/puppet
12
Imagein
/bin/rpm
12
Imagein
/bin/snapd
12
Imagein
/bin/yum
12
Imagein
/opt/puppetlabs/puppet/bin/puppet
12
Imagein
/proc/self/exe
12
Imagein
/sbin/apk
12
Imagein
/usr/bin/autossl_check
12

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 85 rules

Elastic 83 rules

Splunk 39 rules

Kusto 8 rules

YARA-L 1 rule

Panther 2 rules