Detect Services Registry Permissions Weakness in Microsoft Sentinel
Adversaries may redirect service execution by exploiting weak permissions on service registry keys under HKLM\SYSTEM\CurrentControlSet\Services. Unlike modifying the binary, this approach modifies the registry value (ImagePath or BinPath) to point to a malicious executable. Additionally, the FailureCommand key can trigger malicious execution when a service fails, and the Performance DLL key can be used for DLL injection. The WinSock2\Parameters\AutodialDLL vector allows persistence via a DLL loaded every time the Winsock2 library is invoked. Vulnerability in RpcEptMapper service allowed non-admin users to create a Performance subkey, loading a DLL in any process using the RPC endpoint mapper.
MITRE ATT&CK
- Technique
- T1574 Hijack Execution Flow
- Sub-technique
- T1574.011 Services Registry Permissions Weakness
- Canonical reference
- https://attack.mitre.org/techniques/T1574/011/
KQL Detection Query
DeviceRegistryEvents
| where Timestamp > ago(24h)
| where RegistryKey startswith "HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services"
| where RegistryValueName in~ ("ImagePath", "BinPath", "FailureCommand", "ObjectName")
or RegistryKey endswith "\\Parameters"
or RegistryKey endswith "\\Performance"
| where not(InitiatingProcessFileName in~ ("msiexec.exe", "svchost.exe", "services.exe", "trustedinstaller.exe", "MpSigStub.exe"))
| where InitiatingProcessAccountName != "SYSTEM"
| where InitiatingProcessAccountName != ""
| extend ServiceName = extract(@"Services\\([^\\]+)", 1, RegistryKey)
| project Timestamp, DeviceName, AccountName, ServiceName, RegistryKey,
RegistryValueName, RegistryValueData, InitiatingProcessFileName
| sort by Timestamp desc Detects non-privileged modifications to service registry keys under HKLM\CurrentControlSet\Services. Focuses on critical value names: ImagePath (execution path), FailureCommand (executed on service failure), ObjectName (service account), and Performance/Parameters subkeys (DLL injection vectors). Excludes known-good system processes. Non-SYSTEM, non-installer processes modifying service registry entries is a high-fidelity signal for registry permissions weakness exploitation.
Data Sources
Required Tables
False Positives & Tuning
- Software installers that run under the installer's user context (not SYSTEM) and modify their own service entries
- Some enterprise management tools that modify service configurations with user-context credentials
- Legitimate sc.exe commands run by administrators to reconfigure services
- PowerShell remoting sessions that modify services using the remote user's credentials rather than SYSTEM
Other platforms for T1574.011
Testing Methodology
Validate this detection against 3 adversary techniques from Atomic Red Team. Each test below lists the behaviour to exercise and the telemetry you should expect to see. Executable commands and cleanup steps are available with Pro.
- Test 1Modify Service ImagePath via Registry (Non-Admin Demonstration)
Expected signal: Sysmon Event ID 13 (Registry Value Set) if the modification succeeds. reg.exe process creation events. If access is denied (correct behavior), only the query event fires. Security Event ID 4663 if registry auditing is enabled.
- Test 2Set Malicious FailureCommand on Test Service
Expected signal: Sysmon Event ID 13: FailureCommand registry value set under Services\FailureCmdTest\Parameters. Security Event ID 7045 (service installed). Process creation events for sc.exe. The FailureCommand would execute when sc stop FailureCmdTest is called and the service fails to stop cleanly.
- Test 3Check WinSock2 AutodialDLL Registry Value
Expected signal: reg.exe process creation. Registry read operation on WinSock2\Parameters. If the value were set (not in this test), every process using Winsock2 would load the specified DLL.
References (6)
- https://attack.mitre.org/techniques/T1574/011/
- https://itm4n.github.io/windows-registry-rpceptmapper-eop/
- https://www.mdsec.co.uk/2022/10/autodialdlling-your-way/
- https://www.hexacorn.com/blog/2015/01/13/beyond-good-ol-run-key-part-24/
- https://docs.microsoft.com/en-us/sysinternals/downloads/autoruns
- https://github.com/redcanaryco/atomic-red-team/blob/master/atomics/T1574.011/T1574.011.md
Unlock Pro Content
Get the full detection package for T1574.011 including response playbook, investigation guide, and atomic red team tests.