GNU/Linux >> Tutoriels Linux >  >> Linux

Effectuez des analyses de mémoire Linux avec cet outil open source

Le système d'exploitation et les applications d'un ordinateur utilisent la mémoire principale (ou RAM) pour effectuer diverses tâches. Cette mémoire volatile, contenant une mine d'informations sur les applications en cours d'exécution, les connexions réseau, les modules du noyau, les fichiers ouverts et à peu près tout le reste, est effacée à chaque redémarrage de l'ordinateur.

Plus de ressources Linux

  • Aide-mémoire des commandes Linux
  • Aide-mémoire des commandes Linux avancées
  • Cours en ligne gratuit :Présentation technique de RHEL
  • Aide-mémoire sur le réseau Linux
  • Aide-mémoire SELinux
  • Aide-mémoire sur les commandes courantes de Linux
  • Que sont les conteneurs Linux ?
  • Nos derniers articles Linux

La criminalistique de la mémoire est un moyen de trouver et d'extraire ces précieuses informations de la mémoire. Volatility est un outil open source qui utilise des plugins pour traiter ce type d'informations. Cependant, il y a un problème :avant de pouvoir traiter ces informations, vous devez vider la mémoire physique dans un fichier, et Volatility n'a pas cette capacité.

Par conséquent, cet article comporte deux parties :

  • La première partie traite de l'acquisition de la mémoire physique et de son vidage dans un fichier.
  • La deuxième partie utilise Volatility pour lire et traiter les informations de ce vidage mémoire.

J'ai utilisé le système de test suivant pour ce tutoriel, mais il fonctionnera sur n'importe quelle distribution Linux :

$ cat /etc/redhat-release 
Red Hat Enterprise Linux version 8.3 (Ootpa)
$
$ uname -r
4.18.0-240.el8.x86_64
$

Avertissement : La partie 1 implique la compilation et le chargement d'un module noyau. Ne vous inquiétez pas; ce n'est pas aussi difficile qu'il y paraît. Quelques lignes directrices :

  • Suivez les étapes.
  • N'essayez aucune de ces étapes sur un système de production ou sur votre ordinateur principal.
  • Utilisez toujours une machine virtuelle (VM) de test pour essayer les choses jusqu'à ce que vous soyez à l'aise avec les outils et que vous compreniez leur fonctionnement.

Installer les packages requis

Avant de commencer, installez les outils requis. Si vous utilisez une distribution basée sur Debian, utilisez l'équivalent apt-get commandes. La plupart de ces packages fournissent les informations et les outils nécessaires au noyau pour compiler le code :

$ yum install kernel-headers kernel-devel gcc elfutils-libelf-devel make git libdwarf-tools python2-devel.x86_64-y 

Partie 1 :Utiliser LiME pour acquérir de la mémoire et la vider dans un fichier

Avant de pouvoir commencer à analyser la mémoire, vous avez besoin d'un vidage mémoire à votre disposition. Dans un événement médico-légal réel, cela pourrait provenir d'un système compromis ou piraté. Ces informations sont souvent collectées et stockées pour analyser comment l'intrusion s'est produite et son impact. Étant donné que vous n'avez probablement pas de vidage de mémoire disponible, vous pouvez effectuer un vidage de mémoire de votre machine virtuelle de test et l'utiliser pour effectuer des analyses de mémoire.

Linux Memory Extractor (LiME) est un outil populaire pour acquérir de la mémoire sur un système Linux. Obtenez LiME avec :

$ git clone https://github.com/504ensicsLabs/LiME.git
$
$ cd LiME/src/
$
$ ls
deflate .c  disk.c  hash.c  lime.h  main.c  Makefile  Makefile.sample  tcp.c
$

Créer le module du noyau LiME

Exécutez le make commande à l'intérieur du src dossier. Cela crée un module de noyau avec une extension .ko. Idéalement, le lime.ko le fichier sera renommé au format lime-<your-kernel-version>.ko à la fin de make :

$ make
make -C /lib/modules/4.18.0-240.el8.x86_64/build M="/root/LiME/src" modules
make[1] :Entrer dans le répertoire '/usr/src/kernels/4.18.0-240.el8.x86_64'

< >

make[1] :Départ du répertoire '/usr/ src/kernels/4.18.0-240.el8.x86_64'
strip --strip-unneeded lime.ko
mv lime.ko lime-4.18.0-240.el8.x86_64.ko
$
$
$ ls -l lime-4.18.0-240.el8.x86_64.ko
-rw-r--r--. 1 racine racine 25696 17 avril 14:45 lime-4.18.0-240.el8.x86_64.ko
$
$ file lime-4.18.0-240.el8.x86_64.ko
lime-4.18.0-240.el8.x86_64.ko :ELF 64 bits LSB déplaçable, x86-64, version 1 (SYSV), BuildID[sha1]=1d0b5cf932389000d960a7e6b57c428b8e46c9cf, non supprimé
$

Charger le module du noyau LiME

Il est maintenant temps de charger le module du noyau pour acquérir la mémoire système. Le insmod la commande aide à charger le module du noyau ; une fois chargé, le module lit la mémoire primaire (RAM) de votre système et vide le contenu de la mémoire dans le fichier fourni dans le path répertoire sur la ligne de commande. Un autre paramètre important est le format; conserver le format lime , comme indiqué ci-dessous. Après avoir inséré le module du noyau, vérifiez qu'il a été chargé à l'aide de lsmod commande :

$ lsmod  | grep lime
$
$ insmod ./lime-4.18.0-240.el8.x86_64.ko "path=../RHEL8.3_64bit.mem format=lime"
$
$ lsmod  | grep citron vert
citron vert                   16384  0
$

Vous devriez voir que le fichier donné au path La commande a été créée et la taille du fichier est (sans surprise) la même que la taille de la mémoire physique (RAM) de votre système. Une fois que vous avez le vidage de la mémoire, vous pouvez supprimer le module du noyau en utilisant le rmmod commande :

$ 
$ ls -l ~/LiME/RHEL8.3_64bit.mem
-r--r--r--. 1 racine racine 4294544480 17 avril 14:47 /root/LiME/RHEL8.3_64bit.mem
$
$ du -sh ~/LiME/RHEL8.3_64bit.mem
4.0G    /root/ Lime / RHEL8.3_64BIT.MEM
$
$ free -m
TAX TOTAL utilisé Buff / CACHE APPLIQUÉ
MEM:3736 220 366 8 3149 3259
Swap:4059           8        4051
$
$ rmmod citron vert
$
$ lsmod  | grep lime
$

Qu'y a-t-il dans le vidage mémoire ?

Ce fichier de vidage n'est que des données brutes, comme vous pouvez le voir en utilisant le file commande ci-dessous. Vous ne pouvez pas en tirer beaucoup de sens manuellement; oui, il y a des chaînes ASCII quelque part, mais vous ne pouvez pas ouvrir le fichier dans un éditeur et le lire. La sortie hexdump montre que les premiers octets sont EmiL; c'est parce que le format de votre requête était "lime" dans la commande ci-dessus :

$ fichier ~/LiME/RHEL8.3_64bit.mem
/root/LiME/RHEL8.3_64bit.mem :données
$


$ hexdump - C ~/LiME/RHEL8.3_64bit.mem | tête
00000000  45 4d 69 4c 01 00 00 00  00 10 00 00 00 00 00 00  |EMiL............|
00000010  ff fb 09 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
00000020  b8 fe 4c cd 21 44 00 32  20 00 00 2a 2a 2a 2a 2a  |.. L.!D.2 ..*****|
00000030  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 2a 2a 2a  |**************** **|
00000040  2a 2a 2a 2a 2a 2a 2a 2a  2a 2a 2a 2a 2a 20 00 20  |**************** . |
00000050  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00000080 00 00 00 00 00 00 00 00  00 00 00 00 70 78 65 6c  |............pxel|
00000090  69 6e 75 78 2e 30 00 00  00 00 00 00 00 00 00 00  |inux.0..........|
000000a0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |........... .....|
$

Partie 2 :Obtenez Volatility et utilisez-le pour analyser votre vidage mémoire

Maintenant que vous avez un exemple de vidage mémoire à analyser, obtenez le logiciel Volatility avec la commande ci-dessous. Volatility a été réécrit en Python 3, mais ce didacticiel utilise le package Volatility d'origine, qui utilise Python 2. Si vous souhaitez expérimenter Volatility 3, téléchargez-le à partir du dépôt Git approprié et utilisez Python 3 au lieu de Python 2 dans les commandes suivantes. :

$ git clone https://github.com/volatilityfoundation/volatility.git
$
$ cd volatilité/
$
$ ls
AUTHORS.txt contrib      LEGAL.txt    Makefile     PKG-INFO     pyinstaller.spec  resources  tools       vol.py
CHANGELOG.txt  CREDITS.txt  LICENSE.txt  MANIFEST.in  pyinstaller  README.txt        setup.py   volatilité
$

Volatility utilise deux bibliothèques Python pour certaines fonctionnalités, veuillez donc les installer à l'aide des commandes suivantes. Sinon, vous risquez de rencontrer des erreurs d'importation lorsque vous exécutez l'outil Volatilité ; vous pouvez les ignorer à moins que vous n'exécutiez un plugin qui a besoin de ces bibliothèques ; dans ce cas, l'outil affichera une erreur :

$ pip2 install pycrypto
$ pip2 install distorm3

Liste des profils Linux de Volatility

La première commande Volatility que vous voudrez exécuter répertorie les profils Linux disponibles. Le principal point d'entrée pour exécuter toutes les commandes Volatility est le vol.py scénario. Invoquez-le à l'aide de l'interpréteur Python 2 et fournissez le --info option. Pour affiner la sortie, recherchez les chaînes commençant par Linux. Comme vous pouvez le constater, peu de profils Linux sont répertoriés :

$ python2 vol.py --info  | grep ^Linux
Volatility Foundation Volatility Framework 2.6.1
LinuxAMD64PagedMemory          - Espace d'adressage AMD 64 bits spécifique à Linux.
$

Créez votre propre profil Linux

Les distributions Linux sont variées et conçues pour diverses architectures. C'est pourquoi les profils sont essentiels - Volatility doit connaître le système et l'architecture à partir desquels le vidage de la mémoire a été acquis avant d'extraire des informations. Il existe des commandes de volatilité pour trouver ces informations ; cependant, cette méthode prend du temps. Pour accélérer les choses, créez un profil Linux personnalisé à l'aide des commandes suivantes.

Déplacez-vous vers tools/linux répertoire dans le référentiel Volatility et exécutez le make commande :

$ cd tools/linux/
$
$ pwd
/root/volatility/tools/linux
$
$ ls
kcore  Makefile  Makefile .enterprise  module.c
$
$ make
make -C //lib/modules/4.18.0-240.el8.x86_64/build CONFIG_DEBUG_INFO=y M="/root/volatility /tools/linux" modules
make[1] :Entrer dans le répertoire '/usr/src/kernels/4.18.0-240.el8.x86_64'
< >
make[ 1] :Départ du répertoire '/usr/src/kernels/4.18.0-240.el8.x86_64'
$

Vous devriez voir un nouveau module.dwarf dossier. Vous avez également besoin du System.map fichier de /boot répertoire, car il contient tous les symboles liés au noyau en cours d'exécution :

$ ls
kcore  Makefile  Makefile.enterprise  module.c  module.dwarf
$
$ ls -l module.dwarf
-rw-r--r--. 1 racine racine 3987904 17 avril 15:17 module.dwarf
$
$ ls -l /boot/System.map-4.18.0-240.el8.x86_64
-rw--- ----. 1 racine racine 4032815 23 septembre 2020 /boot/System.map-4.18.0-240.el8.x86_64
$
$

Pour créer un profil personnalisé, revenez au répertoire Volatility et exécutez la commande ci-dessous. Le premier argument fournit un .zip personnalisé avec un nom de fichier de votre choix. J'ai utilisé les versions du système d'exploitation et du noyau dans le nom. Le prochain argument est le module.dwarf fichier créé ci-dessus, et l'argument final est le System.map fichier de /boot répertoire :

$ 
$ cd volatilité/
$
$ zip volatilité/plugins/overlays/linux/Redhat8.3_4.18.0-240.zip tools/linux/module.dwarf /boot/ System.map-4.18.0-240.el8.x86_64
  ajout :tools/linux/module.dwarf (dégonflé à 91 %)
  ajout :boot/System.map-4.18.0-240.el8 .x86_64 (dégonflé à 79 %)
$

Votre profil personnalisé est maintenant prêt, alors vérifiez que le fichier .zip a été créé à l'emplacement indiqué ci-dessus. Si vous voulez savoir si Volatility détecte ce profil personnalisé, exécutez le --info commander à nouveau. Cette fois, vous devriez voir le nouveau profil listé ci-dessous :

$ 
$ ls -l volatilité/plugins/overlays/linux/Redhat8.3_4.18.0-240.zip
-rw-r--r--. 1 racine racine 1190360 17 avril 15:20 volatilité/plugins/overlays/linux/Redhat8.3_4.18.0-240.zip
$
$
$ python2 vol.py --info  | grep Redhat
Framework de volatilité Volatility Foundation 2.6.1
LinuxRedhat8_3_4_18_0-240x64 - Un profil pour Linux Redhat8.3_4.18.0-240 x64
$
$

Commencer à utiliser la volatilité

Vous êtes maintenant prêt à faire de l'investigation de la mémoire. N'oubliez pas que Volatility est composé de plugins personnalisés que vous pouvez exécuter sur un vidage de mémoire pour obtenir des informations. Le format général de la commande est :

python2 vol.py -f <memory-dump-file-taken-by-Lime> <plugin-name> --profile=<name-of-our-custom-profile> 

Armé de ces informations, exécutez le linux_banner plugin pour voir si vous pouvez identifier les informations de distribution correctes à partir du vidage mémoire :

$ python2 vol.py -f ~/LiME/RHEL8.3_64bit.mem linux_banner --profile=LinuxRedhat8_3_4_18_0-240x64
Volatility Foundation Volatility Framework 2.6.1
Linux version 4.18.0-240. el8.x86_64 ([email protected]) (gcc version 8.3.1 20191121 (Red Hat 8.3.1-5) (GCC)) #1 SMP Wed Sep 23 05:13:10 EDT 2020
$

Rechercher des plugins Linux

Cela a bien fonctionné, alors maintenant vous êtes probablement curieux de savoir comment trouver tous les noms de tous les plugins Linux. Il existe une astuce simple :exécutez le --info commande et grep pour linux_ corde. Il existe une variété de plugins disponibles pour différentes utilisations. Voici une liste partielle :

$ python2 vol.py --info  | grep linux_
Volatility Foundation Volatility Framework 2.6.1
linux_apihooks             - Vérifie les apihooks de l'espace utilisateur
linux_arp                  - Imprime la table ARP
linux_aslr_shift          - Détecte automatiquement /> br />< >

linux_banner              - Imprime les informations de la bannière Linux
linux_vma_cache            - Rassemble les VMA à partir du cache vm_area_struct
linux_volshell            - Shell dans l'image mémoire
linux_yarascan             - Un shell dans l'image mémoire Linux
$

Vérifiez quels processus étaient en cours d'exécution sur le système lorsque vous avez effectué le vidage de la mémoire à l'aide de linux_psaux brancher. Remarquez la dernière commande de la liste :c'est le insmod commande que vous avez exécutée avant le vidage :

 $ python2 vol.py -f ~ / lime / rhel8.3_644bit.mem linux_psaux --profile =linuxredhat8_3_4_18_0-240x64 
Fonds de volatilité de la volatilité 2.6.1
PID UID GID Arguments
1 0 0 / USR / LIB / SYSTEMD / SYSTEMD - Foncteur-racine --System --Deserialize 18
2 0 0 [kthreadd]
3 0 0 [RCU_GP]
4 0 0 0 0 [rcu_par_gp]
861 0 0 / usr / libexec / plateforme-python -es / usr / sbin / à réglage -l -l -p

869 0 0 / usr / bin / rhsmcertd
875 0 0 /usr/libexec/sssd/sssd_be --domain implicite_files --uid 0 --gid 0 --logger=fichiers
878    0      0      /usr/libexec/sssd/sssd_nss --uid 0 --gid 0 -- logger=fichiers      

<< >>

11064 89 89 qmgr -l -t Unix -u
227148 0 0 [Kworker / 0:0]
227298 0 0 - Bash
227374 0 0 [Kworker / U2:1]
227375 0 0 [Kworker / 0:2]
227884 0 0 [Kworker / 0:3]
228573 0 0 insmod ./lime-4.18.0-240.el8.x86_64.ko chemin =.. / rhel8.3_64bit.mem Format =citron vert /> 228576 0 0
$

Vous voulez connaître les statistiques réseau du système ? Exécutez le linux_netstat plugin pour trouver l'état des connexions réseau lors du vidage mémoire :

$ python2 vol.py -f ~/LiME/RHEL8.3_64bit.mem linux_netstat --profile=LinuxRedhat8_3_4_18_0-240x64
Volatility Foundation Volatility Framework 2.6.1
UNIX 18113              systemd/1     /run/ systemd/privé
UNIX 11411              systemd/1     /run/systemd/notify
UNIX 11413              systemd/1     /run/systemd/cgroups-agent
UNIX 11415              systemd/1        systemd/1    
< >
$

Ensuite, utilisez le linux_mount plugin pour voir quels systèmes de fichiers ont été montés lors du vidage de la mémoire :

$ python2 vol.py -f ~/LiME/RHEL8.3_64bit.mem linux_mount --profile=LinuxRedhat8_3_4_18_0-240x64
Volatility Foundation Volatility Framework 2.6.1
tmpfs                     /sys/fs/cgroup                              RO, Nosuid, NODEV, NOEXEC
CGROUP / SYS / FS / CGROUP / PIDS CGROUP RW, relatime, NOSUID, NODEV, NOEXEC
SystemD-1 / ProC / SYS / FS / BINFMT_MISC AUTOFS RW, Relatime
SUNRPC / VAR / LIB / NFS / RPC_PIPIPIPIPESFS RPC_PIPIPESFS RW, Relatima
/ MAPPER / RHEL_KVM - 03 - Guest11-Root / XFS RW, relatime
TMPFS / Dev / SHM TMPFS RW ,nosuid,nodev                        
selinuxfs                 /sys/fs/selinux                     selinuxfs    rw,relatime                        
< >

cgroup                   /sys/fs/cgroup/net_cls,net_prio     cgroup       rw,relatime,nosuid,nodev,noexec        
cgroup                    /sys/fs/cgroup/ CPU, CPuacct Cgroup RW, relatime, Nosuid, NODEV, NOEXEC
BPF / SYS / FS / BPF BPF RW, relatime, NOEID, NODEV, NOEXEC
CGROUP / SYS / FS / CGROUP / mémoire CGROUP RO, relatime, Nosuid, NODEV, NOEXEC
CGROUP / SYS / FS / CGROUP / CPUSET CGROUP RW, relatime, NOEUID, NODEV, NOEXEC
MONUE / DEV / MONUE MONUE RW, Relatima
$

Curieux de savoir quels modules du noyau ont été chargés ? Volatility a également un plugin pour cela, bien nommé linux_lsmod :

$ python2 vol.py -f ~/LiME/RHEL8.3_64bit.mem linux_lsmod --profile=LinuxRedhat8_3_4_18_0-240x64
Volatility Foundation Volatility Framework 2.6.1
ffffffffc0535040 lime 20480
ffffffffc0530540 binfmt_misc 20480
FFFFFFFC05E8040 SUNRPFC 479232
<>>
FFFFFFC04F9540 NFIT 65536
FFFFFFFC0266280 DM_MIRROR 28672
FFFFFFFC025E040 DM_REGIVE_HASH 20480
FFFFFFFC0258180 DM_LOG 20480
ffffffffc024bbc0 dm_mod 151552
$

Vous voulez trouver toutes les commandes exécutées par l'utilisateur qui ont été stockées dans l'historique de Bash ? Exécutez le linux_bash plug-in :

$ python2 vol.py -f ~/LiME/RHEL8.3_64bit.mem linux_bash --profile=LinuxRedhat8_3_4_18_0-240x64 -v
Volatility Foundation Volatility Framework 2.6.1
Pid      Name                 Command Time                                      br />-------- -------------------- ------------------- ----------- -------
  227221 bash                 2021-04-17 18:38:24 UTC+0000   lsmod
  227221 bash                 2021-04-17 18 :38:24 UTC+0000   rm -f .log
  227221 bash                 2021-04-17 18:38:24 UTC+0000   ls -l /etc/zzz
  227221 bash                 2021-04-08 :38:24 UTC+0000   cat ~/.vimrc
  227221 bash                 2021-04-17 18:38:24 UTC+0000   ls
  227221 bash                 2021-04-17 : 24:3 UTC 0000   cat /proc/817/cwd
  227221 bash                 2021-04-17 18:38:24 UTC+0000   ls -l /proc/817/cwd
  227221 bash                 2021-04-38 :24 UTC+0000   ls /proc/817/
< >
  227298 bash                 2021-04-17 18 :40:30 UTC+0000   gcc prt.c
  227298 bash                 2021-04-17 18:40:30 UTC+0000   ls
  227298 bash                   2021-04-17 18:40 ./a.out
  227298 bash                 2021-04-17 18:40:30 UTC+0000   vim prt.c
  227298 bash                 2021-04-17 18:40:30 UTC gcct+0000. c
  227298 bash                 2021-04-17 18:40:30 UTC+0000   ./a.out
  227298 bash                 2021-04-17 18:40:30 UTC+0000 /> ls
 $

Vous voulez savoir quels fichiers ont été ouverts par quels processus ? Utilisez le linux_lsof plugin pour lister ces informations :

$ python2 vol.py -f ~/LiME/RHEL8.3_64bit.mem linux_lsof --profile=LinuxRedhat8_3_4_18_0-240x64
Volatility Foundation Volatility Framework 2.6.1
Décalage             Nom                          >------------------ ------------------------------ - -------- -------------
0xFFFF9C83FB1E9F40 RSYSLOGD 71194 0 / dev / null
0xFFFF9C83FB1E9F40 RSYSLOGD 71194 1 / dev / null
0xFFFF9C83FB1E9F40 RSYSLOGD 71194 2 / Dev / Null
0xFFFF9C83FB1E9F40 RSYSLOGD 71194 3 / Dev / Urandom
0xFFFF9C83FB1E9F40 RSYSLOGD 71194 4 Socket:[> 0xFFFF9C83FB1E9F40 RSYSLOGD 71194 5 / VAR / LOG / Messages
0xFFFF9C83FB1E9F40 RSYSLOGD 71194        6 anon_inode :[9063]
0xffff9c83fb1e9f40 rsyslogd                          71194        7 /var/log/sec URE

<>>

0xFFFF9C8365761F40 INSMOD 228573 0 / DV / PTS / 0
0xFFFF9C8365761F40 INSMOD 228573 1 / dev / pts / 0
0XFFFF9C8365761F40 INSMOD 228573 2 / Dev / PTS / 0
0xFFFF9C8365761F40 INSMOD 228573 3 /ROOT/LIME/SRC/LIME-4.18.0-240.EL8.X86_64.KO
$

Accéder à l'emplacement des scripts des plugins Linux

Vous pouvez obtenir beaucoup plus d'informations en lisant le vidage de la mémoire et en traitant les informations. Si vous connaissez Python et que vous êtes curieux de savoir comment ces informations ont été traitées, accédez au répertoire où sont stockés tous les plugins, choisissez-en un qui vous intéresse et voyez comment Volatility obtient ces informations :

 $ LS volatilité / plugins / linux / 
APIHOOKS.PY COMMUN.PY KERNEL_OPENED_FILES.PY Malfind.py psaux.py
APIHOOKS.PYCRONCRONC.PYC KERNEL_OPENED_Files.pyc malfind.pyc psaux.pyc
ARP.PYC CPUINFO.PYC KEYBART_NOTIFIERS.PYC PSENV.PYP PSENV.PYPHPR /> ASLR_SHIFT.PY DENTRY_CACHE.PY LD_ENV.PY mont.py pslist_cache.py
aslr_shift.pyc dentry_cache.pyc ld_env.pyc ld_env.pyc mont.pyc pslist_cache.pyc
< >
check_syscall_arm.py __init__.py lsmod.py proc_maps.py tty_check.py
check_syscall_arm.pyc    __init__.pyc         lsmod.pyc                proc_maps.pyc       tty_check.pyc
check_syscall.py         iomem.py             proc          aps_rb.py     vma_cache.py
check_syscall.pyc        iomem.pyc            lsof.pyc                 proc_maps_rb.pyc    vma_cache.pyc
$
$

L'une des raisons pour lesquelles j'aime Volatility est qu'il fournit de nombreux plugins de sécurité. Ces informations seraient difficiles à acquérir manuellement :

linux_hidden_modules         – Cave la mémoire pour trouver les modules de noyau cachés
linux_malfind              – Recherche les mappages de processus suspects
linux_truecrypt_passphrase - Récupère les phrases de passe Truecrypt mises en cache

La volatilité vous permet également d'ouvrir un shell dans le vidage mémoire, donc au lieu d'exécuter toutes les commandes ci-dessus, vous pouvez exécuter des commandes shell à la place et obtenir les mêmes informations :

$ python2 vol.py -f ~/LiME/RHEL8.3_64bit.mem linux_volshell --profile=LinuxRedhat8_3_4_18_0-240x64 -v
Volatility Foundation Volatility Framework 2.6.1
Contexte actuel :processus systemd, pid=1 DTB=0x1042dc000
Bienvenue sur volshell ! L'image mémoire actuelle est :
file:///root/LiME/RHEL8.3_64bit.mem
Pour obtenir de l'aide, tapez 'hh()'
>>>
>>> sc()
Contexte courant :processus systemd, pid=1 DTB=0x1042dc000
>>>

Étapes suivantes

La criminalistique de la mémoire est un bon moyen d'en savoir plus sur les composants internes de Linux. Essayez tous les plugins de Volatility et étudiez leur sortie en détail. Réfléchissez ensuite à la manière dont ces informations peuvent vous aider à identifier une intrusion ou un problème de sécurité. Plongez dans le fonctionnement des plugins et essayez peut-être même de les améliorer. Et si vous n'avez pas trouvé de plugin pour ce que vous voulez faire, écrivez-en un et soumettez-le à Volatility pour que d'autres puissent l'utiliser aussi.


Linux
  1. Partage de fichiers open source avec cet outil Linux

  2. Cartographie mentale open source avec Draw.io

  3. Inspectez les capacités des binaires ELF avec cet outil open source

  4. Mon histoire Linux :briser les barrières linguistiques avec l'open source

  5. Les employeurs vont augmenter l'embauche de professionnels de l'informatique avec des compétences open source

Mettez à jour les appareils à distance avec cet outil open source

Gérez vos connexions SSH avec cet outil open source

Essayez Linux sur votre Mac avec la virtualisation open source

Créer un SDN sous Linux avec open source

Les 10 meilleurs gestionnaires de presse-papiers Open Source pour Linux

Les 10 outils de navigation de fichiers open source pour le système Linux