🧩Plugins

🎈 Syntaxe

Avec Volatility3, vous devez maintenant préciser le système d'exploitation avant de choisir le plugin. Par exemple, utilisez windows.info pour Windows, linux.info pour Linux et mac.info pour macOS. Cette modification est due au fait qu'il n'y a plus de profils génériques pour différencier les systèmes d'exploitation pour les plugins. Chaque système d'exploitation a ses propres structures et opérations de mémoire.

Exemple :

python3 volatility -f <chemin_vers_image_mémoire> <système d'exploitation>.<module>

circle-info

Volatility 3 abandonne les profils manuels au profit d'une détection automatique par tables de symboles, imposant une nouvelle syntaxe où chaque plugin doit désormais être précédé du nom de l'OS (ex: windows.pslist).

Commande de base

Voici un tableau récapitulatif structuré des commandes Volatility 2 pour tes révisions. Ce tableau est essentiel pour l'examen BTL1 afin d'identifier rapidement quel plugin utiliser selon la situation.

📊 Liste des Commandes Volatility (Aide-mémoire)

Toutes les commandes commencent par : volatility -f memdump.mem --profile=PROFIL

Plugin

Utilité / Action

Pourquoi l'utiliser ?

imageinfo

Détermine le profil suggéré (OS, version, architecture).

Étape 1 obligatoire pour pouvoir lancer les autres commandes.

pslist

Affiche la liste des processus actifs.

Voir quels programmes tournaient au moment du dump.

pstree

Affiche l'arbre des processus (hiérarchie parent/enfant).

Identifier un processus suspect lancé par un parent inhabituel (ex: cmd.exe lancé par notepad.exe).

psscan

Scanne les processus, y compris ceux supprimés ou cachés.

Détecter les malwares qui tentent de se cacher de la liste standard.

psxview

Compare pslist et psscan dans un seul tableau.

Identifier rapidement les processus cachés (ceux qui ont "False" dans la colonne pslist).

procdump

Extrait un processus spécifique (-p PID) en fichier exécutable.

Permet d'analyser le malware extrait dans un bac à sable (sandbox).

netscan

Identifie les connexions réseau (actives ou fermées).

Trouver l'adresse IP d'un serveur C2 (Command & Control).

cmdline

Affiche les arguments de la ligne de commande pour un PID.

Voir les commandes exactes tapées (ex: powershell -enc...).

filescan

Liste tous les fichiers ouverts ou présents en mémoire.

Trouver des documents sensibles ou des DLL malveillantes chargées.

dumpfiles

Extrait un fichier depuis la mémoire vers un dossier choisi.

Récupérer un document ou un fichier suspect trouvé avec filescan.

iehistory

Récupère l'historique de navigation Internet Explorer.

Retracer l'activité web du suspect (téléchargements, recherches).

timeliner

Crée une chronologie (timeline) des événements.

Reconstruire l'ordre des actions survenues sur la machine.


💡 Rappels de syntaxe :

  • Extraire un processus spécifique :

    volatility -f memdump.mem --profile=PROFIL procdump -p 1234 --dump-dir=./

  • Voir la commande derrière un processus :

    volatility -f memdump.mem --profile=PROFIL cmdline -p 1234

  • Comparer les processus :

    Si un processus apparaît dans psscan mais pas dans pslist, il est extrêmement suspect (tentative de dissimulation).

🕵️‍♂️ Plugins de Volatility

Volatility offre un large éventail de plugins puissants conçus pour explorer et analyser les images de mémoire. Ces plugins fournissent des informations précieuses sur les processus en cours d'exécution, les connexions réseau, les fichiers ouverts, les registres système et bien plus encore. Voici quelques-uns des plugins les plus couramment utilisés :

🔄 Processus

  • pslist : Affiche une liste détaillée de tous les processus actifs, incluant l'ID du processus, le nom et le PID parent.

  • pstree : Présente les processus sous forme d'arborescence, illustrant les relations hiérarchiques entre eux.

  • psscan : Analyse la mémoire pour détecter les processus masqués ou détruits en recherchant les structures de processus.

📁 Fichiers

  • filescan : Recherche les objets de fichier en mémoire et affiche les détails tels que le nom du fichier et l'adresse mémoire.

  • handles : Affiche les handles ouverts par chaque processus, aidant à comprendre les fichiers actuellement utilisés.

🌐Réseau

  • netscan : Analyse la mémoire pour détecter les sockets réseau en écoute ou en attente de connexion.

  • netstat : Identifie les connexions réseau présentes au moment de l'extraction sur la machine hôte, tentant d'identifier toutes les structures de mémoire associées aux connexions réseau.

circle-info

Dans certains cas, la commande netstat peut être instable, surtout avec les anciennes versions de Windows. Pour contourner ce problème, d'autres outils comme Bulk_extractor peuvent être utilisés pour extraire un fichier PCAP à partir du fichier mémoire, offrant ainsi une alternative pour analyser les connexions réseau.

  • connections : Affiche les connexions réseau actives, y compris les adresses IP locales et distantes, ainsi que les ports utilisés.

📚 Analyse Avancée

  • malfind : Identifie les processus injectés et fournit une vue hexadécimale, ASCII et de désassemblage de la zone infectée.

  • yarascan : Compare le fichier mémoire avec des règles YARA pour détecter des motifs associés à des malwares ou à des comportements suspects.

🖼️ Identification de l'Image

  • imageinfo : Fournit des informations de base sur l'image mémoire, telles que le système d'exploitation, la version du noyau, et d'autres détails cruciaux pour guider l'analyse ultérieure.

🗝️ Registre

  • hivelist : Liste les hôtes de registre actuellement chargés en mémoire.

  • printkey : Affiche les sous-clés et les valeurs d'une clé de registre spécifique.

  • hivedump : Extrait un hôte de registre spécifique en mémoire et l'enregistre dans un fichier pour une analyse ultérieure.

Ces plug-ins offrent une gamme variée d'outils pour explorer et analyser les images de mémoire, aidant ainsi à la détection des malwares, à l'analyse des processus et à la compréhension des activités système.

🕵️‍♂️ Analyse Avancée de la Mémoire

La forensique de mémoire avancée peut devenir confuse lorsque l'on commence à parler des objets système et de la manière dont les logiciels malveillants interagissent directement avec le système, surtout si vous n'avez pas d'expérience préalable dans la chasse à certaines des techniques utilisées telles que l'accrochage et la manipulation des pilotes. Lorsque vous faites face à un adversaire avancé, vous pouvez rencontrer des logiciels malveillants, la plupart du temps des rootkits, qui emploieront des mesures d'évasion très astucieuses nécessitant à l'analyste de plonger dans les pilotes, les mutex et les fonctions accrochées. Plusieurs modules peuvent nous aider dans ce voyage pour découvrir davantage de logiciels malveillants cachés dans la mémoire.

🔗 Accrochage (Hooking)

L'accrochage est une technique utilisée par les logiciels malveillants pour intercepter et modifier le comportement normal des fonctions système et des appels système. Voici quelques types courants d'accrochage :

🖥️ SSDT Hooks

Les SSDT Hooks (System Service Descriptor Table) consistent à modifier les entrées de la table des descripteurs de services système. Cette table est utilisée par le noyau Windows pour accéder aux fonctions du système. En accrochant une entrée de cette table, un logiciel malveillant peut rediriger les appels système vers son propre code, lui permettant ainsi de contrôler le comportement du système.

🔄 IRP Hooks

Les IRP Hooks (I/O Request Packet) impliquent la manipulation des paquets de requêtes d'entrée/sortie du système. Les pilotes de périphériques Windows utilisent les IRP pour communiquer avec les périphériques matériels. En accrochant les IRP, un logiciel malveillant peut modifier les opérations d'entrée/sortie normales du système, ce qui peut être utilisé pour cacher des activités malveillantes ou pour intercepter des données sensibles.

📚 IAT Hooks

Les IAT Hooks (Import Address Table) consistent à modifier la table d'adresses d'importation utilisée par les programmes pour localiser les fonctions des bibliothèques partagées (DLL). En accrochant la table d'adresses d'importation d'un processus, un logiciel malveillant peut rediriger les appels de fonction vers son propre code, ce qui lui permet d'intercepter ou de modifier le comportement des programmes en cours d'exécution.

🍴 EAT Hooks

Les EAT Hooks (Export Address Table) sont similaires aux IAT Hooks, mais ils impliquent la modification de la table d'adresses d'exportation, qui répertorie les fonctions exportées par une DLL. En accrochant la table d'adresses d'exportation d'une DLL, un logiciel malveillant peut remplacer les fonctions normales par ses propres fonctions malveillantes, ce qui peut entraîner un comportement indésirable ou dangereux du système.

🍕 Inline Hooks

Les Inline Hooks consistent à remplacer directement le code d'une fonction par un code malveillant. Plutôt que de modifier une table ou une structure de données, un logiciel malveillant insère son propre code directement dans le flux d'exécution d'une fonction, ce qui lui permet d'intercepter et de modifier le comportement de la fonction sans laisser de traces dans les structures de données du système.

🛡️Contre-mesures et Plugins Complémentaires

Pour contrer les techniques d'accrochage utilisées par les logiciels malveillants, plusieurs plugins complémentaires peuvent être utilisés. Voici un résumé des principaux plugins et de leurs fonctions :

🖥️ Plugin SSDTscan

  • Fonction : Analyse la table des descripteurs de services système (SSDT) à la recherche de modifications suspectes.

  • Avantages : Détecte les altérations de la SSDT, aidant ainsi à localiser les logiciels malveillants qui ont compromis le système.

🚫Plugin DriverUnload

  • Fonction : Surveille les déchargements de pilotes de périphériques du système.

  • Avantages : Permet de détecter les activités malveillantes en surveillant les déchargements de pilotes suspects.

🔍 Plugin InlineScan

  • Fonction : Recherche les modifications du code en mémoire, y compris les altérations introduites par des techniques d'accrochage en ligne.

  • Avantages : Aide à détecter les tentatives d'accrochage et à prévenir les attaques malveillantes en identifiant les altérations du code dans les fonctions système et les DLL.

📚 Plugin IATScan

  • Fonction : Détecte les altérations de la table d'adresses d'importation (IAT) dans les processus en cours d'exécution.

  • Avantages : Repère les tentatives d'accrochage et les activités malveillantes associées en surveillant les changements dans les adresses des fonctions importées par les programmes.

🔒Plugin Memory Integrity Checker

  • Fonction : Surveille l'intégrité de la mémoire système en détectant les modifications suspectes dans les structures de données critiques.

  • Avantages : Identifie et neutralise les tentatives d'accrochage et d'autres attaques malveillantes en détectant les altérations de structures clés telles que les tables des descripteurs de services système (SSDT), les tables d'adresses d'importation (IAT) et les tables d'adresses d'exportation (EAT).

Last updated