← retour aux outils back to tools

# 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/volatility3

## Overview

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.psscan` vs `windows.pslist`: psscan finds processes hidden from the list
- `windows.malfind` is 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.cmdline` to 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.psscan` vs `windows.pslist` : psscan trouve les processus cachés de la liste
- `windows.malfind` est 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.cmdline` pour 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