Adversaries may abuse the Windows service control manager to execute malicious commands or payloads. The Windows service control manager (services.exe
) is an interface to manage and manipulate services.[1] The service control manager is accessible to users via GUI components as well as system utilities such as sc.exe
and Net.
PsExec can also be used to execute commands or payloads via a temporary Windows service created through the service control manager API.[2] Tools such as PsExec and sc.exe
can accept remote servers as arguments and may be used to conduct remote execution.
Adversaries may leverage these mechanisms to execute malicious content. This can be done by either executing a new or modified service. This technique is the execution used in conjunction with Windows Service during service persistence or privilege escalation.
ID | Name | Description |
---|---|---|
S0504 | Anchor |
Anchor can create and execute services to load its payload.[3][4] |
G0050 | APT32 |
APT32's backdoor has used Windows services as a way to execute its malicious payload. [5] |
G0082 | APT38 |
APT38 has created new services or modified existing ones to run executables, commands, or scripts.[6] |
G0087 | APT39 |
APT39 has used post-exploitation tools including RemCom and the Non-sucking Service Manager (NSSM) to execute processes.[7][8] |
G0096 | APT41 |
APT41 used svchost.exe and Net to execute a system service installed to launch a Cobalt Strike BEACON loader.[9][10] |
S0438 | Attor | |
S0606 | Bad Rabbit |
Bad Rabbit drops a file named |
S0127 | BBSRAT | |
G0108 | Blue Mockingbird |
Blue Mockingbird has executed custom-compiled XMRIG miner DLLs by configuring them to execute via the "wercplsupport" service.[13] |
G0114 | Chimera |
Chimera has used PsExec to deploy beacons on compromised systems.[14] |
S0154 | Cobalt Strike |
Cobalt Strike can use PsExec to execute a payload on a remote host. It can also use Service Control Manager to start new services.[15][16][17] |
S0363 | Empire |
Empire can use PsExec to execute a payload on a remote host.[18] |
G0037 | FIN6 |
FIN6 has created Windows services to execute encoded PowerShell commands.[19] |
S0032 | gh0st RAT |
gh0st RAT can execute its service if the Service key exists. If the key does not exist, gh0st RAT will create and run the service.[20] |
G0072 | Honeybee |
Honeybee launches a DLL file that gets executed as a service using svchost.exe[21] |
S0376 | HOPLIGHT |
HOPLIGHT has used svchost.exe to execute a malicious DLL .[22] |
S0203 | Hydraq |
Hydraq uses svchost.exe to execute a malicious DLL included in a new service group.[23] |
S0398 | HyperBro |
HyperBro has the ability to start and stop a specified service.[24] |
S0357 | Impacket |
Impacket contains various modules emulating other service execution tools such as PsExec.[25] |
S0260 | InvisiMole |
InvisiMole has used Windows services as a way to execute its malicious payload.[26] |
G0004 | Ke3chang |
Ke3chang has used a tool known as RemoteExec (similar to PsExec) to remotely execute batch scripts and binaries.[27] |
S0250 | Koadic |
Koadic can run a command on another machine using PsExec.[28] |
S0451 | LoudMiner |
LoudMiner started the cryptomining virtual machine as a service on the infected machine.[29] |
S0039 | Net |
The |
S0056 | Net Crawler |
Net Crawler uses PsExec to perform remote service manipulation to execute a copy of itself as part of lateral movement.[31] |
S0457 | Netwalker |
Operators deploying Netwalker have used psexec and certutil to retrieve the Netwalker payload.[32] |
S0368 | NotPetya |
NotPetya can use PsExec to help propagate itself across a network.[33][34] |
S0439 | Okrum |
Okrum's loader can create a new service named NtmsSvc to execute the payload.[35] |
S0365 | Olympic Destroyer |
Olympic Destroyer utilizes PsExec to help propagate itself across a network.[36] |
G0116 | Operation Wocao |
Operation Wocao has created services on remote systems for execution purposes.[37] |
S0378 | PoshC2 |
PoshC2 contains an implementation of PsExec for remote execution.[38] |
S0238 | Proxysvc |
Proxysvc registers itself as a service on the victim’s machine to run as a standalone process.[39] |
S0029 | PsExec |
Microsoft Sysinternals PsExec is a popular administration tool that can be used to execute binaries on remote systems using a temporary Windows service.[2] |
S0192 | Pupy |
Pupy uses PsExec to execute a payload or commands on a remote host.[40] |
S0583 | Pysa |
Pysa has used PsExec to copy and execute the ransomware.[41] |
S0481 | Ragnar Locker |
Ragnar Locker has used sc.exe to execute a service that it creates.[42] |
S0166 | RemoteCMD |
RemoteCMD can execute commands remotely by creating a new service on the remote system.[43] |
S0140 | Shamoon |
Shamoon creates a new service named "ntssrv" to execute the payload. Shamoon can also spread via PsExec.[44][45] |
G0091 | Silence |
Silence has used Winexe to install a service on the remote system.[46][47] |
S0533 | SLOTHFULMEDIA |
SLOTHFULMEDIA has the capability to start services.[48] |
S0491 | StrongPity |
StrongPity can install a service to execute itself as a service.[49][50] |
S0612 | WastedLocker |
WastedLocker can execute itself as a service.[51] |
S0191 | Winexe |
Winexe installs a service on the remote system, executes the command, then uninstalls the service.[52] |
S0176 | Wingbird |
Wingbird uses services.exe to register a new autostart service named "Audit Service" using a copy of the local lsass.exe file.[53][54] |
G0102 | Wizard Spider |
Wizard Spider has used services.exe to execute scripts and executables during lateral movement within a victim network.[55][56] |
S0123 | xCmd |
xCmd can be used to execute binaries on remote systems by creating and starting a service.[57] |
ID | Mitigation | Description |
---|---|---|
M1040 | Behavior Prevention on Endpoint |
On Windows 10, enable Attack Surface Reduction (ASR) rules to block processes created by PsExec from running. [58] |
M1026 | Privileged Account Management |
Ensure that permissions disallow services that run at a higher permissions level from being created or interacted with by a user with a lower permission level. |
M1022 | Restrict File and Directory Permissions |
Ensure that high permission level service binaries cannot be replaced or modified by users with a lower permission level. |
ID | Data Source | Data Component |
---|---|---|
DS0017 | Command | Command Execution |
DS0009 | Process | Process Creation |
DS0019 | Service | Service Creation |
DS0024 | Windows Registry | Windows Registry Key Modification |
Changes to service Registry entries and command line invocation of tools capable of modifying services that do not correlate with known software, patch cycles, etc., may be suspicious. If a service is used only to execute a binary or script and not to persist, then it will likely be changed back to its original form shortly after the service is restarted so the service is not left broken, as is the case with the common administrator tool PsExec.