Windows

windows

Analyse du dump de la mémoire

Les données de traitement d’un ordinateur sont toujours stockées dans la mémoire RAM (Random Access Memory) car elle possède un temps d’accès beaucoup plus faible que la mémoire disque.

Ces données permettent de retrouver des informations concernant:

La première étape pour pouvoir analyser un dump mémoire est de récupérer les informations de l’image qui permettront à Volatility de correctement parser les données, c’est-à-dire déterminer son profile.

Parser les données, ça veut dire les lire et les interpréter afin de comprendre ce qu’elles signifient.

Pour cela, nous allons utiliser l’option ImageInfo de Volatility sur notre dump mémoire avec la commande volatility -f memdump.mem imageinfo

Cette option vous permettra d’obtenir les informations de profil de votre image.

1 étape : récupérer la liste des processus

L’OS est responsable de la gestion, de la suspension et de la création de processus, c’est-à-dire des instances d’un programme. Lorsqu’un programme s’exécute, un nouveau processus est créé et associé à son propre ensemble d’attributs, y compris un ID de processus unique (PID) propre à chacun, et un espace d’adressage.

L’espace mémoire d’un processus devient un conteneur pour le code de l’application, les bibliothèques partagées, les données dynamiques et la pile d’exécution.

PSLIST nous permet d’afficher la liste des processus en cours de fonctionnement lors du dump.

L’option pstree peut s’avérer très utile car elle permettra d’identifier les processus parents d’un processus en particulier. Ainsi, vous pourrez noter les structures suspectes. Par exemple, il n’est pas normal qu’un CMD soit un processus fils d’Internet Explorer ! Une autre commande qui peut être utilisée pour lister les processus est psxview. Cette commande permet d’afficher les processus cachés.

Si un processus est caché, la colonne pslist, psscan sera marquée comme False. La commande malfind peut être utilisée pour détecter de l’injection de code malveillant. Pour cela, utilisez cette commande. L’injection de code permet de dissimuler un processus malveillant dans un processus légitime. Ces techniques sont largement utilisées par les malwares pour se dissimuler et contourner les solutions de sécurité sur le poste. l existe une multitude de techniques d’injection, telles que la technique « Process Hollowing » ou encore la technique « Process Doppelganging ».

Lors de l’analyse mémoire, il sera possible de dumper un processus en particulier pour l’analyser en détail. Il est également possible de réaliser un dump mémoire d’un processus en cours d’exécution. Ce dump est un instantané d’un processus en cours d’exécution et contient les modules chargés pour l’application à un moment donné.

ex: volatility -f memdump.mem -profile=WIn procdump -D dir/ -p

Listez les mutex avec mutantscan Il est également possible de lister les mutex (Mutual Exclusion) avec la commande mutantscan. Un mutex est une primitive de synchronisation. C’est un outil utilisé en programmation informatique pour éviter que des ressources partagées d’un système ne soient utilisées en même temps.

Les mutex peuvent être utilisés par des logiciels malveillants pour ne pas réinfecter une même machine. Ce type d’information permet également d’identifier un malware en particulier, c’est un indicateur de compromission.

La commande mutantscan permet de scanner les mutex dans la mémoire.

Extraction des services La commande svcscan permet de lister les services sur la machine en cours d’investigation.

2 étape : Listez les DLL d’un processus

Les DLL, pour Dynamic Link Library, sont les librairies dans Windows. Ce sont des fonctions préalablement codées et disponibles sur le système. Pour éviter de recoder certaines fonctions, l’API Windows fournit une liste de DLL permettant de manipuler des données, de faire des connexions réseau ou encore d’écrire des fichiers.

Via l’analyse mémoire, il sera possible de lister les DLL utilisées par un processus permettant de déduire son fonctionnement sur le système.

Avec Volatility, il est possible d’extraire les DLL utilisées pour un processus donné, avec l’option dlllist

3 étape : Analysez le registre Le registre contient divers paramètres et configurations pour le système d’exploitation Windows. En tant que composant principal de Windows, il est accédé en permanence pendant le temps d’exécution. Ainsi, il est logique que le système place en mémoire tout ou partie des fichiers du registre.

but de l’analyse du registre:

Avec ces informations et l’option hashdump, il sera possible de dumper les hash des mots de passe des comptes Windows.

4 étape: Analysez les connexions réseaux

L’analyse mémoire du réseau permettra de recouvrer des informations telle que des connexions d’IP distantes, les ports de connexion et même certaines données échangées.

Les options connections, sockscan et socket fonctionnent uniquement sur des systèmes antérieurs à Windows 7. Toutefois, il est possible de lister les connexions réseaux actives sur les systèmes plus récents, avec l’option netscan.

========================================================== Les différents fichiers de mémoire

Hiberfil.sys Hiberfil.sys est le fichier utilisé par défaut par Windows pour enregistrer l’état de la machine dans le cadre du processus d’hibernation. Ce processus permet de restaurer l’état de la machine, c’est-à-dire sa mémoire vive, au moment du démarrage, pour retrouver l’état lors de la mise hors tension. Le fichier hiberfil.sys est par défaut compressé ; pour pouvoir l’analyser avec Volatility, il faudra d’abord utiliser l’option imagecopy pour décompresser l’image. ex: volatility -f hyberfil.sys –profil=Win imagecopy -O hiberfil.dmp

Pagefile.sys La pagination est un concept qui permet d’étendre la mémoire RAM disponible en stockant dans un fichier des éléments de la RAM qui ne sont pas utilisés. Windows utilise le fichier système Pagefile.sys pour stocker ces informations, qui peuvent également être exploitées durant l’investigation.

Bien que Windows prenne en charge jusqu’à 16 fichiers de pagination, en pratique un seul est utilisé. Ce fichier, stocké dans « %SystemDrive%\pagefile.sys », est un fichier système caché.

Pagefile.sys ne peut pas être parsé par Volatility. Toutefois, il est possible d’extraire des informations avec la commande strings