web-dev-qa-db-fra.com

Comment vider l'image de la mémoire du système Linux?

Je sais pour vider des images de mémoire dans Windows. (eg-dumpit) Mais je ne sais pas comment vider les images mémoire sous Linux.

Je veux obtenir des images de mémoire sous Linux et de Linux à Linux avec une connexion ssh ou quelque chose.

Comment obtenir sous Linux?

19
bakie

À partir du Wiki de Forensic: Tools: Memory Imaging

extrait

Linux

/ dev/mem

Sur les anciens systèmes Linux, le programme dd peut être utilisé pour lire le contenu de mémoire physique à partir du fichier de périphérique/dev/mem. Sur les systèmes Linux récents, cependant,/dev/mem fournit uniquement l'accès à une plage d'adresses restreinte, plutôt qu'à la mémoire physique complète d'un système. Sur d'autres systèmes, il peut ne pas être disponible du tout. Dans toute la série 2.6 du noyau Linux, la tendance était de réduire l'accès direct à la mémoire via des fichiers pseudo-périphériques. Voir, par exemple, le message accompagnant ce patch: http://lwn.net/Articles/267427/ .

/ dev/crash

Sur les systèmes Red Hat (et ceux qui exécutent des distributions connexes telles que Fedora ou CentOS), le pilote de crash peut être chargé pour créer un pseudo-périphérique/dev/crash pour l'accès à la mémoire physique brute (via la commande "crash de modprobe"). Ce module peut également être compilé pour d'autres distributions Linux avec un effort mineur (voir, par exemple, http://gleeda.blogspot.com/2009/08/devcrash-driver.html ). Lorsque le pilote de plantage est modifié, compilé et chargé sur d'autres systèmes, le périphérique d'accès à la mémoire résultant n'est pas sûr à l'image dans son intégralité. Des précautions doivent être prises pour éviter les adresses qui ne sont pas sauvegardées en RAM. Sous Linux,/proc/iomem expose les plages d'adresses correctes à l'image, marquées avec "RAM système".

Second Look: Linux Memory Forensics

Ce produit de criminalistique de mémoire commercial est livré avec une version modifiée du pilote de crash et un script pour vider la mémoire en toute sécurité en utilisant le pilote d'origine ou modifié sur n'importe quel système Linux donné.

fmem fmem - repo github

fmem est un module du noyau qui crée le périphérique/dev/fmem, similaire à/dev/mem mais sans limitations. Ce périphérique (RAM physique) peut être copié à l'aide de dd ou d'un autre outil. Fonctionne sur les noyaux Linux 2.6. Sous GNU GPL.

Lime - Extracteur de mémoire Linux

Linux Memory Extractor (Lime) est un module de noyau chargeable (LKM), qui permet l'acquisition de mémoire volatile à partir de périphériques Linux et Linux, tels que ceux alimentés par Android. L'outil prend en charge le vidage de la mémoire dans le système de fichiers de l'appareil ou sur le réseau.

J'ai trouvé cet exemple de fmem en cours d'utilisation, qui semble être le moyen le plus simple de vider la mémoire à des fins d'analyse, vous ne pouvez plus utiliser /dev/mem après les noyaux 2.6.x, si je comprends bien.

exemple de fmem

$ ./run.sh
...
----Memory areas: -----
reg00: base=0x000000000 (    0MB), size= 1024MB, count=1: write-back
reg01: base=0x0c8800000 ( 3208MB), size=    2MB, count=1: write-combining
-----------------------
!!! Don't forget add "count=" to dd !!!


$ ls /dev/f*
/dev/fb0  /dev/fd0  /dev/fmem  /dev/full  /dev/Fuse


$ Sudo dd if=/dev/fmem of=/tmp/fmem_dump.dd bs=1MB count=10
10+0 records in
10+0 records out
10000000 bytes (10 MB) copied, 0.0331212 s, 302 MB/s

* Source: Comment puis-je vider toute la mémoire physique dans un fichier?

Exemple de citron vert

Pour analyser la mémoire volatile, il y a aussi cette page, intitulée: Linux Memory Analysis . Il y a un exemple détaillé dans ce didacticiel vidéo qui montre l'utilisation de Lime et de la volatilité pour collecter un vidage de mémoire puis l'analyser, en extrayant l'historique Bash de l'utilisateur du vidage de mémoire.

Quoi d'autre?

Il y a aussi ce Q&A U&L intitulé: Comment puis-je vider la mémoire système complète? qui a des exemples et des informations supplémentaires.

27
slm

rekall

Découvrez le framework rekall , ils ont une application linpmem à cet effet: http://www.rekall-forensic.com/docs/Tools/index.html

SANS rekall memory cheatsheet forensic a un exemple de la façon de vider la mémoire sous linux aussi:

# ./linpmem_2.0.1 -o linux.aff4
0
Luke Quinane