Volatility

How to use the Volatility memory forensics framework to identify potential malicious activity.

Volatility is the world's most widely used framework for extracting digital artifacts from volatile memory (RAM) samples. The extraction techniques are performed completely independent of the system being investigated but offer visibility into the runtime state of the system. The framework is intended to introduce people to the techniques and complexities associated with extracting digital artifacts from volatile memory samples and provide a platform for further work into this exciting area of research.

Tool Name
Version
MITRE ATT&CK Tactic
MITRE ATT&CK Technique

Volatility Plugins

Volatility consists of a number of plugins that can be used to perform various tasks, such as identifying and extracting process data, network connections, and other information that may be relevant to a forensic investigation.

A list of all plugins available in Volatility can be found at the Volatility3 Docs Page. Some examples of plugins included in Volatility include:

  • pstree: Display the process tree for a given memory image.

  • sockscan: Scan for and list open TCP and UDP sockets.

  • dlllist: List the DLLs (dynamic link libraries) loaded by each process.

  • connscan: Scan for and list active TCP connections.

  • netscan: Scan for and list active network connections.

These are just a few examples of the plugins available in Volatility. There are many other plugins available that can be used to extract and analyze different types of forensic data. Refer to the Volatility3 Docs Page. for a complete list of plugins and their descriptions.

Instructions

The below examples were based off of a Windows 10 Memory Image available for download via the NIST CFReDS Portal which was provided from Magnet Forensics.

Memory Image Identification (windows.info)

Show OS & kernel details of the memory sample being analyzed.

Running Processes (pslist)

Lists the processes present in a particular windows memory image. Specific PIDs can be processed via the --pid switch. Additionally, each process can be dumped to disk via the --dump switch.

Running Processes (pstree)

Plugin for listing processes in a tree based on their parent process ID. Specific PIDs can be processed via the --pid switch. Additionally, each process can be dumped to disk via the --dump switch.

Running and Terminated Processes (psscan)

Returns a list of all processes, running and terminated for further analysis.

Installed Services (svcscan)

Returns a list of all installed services from the host system.

Command Line Arguments (cmdline)

Lists process command line arguments.

Loaded DLLs (dlllist)

Displays the DLLs loaded by each process and their respective filepaths.

Scan for Injected Code (malfind)

Lists process memory ranges that potentially contain injected code.

Network Connections (netstat)

Traverses network tracking structures present in a particular windows memory image.

Network Connections (netscan)

Scans for network objects present in a particular windows memory image.

Dump LM/NT Hashes (hashdump)

Dump the LM and NT Hashes for accounts from the memory image.

References

Last updated