volatility
Le framework de référence en forensique mémoire. Analyse des dumps RAM pour extraire processus, connexions réseau, modules chargés, ruches de registre, credentials et artefacts de compromission. The leading memory forensics framework. Analyzes RAM dumps to extract processes, network connections, loaded modules, registry hives, credentials, and artifacts of compromise.
↗ https://github.com/volatilityfoundation/volatility3Overview
Volatility is the industry-standard memory forensics framework. Given a memory dump from a Windows, Linux, or macOS system, it extracts running processes, network connections, loaded kernel modules, registry data, file system artifacts, and indicators of compromise. Essential for incident response and malware analysis.
Installation
# Volatility 3 (current version)
git clone https://github.com/volatilityfoundation/volatility3
cd volatility3
pip3 install -r requirements.txt
Or via pip
pip3 install volatility3
Getting a Memory Dump
# Windows: use winpmem or Magnet RAM Capture
# Linux: use LiME kernel module
# insmod lime-5.x.x.ko "path=/tmp/mem.lime format=lime"
# Or use VM snapshot (VMware .vmem, VirtualBox .sav)
Basic Usage
Identify OS profile (Volatility 3 auto-detects)
python3 vol.py -f memory.dmp windows.info
Linux target
python3 vol.py -f memory.dmp linux.pslist
Mac target
python3 vol.py -f memory.dmp mac.pslist
Process Analysis
List running processes (tree view)
python3 vol.py -f memory.dmp windows.pstree
Simple process list
python3 vol.py -f memory.dmp windows.pslist
python3 vol.py -f memory.dmp windows.psscan # scan for EPROCESS structures
python3 vol.py -f memory.dmp windows.cmdline # command line of each process
Find processes with injected code
python3 vol.py -f memory.dmp windows.malfind
Dump a process memory
python3 vol.py -f memory.dmp windows.memmap --pid 1234 --dump
Network Connections
Active network connections
python3 vol.py -f memory.dmp windows.netstat
Historical connections (includes closed)
python3 vol.py -f memory.dmp windows.netscan
# Output example:
# Offset Proto LocalAddr:Port ForeignAddr:Port State PID Process
# 0x... TCP 10.0.0.5:54321 1.2.3.4:443 ESTABLISHED 1234 svchost.exe
Credential Extraction
Extract NTLM hashes from memory (like Mimikatz)
python3 vol.py -f memory.dmp windows.hashdump
Cached domain credentials
python3 vol.py -f memory.dmp windows.cachedump
LSA secrets
python3 vol.py -f memory.dmp windows.lsadump
Registry Analysis
List registry hives
python3 vol.py -f memory.dmp windows.registry.hivelist
Print registry key and values
python3 vol.py -f memory.dmp windows.registry.printkey \
--key "SOFTWARE\Microsoft\Windows\CurrentVersion\Run"
Get user activity
python3 vol.py -f memory.dmp windows.registry.userassist
File System
List files cached in memory
python3 vol.py -f memory.dmp windows.filescan
Dump a specific file
python3 vol.py -f memory.dmp windows.dumpfiles --physaddr 0xADDRESS
# Find and dump a specific file
python3 vol.py -f memory.dmp windows.filescan | grep "suspicious.exe"
python3 vol.py -f memory.dmp windows.dumpfiles --virtaddr 0xADDRESS
Malware Analysis
Find injected code (common in process injection attacks)
python3 vol.py -f memory.dmp windows.malfind
Find DLL injection
python3 vol.py -f memory.dmp windows.dlllist --pid 1234
Check for loaded drivers
python3 vol.py -f memory.dmp windows.driverscan
Check for rootkit-hidden processes
python3 vol.py -f memory.dmp windows.psscan | diff - <(python3 vol.py -f memory.dmp windows.pslist)
Tips
windows.psscanvswindows.pslist: psscan finds processes hidden from the listwindows.malfindis often the fastest way to find injected shellcode- Memory analysis is timestamp-agnostic — can recover artifacts from days ago if memory wasn’t overwritten
- Use
windows.cmdlineto see exactly what commands were executed, including PowerShell
Key Plugins Quick Reference
windows.info OS version, architecture
windows.pslist Running processes
windows.pstree Process tree
windows.psscan Find hidden processes
windows.cmdline Process command lines
windows.netstat Active connections
windows.netscan All connections (incl. closed)
windows.malfind Find injected code
windows.hashdump NTLM hashes
windows.cachedump Cached domain creds
windows.lsadump LSA secrets
windows.dlllist Loaded DLLs per process
windows.filescan Cached file objects
windows.dumpfiles Extract files from memory
windows.registry.hivelist Registry hives
Vue d’ensemble
Volatility est le framework standard de l’industrie pour la forensique mémoire. À partir d’un dump mémoire d’un système Windows, Linux ou macOS, il extrait les processus en cours d’exécution, les connexions réseau, les modules kernel chargés, les données de registre, les artefacts de système de fichiers, et les indicateurs de compromission. Indispensable pour la réponse à incident et l’analyse de malware.
Installation
# Volatility 3 (version actuelle)
git clone https://github.com/volatilityfoundation/volatility3
cd volatility3
pip3 install -r requirements.txt
Ou via pip
pip3 install volatility3
Obtenir un dump mémoire
# Windows : utiliser winpmem ou Magnet RAM Capture
# Linux : utiliser le module kernel LiME
# insmod lime-5.x.x.ko "path=/tmp/mem.lime format=lime"
# Ou utiliser un snapshot de VM (VMware .vmem, VirtualBox .sav)
Utilisation de base
# Identifier le profil OS (Volatility 3 auto-détecte)
python3 vol.py -f memory.dmp windows.info
# Cible Linux
python3 vol.py -f memory.dmp linux.pslist
# Cible Mac
python3 vol.py -f memory.dmp mac.pslist
Analyse de processus
# Lister les processus en cours d'exécution (vue en arbre)
python3 vol.py -f memory.dmp windows.pstree
# Liste simple des processus
python3 vol.py -f memory.dmp windows.pslist
# Scanner les structures EPROCESS
python3 vol.py -f memory.dmp windows.psscan
# Ligne de commande de chaque processus
python3 vol.py -f memory.dmp windows.cmdline
# Trouver des processus avec du code injecté
python3 vol.py -f memory.dmp windows.malfind
# Dumper la mémoire d'un processus
python3 vol.py -f memory.dmp windows.memmap --pid 1234 --dump
Connexions réseau
# Connexions réseau actives
python3 vol.py -f memory.dmp windows.netstat
# Connexions historiques (inclut celles fermées)
python3 vol.py -f memory.dmp windows.netscan
# Exemple de sortie :
# Offset Proto LocalAddr:Port ForeignAddr:Port State PID Process
# 0x... TCP 10.0.0.5:54321 1.2.3.4:443 ESTABLISHED 1234 svchost.exe
Extraction de credentials
# Extraire des hashs NTLM depuis la mémoire (comme Mimikatz)
python3 vol.py -f memory.dmp windows.hashdump
# Credentials de domaine en cache
python3 vol.py -f memory.dmp windows.cachedump
# Secrets LSA
python3 vol.py -f memory.dmp windows.lsadump
Analyse de registre
# Lister les ruches de registre
python3 vol.py -f memory.dmp windows.registry.hivelist
# Afficher une clé de registre et ses valeurs
python3 vol.py -f memory.dmp windows.registry.printkey \
--key "SOFTWARE\Microsoft\Windows\CurrentVersion\Run"
# Obtenir l'activité utilisateur
python3 vol.py -f memory.dmp windows.registry.userassist
Système de fichiers
# Lister les fichiers mis en cache dans la mémoire
python3 vol.py -f memory.dmp windows.filescan
# Dumper un fichier spécifique
python3 vol.py -f memory.dmp windows.dumpfiles --physaddr 0xADDRESS
# Trouver et dumper un fichier spécifique
python3 vol.py -f memory.dmp windows.filescan | grep "suspicious.exe"
python3 vol.py -f memory.dmp windows.dumpfiles --virtaddr 0xADDRESS
Analyse de malware
# Trouver du code injecté (courant dans les attaques par injection de processus)
python3 vol.py -f memory.dmp windows.malfind
# Trouver de l'injection de DLL
python3 vol.py -f memory.dmp windows.dlllist --pid 1234
# Vérifier les drivers chargés
python3 vol.py -f memory.dmp windows.driverscan
# Vérifier les processus cachés par un rootkit
python3 vol.py -f memory.dmp windows.psscan | diff - <(python3 vol.py -f memory.dmp windows.pslist)
Conseils
windows.psscanvswindows.pslist: psscan trouve les processus cachés de la listewindows.malfindest souvent le moyen le plus rapide de trouver du shellcode injecté- L’analyse mémoire est indépendante du temps : elle peut récupérer des artefacts vieux de plusieurs jours si la mémoire n’a pas été écrasée
- Utiliser
windows.cmdlinepour voir exactement quelles commandes ont été exécutées, y compris PowerShell
Key Plugins Quick Reference
windows.info OS version, architecture
windows.pslist Running processes
windows.pstree Process tree
windows.psscan Find hidden processes
windows.cmdline Process command lines
windows.netstat Active connections
windows.netscan All connections (incl. closed)
windows.malfind Find injected code
windows.hashdump NTLM hashes
windows.cachedump Cached domain creds
windows.lsadump LSA secrets
windows.dlllist Loaded DLLs per process
windows.filescan Cached file objects
windows.dumpfiles Extract files from memory
windows.registry.hivelist Registry hives