¿Cómo volcar la imagen de memoria del sistema Linux?

18

Sé volcar imágenes de memoria en Windows. (eg-dumpit) Pero no sé cómo volcar imágenes de memoria en Linux.

Quiero obtener imágenes de memoria en Linux y de Linux a Linux con conexión ssh o algo así.

¿Cómo puedo ingresar a Linux?

bakie
fuente
55
¿Está tratando de obtener memoria de un proceso en ejecución, memoria del núcleo o memoria física sin procesar? Todos están disponibles, pero los métodos de acceso difieren. Ver / dev / kmem, / dev / mem, / proc / kcore, / proc / $ pid / maps y / proc / $ pid / mem.
Casey
Echar un vistazo a este SU Q & A: superuser.com/questions/164960/...
SLM

Respuestas:

26

Del Wiki de Forense: Herramientas: Imágenes de memoria

extracto

Linux

/ dev / mem

En sistemas Linux más antiguos, el programa dd se puede usar para leer el contenido de la memoria física del archivo del dispositivo / dev / mem. Sin embargo, en sistemas Linux recientes, / dev / mem proporciona acceso solo a un rango restringido de direcciones, en lugar de la memoria física completa de un sistema. En otros sistemas, puede no estar disponible en absoluto. A lo largo de la serie 2.6 del kernel de Linux, la tendencia era reducir el acceso directo a la memoria a través de archivos de pseudodispositivos. Vea, por ejemplo, el mensaje que acompaña a este parche: http://lwn.net/Articles/267427/ .

/ dev / crash

En los sistemas Red Hat (y aquellos que ejecutan distribuciones relacionadas como Fedora o CentOS), el controlador de bloqueo se puede cargar para crear un pseudodispositivo / dev / crash para el acceso a la memoria física sin procesar (a través del comando "modprobe crash"). Este módulo también se puede compilar para otras distribuciones de Linux con un esfuerzo menor (consulte, por ejemplo, http://gleeda.blogspot.com/2009/08/devcrash-driver.html ). Cuando el controlador de bloqueo se modifica, compila y carga en otros sistemas, el dispositivo de acceso a memoria resultante no es seguro para la imagen en su totalidad. Se debe tener cuidado para evitar direcciones que no estén respaldadas por RAM. En Linux, / proc / iomem expone los rangos de direcciones correctos a la imagen, marcados con "RAM del sistema".

Segundo vistazo: análisis forense de la memoria de Linux

Este producto forense de memoria comercial se entrega con una versión modificada del controlador de bloqueo y un script para descargar la memoria de forma segura utilizando el controlador original o modificado en cualquier sistema Linux dado.

fmem fmem - repositorio de github

fmem es un módulo del núcleo que crea el dispositivo / dev / fmem, similar a / dev / mem pero sin limitaciones. Este dispositivo (RAM física) se puede copiar usando dd u otra herramienta. Funciona en 2.6 núcleos de Linux. Bajo GNU GPL.

LiME - Extractor de memoria de Linux

Linux Memory Extractor (LiME) es un módulo de kernel cargable (LKM), que permite la adquisición de memoria volátil de dispositivos basados ​​en Linux y Linux, como los que funcionan con Android. La herramienta admite la descarga de memoria en el sistema de archivos del dispositivo o en la red.

Encontré este ejemplo de fmemen uso, que parece ser la forma más fácil de volcar la memoria para fines de análisis, ya no puedo usarlo /dev/memdespués de los núcleos 2.6.x, según tengo entendido.

fmem Ejemplo

$ ./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

* Fuente: ¿Cómo puedo volcar toda la memoria física en un archivo?

Ejemplo de LiME

Para analizar la memoria volátil también existe esta página, titulada: Análisis de memoria de Linux . Hay un ejemplo completo en este video tutorial que muestra el uso de LiME y Volatility para recopilar un volcado de memoria y luego analizarlo, extrayendo el historial de Bash del usuario del volcado de memoria.

¿Qué más?

También hay estas preguntas y respuestas de U&L tituladas: ¿Cómo puedo volcar la memoria completa del sistema? que tiene ejemplos e información adicionales.

slm
fuente
-3
dc3dd if=/proc/kcore of=/mount/.
Larytet
fuente
2
Alguna explicación sería buena.
phk