IncidentResponsev2

Disable Windows Services

Task Disable Non-Essential or Suspicious Windows Services

Conditions

Given access to compromised or at-risk systems and local administrator or domain administrator permissions, the operator will identify and disable unnecessary or suspicious services to disrupt potential attacker persistence and limit lateral movement.

Operator Note: Adversaries frequently abuse Windows services to maintain persistence, escalate privileges, or evade detection. Disabling unneeded or malicious services is a key containment tactic, but should be executed carefully to avoid service disruption.

Standards

End State

All unauthorized or non-essential services on impacted hosts are disabled, and operators have validated these services are no longer running.


Notes


Manual Steps

Step 1: Enumerate All Services

PowerShell (Preferred)

Get-Service | Select-Object Name, DisplayName, Status, StartType

Command Line (sc query)

sc query type= service state= all

Windows Services GUI (services.msc)

services.msc

Operator Note: Use GUI for easier visual review when dealing with complex or unfamiliar services.


Step 2: Investigate Suspicious Services

Look for:

Get-WmiObject Win32_Service | Select-Object Name, DisplayName, State, StartMode, PathName

Step 3: Disable a Service

Set-Service -Name "ServiceName" -StartupType Disabled
Stop-Service -Name "ServiceName" -Force

Command Line (sc config)

sc config "ServiceName" start= disabled
sc stop "ServiceName"

Operator Note: Always stop the service after disabling to ensure it is not running.


Step 4: Validate Disabled Status

Get-Service -Name "ServiceName"

Expected Status:

Status   Name               DisplayName
------   ----               -----------
Stopped  ServiceName        Example Service

Step 5: Back up list of services (optional for rollback or forensics)

Get-Service | Export-Csv .\ServicesBackup.csv -NoTypeInformation

Running Script (Bulk Disable Suspicious Services Example)

$suspiciousServices = @("badsvc1","malwareupdate","strangeSvc")

foreach ($svc in $suspiciousServices) {
    Set-Service -Name $svc -StartupType Disabled
    Stop-Service -Name $svc -Force
}

Operator Note: Update the array with service names identified during review.


Dependencies


Other Available Tools

Tool Platform Use Case
PowerShell (Get-Service, Set-Service) Windows Bulk review and disabling
sc.exe Windows CLI method for disabling
services.msc Windows Visual review and disable (manual)
Sysinternals Autoruns Windows Detect services and startup programs
WMI Windows Advanced service interrogation

Operator Recommendations and Additional Tools

Operator Checklist

Best Practices


References

Microsoft Docs - Service Cmdlets in PowerShell
sc.exe command-line reference
Sysinternals Autoruns


Revision History

Date Version Description Author
2025-05-02 1.0 Fully generated operator guide for disabling Windows services, multi-method instructions, forensic guidance Leo