Skip to content

Conversation

@malfav
Copy link

@malfav malfav commented Nov 10, 2025

procdup.py – Process Instance Plugin (Volatility 3)

procdup.py is a minimal but functional Volatility 3 plugin that inspects and reports on process instances found in a Windows memory image.
Its primary purpose is to provide a clear, compact example of how to implement a Volatility plugin while giving immediate, useful output about process instances (PID, name, parent PID, and a simple status). It is intended as a reliable starting point for development and as a quick sanity-check tool when validating plugin load/execution.

This plugin is not merely a “test stub.” It performs a concrete, observable task: iterating process objects extracted by Volatility and presenting them in a concise TreeGrid report so analysts can both verify plugin behavior and obtain quick process-instance data.


Key Capabilities

Process Instance Inspection

  • Iterates over processes discovered by Volatility (e.g., via windows.pslist).
  • Extracts and reports common process attributes such as:
    • PID (Process ID)
    • Name (Executable name)
    • PPID (Parent Process ID)
    • Status or a short textual note (e.g., Running, Terminated, Plugin verified)
  • Useful for quick validation of process enumeration logic in a new plugin or environment.

Plugin Template

  • Demonstrates minimal, correct plugin structure for Volatility 3:
    • Declares required Windows kernel module via requirements.ModuleRequirement.
    • Specifies _required_framework_version.
    • Implements a _generator (or equivalent) that yields TreeGrid rows.
  • Serves as a lightweight reference implementation for developers building more advanced functionality.

Compact, Human-Readable Output

  • Produces a TreeGrid-style report suitable for quick inspection or automated parsing.
  • The report both confirms successful plugin execution and provides immediate forensic-relevant process information.

# live.py – Volatility 3 Live System Analysis Plugin

`live.py` is a custom plugin for **Volatility 3** designed to extend its capabilities for **real-time forensic data collection and threat hunting** directly on a **live Windows system**, eliminating the need for a full memory dump.

This tool provides an **interactive command-line shell** for dynamic investigation, leveraging system APIs through libraries like `psutil` and `pywin32` to quickly triage and analyze active endpoints.

---

## Key Capabilities

### **Live Analysis Mode**
Performs immediate, low-overhead forensic data collection from an active operating system, bypassing traditional memory dump requirements.

### **Interactive Shell**
Includes an integrated CLI environment offering a suite of commands for efficient, step-by-step investigation via the `LiveShellCommand` interface.

### **Advanced Threat Hunting**
Provides built-in commands for targeted analysis:
- **fileless** – Detects fileless malware and suspicious in-memory activity, focusing on processes such as `powershell.exe`.
- **detect_sandbox** – Identifies virtualized or sandboxed environments by inspecting artifacts, process behavior, and MAC address prefixes.

### **Comprehensive Forensic Data Collection**
Collects essential artifacts and system information for deep analysis:
- **Process and Module Data:** `pslist`, `psscan`, `dlllist`, `handles`, `sids`, `cmdline`
- **Network Activity:** `netscan` for active connections and sockets
- **Persistence & Services:** Analysis of `services`, `drivers`, `registry`, and autorun entries
- **Artifact Analysis:** Extraction of `shimcache`, `prefetch`, `userassist`, and `jumplists`
- **Timeline Generation:** Unified event correlation using `timeliner`

---
# sandbox_detect.py – Virtualization and Sandbox Environment Detection (Volatility 3 Plugin)

`sandbox_detect.py` is a specialized **Volatility 3 plugin** designed for **post-mortem forensic analysis** of **Windows memory dumps**.  
Its primary goal is to detect and score artifacts indicating that the analyzed system was operating within a **Virtual Machine (VM)**, **Sandbox**, or **Malware Analysis Environment**.

This plugin is particularly valuable for investigators who need to determine whether a captured memory sample originated from a **controlled analysis setup** or a **real-world victim system**.

---

## Key Capabilities

### **Multi-Layered Artifact Scanning**
Performs deep inspection across multiple memory and system layers to ensure comprehensive detection:

- **Process Analysis:** Identifies running processes related to virtualization or analysis environments, such as  
  `vmtoolsd.exe`, `vboxservice.exe`, `prl_cc.exe`, `wireshark.exe`, and `ollydbg.exe`.  
- **Driver and Module Checks:** Detects kernel modules and drivers named after virtualization platforms, including  
  `vmmouse.sys`, `vboxguest.sys`, and `vmhgfs.sys`.  
- **Registry and System Keys:** Examines critical registry entries and system identifiers for virtualization traces,  
  such as hardware IDs, BIOS strings, and known VM installation paths.

---

### **Heuristic Scoring System**
Implements a scoring engine that assigns severity levels to each identified artifact.  
Instead of a binary result, the plugin produces a **confidence-based verdict**, such as:

- **HIGH CONFIDENCE – Virtual Machine Detected**  
- **MODERATE CONFIDENCE – Sandbox Environment**  
- **LOW CONFIDENCE – Physical Host**

This scoring model provides analysts with clearer, evidence-weighted conclusions.

---
# sandbox_detect.py – Virtualization and Sandbox Environment Detection (Volatility 3 Plugin)

`sandbox_detect.py` is a specialized **Volatility 3 plugin** designed for **post-mortem forensic analysis** of **Windows memory dumps**.  
Its primary goal is to detect and score artifacts indicating that the analyzed system was operating within a **Virtual Machine (VM)**, **Sandbox**, or **Malware Analysis Environment**.

This plugin is particularly valuable for investigators who need to determine whether a captured memory sample originated from a **controlled analysis setup** or a **real-world victim system**.

---

## Key Capabilities

### **Multi-Layered Artifact Scanning**
Performs deep inspection across multiple memory and system layers to ensure comprehensive detection:

- **Process Analysis:** Identifies running processes related to virtualization or analysis environments, such as  
  `vmtoolsd.exe`, `vboxservice.exe`, `prl_cc.exe`, `wireshark.exe`, and `ollydbg.exe`.  
- **Driver and Module Checks:** Detects kernel modules and drivers named after virtualization platforms, including  
  `vmmouse.sys`, `vboxguest.sys`, and `vmhgfs.sys`.  
- **Registry and System Keys:** Examines critical registry entries and system identifiers for virtualization traces,  
  such as hardware IDs, BIOS strings, and known VM installation paths.

---

### **Heuristic Scoring System**
Implements a scoring engine that assigns severity levels to each identified artifact.  
Instead of a binary result, the plugin produces a **confidence-based verdict**, such as:

- **HIGH CONFIDENCE – Virtual Machine Detected**  
- **MODERATE CONFIDENCE – Sandbox Environment**  
- **LOW CONFIDENCE – Physical Host**

This scoring model provides analysts with clearer, evidence-weighted conclusions.

---
# proccon.py – Process Connectivity & Visualization (Volatility 3 Plugin)

`proccon.py` is a **Volatility 3 plugin** designed to provide **process visualization and relationship mapping** from a **Windows memory dump**.  
While it does not perform direct forensic analysis, it serves as a **critical utility** for post-processing and visualizing process hierarchy data.

The plugin extracts **Parent-Child process relationships** and outputs them as a **Graphviz DOT file**, enabling investigators to generate graphical representations of the system’s process tree at the time of capture.

---

## Key Capabilities

### **Process Tree Extraction**
Efficiently iterates through the complete process list obtained via Volatility’s `windows.pslist` plugin to map:
- **PID** (Process ID) → **PPID** (Parent Process ID)

This provides a foundational dataset for visual process relationship mapping.

---

### **Graphviz DOT Output**
Automatically generates a **structured `.dot` file** compatible with Graphviz visualization tools such as:
- `dot`
- `neato`
- Online renderers and graphing tools

This output can be rendered into **network-style process trees**, allowing investigators to:
- Visualize process spawning chains  
- Detect irregular or unexpected parent-child relationships  
- Identify suspicious execution flows in malware investigations

---

### **Visualization Focus**
The plugin emphasizes **connectivity and hierarchy**, providing a clear visual representation of process structures that supports:
- **Anomaly Detection:** Spot abnormal or hidden parent-child relationships  
- **Malware Analysis:** Map execution chains to trace malicious process origins  
- **System Understanding:** Reveal the operational process tree at the time of memory capture  

---
procdup.py - Volatility 3 Plugin Test Stub
This script appears to be a basic boilerplate or test stub for developing a Volatility 3 plugin. Its purpose is not to perform a specific forensic function but to verify that the plugin framework is correctly configured and that a custom module can be loaded and executed by Volatility 3.

Key Capabilities
Plugin Verification: Serves as a "Hello, World!" for Volatility 3 development. It executes a minimal function (_generator) to confirm that the plugin is properly recognized, loaded, and runnable within the framework.

Minimal Requirements: It only defines the absolute minimum requirements needed for a Windows-based Volatility 3 plugin:

Requires the Windows kernel module (requirements.ModuleRequirement).

Sets the required framework version (_required_framework_version).

Simple Output: The output is a basic TreeGrid report that confirms success, making it ideal for debugging a new Volatility 3 development environment or ensuring the plugin path is set correctly.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant