Create or Modify System Process: Windows Service T1543.003

Tactics: Persistence, Privilege Escalation

Adversaries may create or modify Windows services to repeatedly execute malicious payloads as part of persistence. When Windows boots up, it starts programs or applications called services that perform background system functions. Windows service configuration information, including the file path to the service's executable or recovery programs/commands, is stored in the Windows Registry.

Events covered

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

Authoring guide

Patterns shared across the 117 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 (63 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
CommandLine31contains 27, in 3, match 3, starts_with 2, eq 1, regex_match 1create, binpath, config, (?i)cmd\.exe\s+\/Q\s+\/c, -binarypathname
Image23ends_with 21, eq 3, contains 1, is_not_null 1\sc.exe, \reg.exe, .exe, ?:\windows\system32\svchost.exe, ?:\windows\syswow64\svchost.exe
ServiceName19eq 12, contains 4, starts_with 2, in 1ammyyadmin, atera, BTOBTO, Bluetooth Service, BluetoothService
process_name18eq 16, in 2, ends_with 1sc.exe, cmd.exe, powershell.exe, \services.exe, at.exe
Provider_Name16eq 16Service Control Manager
OriginalFileName15eq 15sc.exe, cmd.exe, devcon.exe, hamakaze.exe, psservice.exe
EventID14eq 147045, 6, 11, 4688
ImagePath14contains 9, match 2, regex_match 2, ends_with 1, in 1, starts_with 1 -c , -e, -k , -nop , -r
event.type14eq 13, ne 1start, change, deletion
TargetObject9wildcard 4, contains 3, ends_with 2, starts_with 1*\system\controlset*\services\*\imagepath, \currentcontrolset\services\btobto\, \parameters\servicedll, \registry\machine\software\microsoft\windows\currentversi..., \registry\machine\software\microsoft\windows\currentversion\run\*
ImageLoaded8ends_with 5, contains 1, in 1, starts_with 1*:\\windows\\cursors\\*, *:\\windows\\prefetch\\*, *\\appdata\\*, ?:\$recycle.bin\, ?:\amd\temp\
Details6is_not_null 3, contains 1, ends_with 1, eq 1, match 1, wildcard 1%%systemroot%%\system32\ntdsa.dll, %COMSPEC%*, %comspec%, *\.\pipe\*, .exe
EventData6contains 6, regex_match 1-itemproperty, \system\currentcontrolset\services\, -encodedcommand, \\SYSTEM\\CurrentControlSet\\Services\\.*\\Security, failurecommand
parent_process_name6eq 6, in 1services.exe, ScreenConnect.ClientService.exe, ScreenConnect.WindowsBackstageShell.exe, ScreenConnect.WindowsClient.exe, cmd.exe
Channel5eq 5, in 5

Top indicator values (6364 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
Provider_Nameeq
Service Control Manager
1650
Imageends_with
\sc.exe
1230
process_nameeq
sc.exe
1029
process_nameeq
cmd.exe
677
OriginalFileNameeq
sc.exe
926
EventIDeq
7045
820
EventIDeq
6
46
event.typeeq
start
8606
event.typeeq
change
577
CommandLinecontains
create
724
CommandLinecontains
binpath
56
CommandLinecontains
config
516
CommandLinecontains
sdset
35
CommandLinecontains
-binarypathname
22
CommandLinecontains
;ba
22
CommandLinecontains
;iu
22
CommandLinecontains
;su
22
CommandLinecontains
;sy
22
CommandLinecontains
;wd
22
CommandLinecontains
\\\\\\\\
23
CommandLinecontains
\appdata\local\temp
28
CommandLinecontains
\desktop\
213
CommandLinecontains
\downloads\
214
CommandLinecontains
\microsoft\windows\start menu\programs\startup\
23
EventDatacontains
-itemproperty
35
EventTypeeq
service-installed
33
Payloadcontains
-itemproperty
35
ScriptBlockTextcontains
-itemproperty
35
process.argseq
create
35
registry_value_nameeq
ImagePath
35

Exclusions (131 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
Imagewildcard
?:\program files (x86)\*.exe
2
Imagewildcard
?:\program files\*.exe
2
Imagewildcard
?:\windows\system32\services.exe
2
ServiceFileNamewildcard
%SystemRoot%\pbpsdeploy.exe
2
ServiceFileNamewildcard
?:\Windows\VeeamLogShipper\VeeamLogShipper.exe
2
CommandLinecontains
binpath= system32\drivers\netprotection_network_filter
1
CommandLinecontains
c:\\windows\\ccm\\
1
CommandLinecontains
create avelam binpath=c:\windows\system32\drivers\avelam.sys
1
CommandLinecontains
create netprotection_network_filter
1
CommandLinecontains
displayname= netprotection_network_filter
1
CommandLinecontains
group= pnp_tdi tag= yes
1
CommandLinecontains
type= kernel start=
1
CommandLinecontains
type=kernel start=boot error=critical group=early-launch
1
Detailseq
%%systemroot%%\system32\ntdsa.dll
1
Detailseq
C:\Windows\System32\STAgent.dll
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 67 rules

Elastic 24 rules

Splunk 23 rules

Kusto 2 rules

YARA-L 1 rule