Reconfigure the security descriptor on the Service Control Manager endpoint to deny this right to remote users (S-1-5-2). This is not a service itself, but rather the SCM endpoint that PSEXEC and other tools must communicate with to call ChangeServiceConfig and related APIs. Adding a Deny ACE for NETWORK prevents remote use of this API while not interfering with local usage (by installers and local management tools).
Some suggestions for the windows hardening script:
Block remote commands
Disable DCOM See (https://docs.microsoft.com/en-us/windows/win32/com/enabledcom)
Block remote use of PSEXEC and similar tools that remotely install a temporary service.
See (https://twitter.com/JohnLaTwC/status/802218490404798464)
Reconfigure the security descriptor on the Service Control Manager endpoint to deny this right to remote users (
S-1-5-2
). This is not a service itself, but rather the SCM endpoint that PSEXEC and other tools must communicate with to call ChangeServiceConfig and related APIs. Adding a Deny ACE forNETWORK
prevents remote use of this API while not interfering with local usage (by installers and local management tools).See (https://docs.microsoft.com/en-us/windows/win32/api/winsvc/nf-winsvc-changeserviceconfiga)
In a batch file, add a Deny ACE to the existing SCM ACL:
This results in an ACL like the following. Note ACE number zero:
And add
mshta.exe
to the list:Some more fodder for future ideas by consulting this LOLBAS/BIN list:
(https://twitter.com/bohops/status/1322906881862602754)