Cross-source coverage
T1543.003 / ATT&CK
Create or Modify System Process: Windows Service
From MITRE ATT&CK 19.2
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.
Adversaries may install a new service or modify an existing service to execute at startup in order to persist on a system. Service configurations can be set or modified using system utilities (such as sc.exe), by directly modifying the Registry, or by interacting directly with the Windows API.
Adversaries may also use services to install and execute malicious drivers. For example, after dropping a driver file (ex: .sys) to disk, the payload can be loaded and registered via Native API functions such as CreateServiceW() (or manually via functions such as ZwLoadDriver() and ZwSetValueKey()), by creating the required service Registry values (i.e. Modify Registry), or by using command-line utilities such as PnPUtil.exe. Adversaries may leverage these drivers as Rootkits to hide the presence of malicious activity on a system. Adversaries may also load a signed yet vulnerable driver onto a compromised machine (known as "Bring Your Own Vulnerable Driver" (BYOVD)) as part of Exploitation for Privilege Escalation.
Services may be created with administrator privileges but are executed under SYSTEM privileges, so an adversary may also use a service to escalate privileges. Adversaries may also directly start services through Service Execution.
To make detection analysis more challenging, malicious services may also incorporate Masquerade Task or Service (ex: using a service and/or payload name related to a legitimate OS or benign software component). Adversaries may also create ‘hidden’ services (i.e., Hide Artifacts), for example by using the sc sdset command to set service permissions via the Service Descriptor Definition Language (SDDL). This may hide a Windows service from the view of standard service enumeration methods such as Get-Service, sc query, and services.exe.
- Tactics
- Persistence · Privilege Escalation
- Platforms
- Windows
- Telemetry
-
WinEventLog:SecurityWinEventLog:Sysmon
How MITRE says to detect it DET0552
Detection of Windows Service Creation or Modification
Windows Analytic 1527
Detects creation or modification of Windows Services through command-line tools (e.g., `sc.exe`, `powershell.exe`), Registry key changes under `HKLM\System\CurrentControlSet\Services`, and service execution under SYSTEM with unsigned or anomalous binary paths. Detects privilege escalation via driver installation or `CreateServiceW` usage. Correlates parent-child lineage, startup behavior, and rare service names.
WinEventLog:SecurityEventCode=4697WinEventLog:SysmonEventCode=1WinEventLog:SysmonEventCode=13, 14WinEventLog:SysmonEventCode=6
SigmaHQ/sigma
45 rules| Detection | Severity | Format |
|---|---|---|
| CobaltStrike Service Installations - System | Critical | Sigma |
| CosmicDuke Service Installation | Critical | Sigma |
| Moriya Rootkit File Created | Critical | Sigma |
| Moriya Rootkit - System | Critical | Sigma |
| OilRig APT Activity | Critical | Sigma |
| OilRig APT Registry Persistence | Critical | Sigma |
| OilRig APT Schedule Task Persistence - Security | Critical | Sigma |
| OilRig APT Schedule Task Persistence - System | Critical | Sigma |
| Turla PNG Dropper Service | Critical | Sigma |
| Allow Service Access Using Security Descriptor Tampering Via Sc.EXE | High | Sigma |
+ 35 more from SigmaHQ/sigma → showing the 10 highest-severity
splunk/security_content
22 rules| Detection | Severity | Format |
|---|---|---|
| CMD Echo Pipe - Escalation | Undefined | SPL |
| Impacket Lateral Movement Commandline Parameters | Undefined | SPL |
| Impacket Lateral Movement smbexec CommandLine Parameters | Undefined | SPL |
| Impacket Lateral Movement WMIExec Commandline Parameters | Undefined | SPL |
| Possible Lateral Movement PowerShell Spawn | Undefined | SPL |
| Randomly Generated Windows Service Name | Undefined | SPL |
| Services LOLBAS Execution Process Spawn | Undefined | SPL |
| Windows Admin Password Changed by Non-Admin | Undefined | SPL |
| Windows Bluetooth Service Installed From Uncommon Location | Undefined | SPL |
| Windows Cloud Files Filter Loaded by Uncommon Process | Undefined | SPL |
+ 12 more from splunk/security_content → showing the 10 highest-severity
elastic/detection-rules
21 rules| Detection | Severity | Format |
|---|---|---|
| Persistence via Update Orchestrator Service Hijack | High | Elastic TOML |
| Persistence via WMI Standard Registry Provider | High | Elastic TOML |
| Service Creation via Local Kerberos Authentication | High | Elastic TOML |
| Suspicious ImagePath Service Creation | High | Elastic TOML |
| Windows Service Installed via an Unusual Client | High | Elastic TOML |
| First Time Seen Driver Loaded | Medium | Elastic TOML |
| Potential Privilege Escalation via Service ImagePath Modification | Medium | Elastic TOML |
| Remote Windows Service Installed | Medium | Elastic TOML |
| Service DACL Modification via sc.exe | Medium | Elastic TOML |
| Suspicious ScreenConnect Client Child Process | Medium | Elastic TOML |
+ 11 more from elastic/detection-rules → showing the 10 highest-severity
elastic/protections-artifacts
14 rules| Detection | Severity | Format |
|---|---|---|
| Driver Dropped by Untrusted Executable | Undefined | Elastic TOML |
| Kernel Driver Registered via NtLoadDriver | Undefined | Elastic TOML |
| Registry or File Modification from Suspicious Memory | Undefined | Elastic TOML |
| Self Service Persistence by an Unsigned Process | Undefined | Elastic TOML |
| Service Communication via Mail Protocol | Undefined | Elastic TOML |
| Service Installed by an Unusual Microsoft Signed Process | Undefined | Elastic TOML |
| Service Installed by Unsigned Process | Undefined | Elastic TOML |
| Suspicious API from an Unsigned Service DLL | Undefined | Elastic TOML |
| Suspicious Execution via Windows Services | Undefined | Elastic TOML |
| Suspicious Service ImagePath Value | Undefined | Elastic TOML |
+ 4 more from elastic/protections-artifacts → showing the 10 highest-severity
Wazuh Core Ruleset
12 rules · 11 families| Detection | Severity | Format |
|---|---|---|
| Volume Shadow Copy Service: COM+ database corrupted, writers will not receive events. | Medium | Wazuh XML |
| Bad return code detected during internal processing of the EventSystem service. | Low | Wazuh XML |
| Evidence of new service creation found in registry under binary is · win.eventdata.details = (?i)\.exe, win.eventdata.targetObject = (?i)System\\\\CurrentControlSet\\\\Services | Low | Wazuh XML |
| MS-DHCP: Service authorized in AD. | Low | Wazuh XML |
| MS-DHCP: Started. | Low | Wazuh XML |
| MS-DHCP: The log was started. | Low | Wazuh XML |
| MS-DHCP: The log was stopped. | Low | Wazuh XML |
| New Windows Service Created | Low | Wazuh XML |
| Powershell script executed "New-Service" command | Low | Wazuh XML |
| The Event log service was started 2 variants | Low | Wazuh XML |
+ 2 more from Wazuh Core Ruleset → showing the 10 highest-severity
Azure/Azure-Sentinel
1 rule| Detection | Severity | Format |
|---|---|---|
| Rare-process-as-a-service | Undefined | KQL |
chronicle/detection-rules
1 rule| Detection | Severity | Format |
|---|---|---|
| win_susp_or_malicious_service_created | Medium | YARA-L |
socfortress/Wazuh-Rules
1 rule| Detection | Severity | Format |
|---|---|---|
| T1543.003 - Windows Service Configuration Modification via Registry (ImagePath, ServiceDll, Type, Start) | High | Wazuh XML |