Resource Monitor, Performance Monitor & PowerShell for Security Analysis
After completing this lab, you will be able to:
Quick overview of running processes and basic resource usage
Detailed real-time CPU, memory, disk, and network per process
Historical data collection and custom performance counters
Scriptable queries and automation for monitoring
0 of 5 tasks completed
Resource Monitor (resmon) provides more detailed information than Task Manager, including per-process network connections and disk activity.
Or: Task Manager → Performance tab → "Open Resource Monitor" link
| Tab | Security Use Case |
|---|---|
| Overview | Quick glance at all resources with expandable sections |
| CPU | See which processes have high CPU and their associated services |
| Memory | Identify memory leaks and processes with large working sets |
| Disk | Detect unusual file I/O (ransomware encrypting files) |
| Network | See active connections per process with remote IPs |
The Network tab shows exactly which processes are connecting to which remote IP addresses. This is invaluable for detecting:
Open the Network tab in Resource Monitor. List one process that has active network connections, including the remote IP address it's connecting to.
Performance Monitor (perfmon) allows you to track system metrics over time and create alerts - essential for establishing baselines and detecting anomalies.
| Counter | Normal Range | Suspicious If... |
|---|---|---|
| % Processor Time | 0-30% (idle) | Sustained 90%+ (cryptominer) |
| Available MBytes | >1000 MB | Near 0 (memory exhaustion attack) |
| Disk Writes/sec | Variable | Constant high I/O (ransomware) |
| Network Bytes/sec | Variable | Sustained upload (exfiltration) |
Data Collector Sets allow you to record performance data over time for later analysis - crucial for detecting patterns that indicate security issues.
After running your collector for 2 minutes, what was the average % Processor Time?
PowerShell provides scriptable access to system resources, enabling automated monitoring and alerting.
Get CPU Usage:
Get Memory Info:
Get Top CPU Processes:
Get Network Connections by Process:
Find processes with network connections to external IPs:
Run the "Top CPU Processes" command. What are the top 3 processes by CPU usage on your system?
Combine your knowledge into a reusable security monitoring script.
Copy this script to a .ps1 file and run it during incident response:
Security_Snapshot.ps1 and add it to your incident response toolkit. Run it immediately when investigating a potentially compromised system.
Run the Security Snapshot script. How many external (non-local) network connections are currently established?