T1057 Process Discovery
High-Level Description
Adversaries may attempt to get information about running processes on a system. Information obtained could be used to gain an understanding of common software/applications running on systems within the network. Administrator or otherwise elevated access may provide better process details. Adversaries may use the information from Process Discovery during automated discovery to shape follow-on behaviors, including whether or not the adversary fully infects the target and/or attempts specific actions.
In Windows environments, adversaries could obtain details on running processes using the Tasklist utility via cmd or Get-Process via PowerShell. Information about processes can also be extracted from the output of Native API calls such as CreateToolhelp32Snapshot. In Mac and Linux, this is accomplished with the ps command. Adversaries may also opt to enumerate processes via /proc. ESXi also supports use of the ps command, as well as esxcli system process list.
On network devices, Network Device CLI commands such as show processes can be used to display current running processes.
Kill Chain Phase
- Discovery (TA0007)
Platforms: ESXi, Linux, macOS, Network Devices, Windows
What to Check
- Identify if Process Discovery technique is applicable to target environment
- Check ESXi systems for indicators of Process Discovery
- Check Linux systems for indicators of Process Discovery
- Check macOS systems for indicators of Process Discovery
- Assess detection coverage (1 detection strategies)
How to Test
Atomic Red Team Tests
The following tests are from Atomic Red Team and provide actionable ways to test this technique:
Atomic Test 1: Process Discovery - ps
Utilize ps to identify processes.
Upon successful execution, sh will execute ps and output to /tmp/loot.txt.
Supported Platforms: linux, macos
ps >> #{output_file}
ps aux >> #{output_file}
Atomic Test 2: Process Discovery - tasklist
Utilize tasklist to identify processes.
Upon successful execution, cmd.exe will execute tasklist.exe to list processes. Output will be via stdout.
Supported Platforms: windows
tasklist
Atomic Test 3: Process Discovery - Get-Process
Utilize Get-Process PowerShell cmdlet to identify processes.
Upon successful execution, powershell.exe will execute Get-Process to list processes. Output will be via stdout.
Supported Platforms: windows
Get-Process
Atomic Test 4: Process Discovery - get-wmiObject
Utilize get-wmiObject PowerShell cmdlet to identify processes.
Upon successful execution, powershell.exe will execute get-wmiObject to list processes. Output will be via stdout.
Supported Platforms: windows
get-wmiObject -class Win32_Process
Atomic Test 5: Process Discovery - wmic process
Utilize windows management instrumentation to identify processes.
Upon successful execution, WMIC will execute process to list processes. Output will be via stdout.
Supported Platforms: windows
wmic process get /format:list
Manual Testing
If Atomic Red Team tests are not applicable, manually verify the technique by:
Identify Attack Surface: Determine if the target environment is susceptible to Process Discovery by examining the target platforms (ESXi, Linux, macOS).
Assess Existing Defenses: Review whether mitigations for T1057 are in place. If defenses are absent or misconfigured, this technique may be exploitable.
Execute Test: Use tools and methods described in the MITRE ATT&CK page and external references below.
Remediation Guide
No specific mitigations documented for this technique.
Detection
Detection of Adversarial Process Discovery Behavior
Risk Assessment
| Finding | Severity | Impact |
|---|---|---|
| Process Discovery technique applicable | Medium | Discovery |
CWE Categories
| CWE ID | Title |
|---|---|
| CWE-200 | Exposure of Sensitive Information |