Memory Analysis With Volatility
Section Introduction
This section introduces Volatility for analyzing memory dumps and locating digital evidence.
What is Volatility?
Volatility is an open-source memory forensics tool designed for incident response and malware analysis. It is built in Python and supports Windows, macOS, and Linux memory dumps. Created by Aaron Walters, it stems from his research in memory forensics.
Key capabilities include:
Enumerating running processes.
Listing active and closed network sessions.
Viewing Internet Explorer browsing history.
Locating and extracting files from memory.
Reading open Notepad contents.
Recovering commands from Windows CMD.
Scanning memory with YARA rules.
Extracting screenshots and clipboard data.
Dumping hashed passwords.
Retrieving SSL keys and certificates.
Volatility Walkthrough
imageinfo
Explanation: Determines the suggested profile (OS, version, architecture) needed for analysis of the memory image.
Example Output:
pslist
Explanation: Lists processes that were running in the memory image, showing IDs, parent IDs, threads, handles, and timestamps.
Example Output:
pstree
Explanation: Displays processes in a hierarchical tree view, making it easier to see parent-child relationships.
Example Output:
psscan
Explanation: Scans memory for process objects, including hidden or terminated processes often used by malware. Compare with pslist to spot discrepancies.
Example Output:
psxview
Explanation: Cross-checks process listings across multiple techniques, showing whether each process appears in expected places. Differences can reveal hidden processes.
Example Output:
procdump
Explanation: Dumps a process executable from memory to disk. Requires specifying the process ID. Useful for further malware analysis.
Example Output:
netscan
Explanation: Identifies network connections (active and closed) at the time of capture. Useful for tracking communication with remote systems.
Example Output:
timeliner
Explanation: Builds a timeline of activity (process creation, file events, etc.) from timestamps in the memory image. Helpful for reconstructing an incident.
Example Output:
iehistory
Explanation: Extracts Internet Explorer browsing history from memory. Shows visited sites and timestamps.
Example Output:
filescan
Explanation: Searches memory for file objects and lists them. Can reveal files that were in use or opened.
Example Output:
cmdline
Explanation: Retrieves the command-line arguments a process was launched with. Often useful for spotting malicious execution parameters.
Example Output:
dumpfiles
Explanation: Extracts files referenced in memory to a specified directory for analysis.
Example Output:
Volatility 3
Volatility 2 was released in 2011 and support ended in August 2021. Volatility 3, released in 2020, is a complete rewrite that improves performance, functionality, and usability.
Volatility 3 Changes
Profiles are no longer required. In Volatility 2, analysts had to run:
and then include --profile=PROFILE in every command. Volatility 3 replaces this with symbol tables, which automatically identify structures in memory images and streamline analysis.
The way plugins are used has also changed. Instead of generic plugin names, Volatility 3 uses OS-specific plugins.
Command Differences
Get process tree
volatility --profile=PROFILE pstree -f file.dmp
python3 vol.py -f file.dmp windows.pstree
List services
volatility --profile=PROFILE svcscan -f file.dmp
python3 vol.py -f file.dmp windows.svcscan
List available registry hives
volatility --profile=Win7SP1x86_23418 -f file.dmp hivelist
python3 vol.py -f file.dmp windows.registry.hivelist
Print cmd commands
volatility --profile=PROFILE cmdline -f file.dmp
python3 vol.py -f file.dmp windows.cmdline
--profileis no longer present in Volatility 3.Generic plugin names are now replaced with OS-specific variants:
pstree→windows.pstree,linux.pstree,mac.pstree.
Analysts must learn different plugin names, but resources like the Volatility Cheat Sheet help with conversion.
Volatility Workbench
Volatility Workbench is a free, open-source GUI variant of Volatility 3 that runs on Windows.
Advantages:
No Python installation required.
No command-line parameters to remember.
Saves platform and process list alongside the image in a
.CFGfile for faster reloads.Easier copy and paste.
Simple saving of dumped data to disk.
Drop-down of available commands with short descriptions.
Command execution is time-stamped.
Using Volatility Workbench
Launch VolatilityWorkbench.exe.
Click Browse Image (top right) and select the memory dump.
Choose Platform (OS) and a command from the drop-downs (top left).
Run the command to view results. Example: executing
windows.pslistreturns process listings immediately.Use Copy (bottom right) to place results on the clipboard, or Save to file to export.
Note: The tool runs on Windows only; it isn’t available natively on Linux.
Last updated