Skip to content

Process Tree

Martin Willing edited this page Jan 6, 2023 · 5 revisions

TL;DR
The interactive process tree Get-ProcessTree.ps1 shows you a hierarchical view of the processes running on the Windows system at the point of the memory snapshot. It ingests proc.csv created by MemProcFS-Analyzer, which itself is an enriched process list from MemProcFS. This advanced tree form is much more tangible than a simple process table, visualizing the relationships between all processes of your memory snapshot.

Process Tree

image
Fig 1: Process Tree uses Process IDs (PID) and Parent Process IDs (PPID) to create an interactive tree.

The root node of this tree is the System process with PID 4.

Tip: You can expand and collapse all tree view nodes by pressing the +/- buttons in the top left corner.

Orphan Processes

Sometimes you will have processes where the parent process is not existing in the memory snapshot anymore. Process entries, whose Parent Process IDs does not match any existing PID, will be listed under the Orphan Processes node.

Properties View

You can view the properties of every process via two different methods:

Mouse Hover Double Click
image image
Hovering over an entry shows it's details via tooltip. Double-Clicking an entry brings up the properties window. You can open multiple windows to compare them or use hotkeys to copy it's entries in a unified format.

Tip: Select the rows you want to copy from the properties view and press Ctrl+C to copy the text to your clipboard. Press Ctrl+A and Ctrl+C to copy all metadata.

Searching

image
Fig 2: Process Tree includes in-depth search and filter capabilities

You can filter for:

  • CommandLine
  • Device Path
  • Parent Name
  • PID
  • PPID
  • Process Name
  • User
  • and much more

Searching feature w/ 3 different modes:

  • Plaintext: 1:1 text matching
  • Extended: Allows the use of wildcards, like *, ? and [ ]
  • RegEx: Regular Expression Syntax

You can search Everywhere or filter specific property entries via Filter dropdown menu. All search hits will be highlighted with yellow background color. The process tree will be auto-expanded to show your search hits including their child processes.

Enrichment

image

When inspecting a process tree, you may notice some entries being marked in red. These marked entries should be your first points of interest when inspecting a process tree. The red color indicates that this entry is in some way notable and/or indicates signs of malware, attackers, or advanced TTPs.

These indicators/anomalies are also added to the properties view of the process and flagged with a Suspicious tag. If a process triggers multiple threat detections, all of them will be listed and separated with semicolon.

As with all analytics there can be false-positives. As shown in the screenshot above Sysinternals Zoomit is running from a user's temp folder which is a common place for malware.

Alert Messages

The root tag Alert Messages lists all these unusual occurrences all in one place. A quick look through these alert messages helps you to find low hanging fruits without digging through the whole process tree. A process called lsas.exe should definitely get your full attention. ;-)

image

Manual Start (Offline Usage)

Get-ProcessTree.ps1 is automatically launched by MemprocFS-Analyzer's workflow. If you would like to inspect the process tree afterwards, you can simply navigate to the script and launch it via the following command:
cd <MemProcFS-Analyzer-Directory>\Scripts\Get-ProcessTree\
.\Get-ProcessTree.ps1 -CSVPath <path-to-proc.csv>

Tip: Check out Get-Help .\Get-ProcessTree.ps1 for more options.

If you have known false-positives on your work environment that always appear in the alert messages, you can whitelist your exceptions via parameter, or add additional ones you deem suspicious for your environment.

Last updated: 2023-01-06

Clone this wiki locally