IncidentResponsev2

Remove Unapproved Software and Tools

Task Remove Unapproved or Malicious Software and Tools

Conditions

Given access to compromised or at-risk systems with local administrator/root permissions, and provided with an approved software baseline or whitelist, the operator will identify and remove unauthorized software or attacker tools to prevent persistence or further exploitation.

Operator Note: Unapproved or malicious tools can provide threat actors with remote access, credential theft capabilities, or data exfiltration paths. During containment, unauthorized software should be removed or disabled carefully to preserve forensic evidence and avoid business disruption.

Standards

End State

All unapproved or attacker-deployed software is removed or isolated from the environment, and removal actions are documented and validated.


Notes


Manual Steps

Step 1: Identify Installed Software and Tools

Windows - Installed Programs (PowerShell)

Get-WmiObject -Class Win32_Product | Select-Object Name, Version

Windows - Running Processes

Get-Process | Select-Object Name, Path

Operator Note: Look for non-standard paths (AppData, Temp, C:\Users).


Linux - Installed Packages (Debian/Ubuntu)

dpkg -l

Linux - Installed Packages (RedHat/CentOS)

rpm -qa

Linux - Running Processes

ps aux | less

Operator Note: Use lsof or netstat to identify software with network activity.


macOS - Installed Applications

system_profiler SPApplicationsDataType

macOS - Running Processes

ps aux

Step 2: Investigate and Confirm


Step 3: Disable or Remove Software

Windows - Uninstall

Get-WmiObject -Class Win32_Product -Filter "Name='ToolName'" | ForEach-Object { $_.Uninstall() }

Windows - Manual Removal (Advanced)


Linux - Uninstall Package

apt-get remove --purge packagename
yum remove packagename

Linux - Remove Binary / Custom Tools

rm /path/to/binary

Operator Note: Retain a forensic copy before removal if necessary.


macOS - Uninstall (manual)

sudo rm -rf /Applications/Tool.app

Step 4: Validate Removal


Running Script (Windows - Identify Suspicious Software)

Get-WmiObject -Class Win32_Product | Where-Object { $_.Name -notmatch "Microsoft|Adobe|VMware|Cisco" } | Select-Object Name, Version

Operator Note: Adjust exclusions based on organization whitelist.


Dependencies


Other Available Tools

Tool Platform Use Case
PowerShell + WMI Windows Installed software and removal
Autoruns (Sysinternals) Windows Identify software running at startup
dpkg, rpm, yum, apt Linux Package management and removal
ps, lsof, netstat Linux/macOS Running process identification
Manual removal All Remove binaries or application files

Operator Recommendations and Additional Tools

Operator Checklist

Best Practices


References

Windows PowerShell Get-WmiObject
Linux Package Management Guide
Sysinternals Autoruns


Revision History

Date Version Description Author
2025-05-02 1.0 Fully generated operator guide for identifying and removing unapproved software across OS platforms Leo