Volcado de memoria con LiME y análisis con Volatility

Un volcado de memoria consiste en almacenar todo lo que está en la RAM de nuestro sistema a un fichero para poder analizarlo posteriormente.

En la RAM se almacena toda aquella información volátil (que se destruye al apagar el sistema) y que contiene información útil sobre la ejecución de los procesos en funcionamiento en nuestro sistema operativo. Ahí también se almacenan contraseñas que están en uso para desbloquear por ejemplo ficheros o particiones cifradas. Así que la opción de “tirar del cable del servidor” para mitigar el problema, puede ser el peor error cometido. ¿Como demuestras quien estaba conectado a la máquina en el momento que ocurrió el problema? ¿Qué procesos se estaban ejecutando?

Nos puede interesar realizar un volcado de memoria por ejemplo si un ransomware está en ejecución y está cifrando los datos de nuestro sistema, para localizar datos se acceso a programas y servicios, identificar fallos y problemas con un software o analizar el funcionamiento de nuestro sistema.
Hay varias formas de realizar un dump de la memoria, todas se basan en el dispositivo “/dev/mem”. La más conocida es memdump, pero en algunos sistemas ejecutar memdump > fichero.dump implica un fallo total de nuestro sistema (¡Vamos! Que se reinicia solo). En resumen: “NO HAGAS ESTO!” (y aún menos en un sistema en producción). La mejor opción si queremos exportar el contenido de “/dev/mem” es hacer uso de dd

# dd if=/dev/mem of=volcado.mem bs=1M 

Si esto nos devuelve un fichero de un tamaño mucho inferior al …

Servidor de ficheros NFS

Hace muchos años escribí un post con éste mismo propósito, pero es lioso y pide hacer muchas cosas, así que aquí uno mas sencillo, claro y entendedor :)

Servidor

# apt install nfs-kernel-server

Ahora en el fichero /etc/exports definimos los directorios del servidor que queremos compartir por NFS.

# vi /etc/exports
/mnt/hd_extern	192.168.1.0/24(rw,no_subtree_check,async)
/mnt/hd_extern  192.168.1.100(rw,no_subtree_check,async)

La primera línea sería para permitir el acceso a los hosts de la red 192.168.1.0/24 y la segunda sólo al host 192.168.1.100. Con ésta configuración debería valer, pero addicionalmente si la conexión es mediante una red MAN como guifi, tendremos que afinar lo de la pérdida de los paquetes. Una configuración alternativa podría ser:

# vi /etc/exports
/mnt/hd_extern	192.168.1.0/24(rw,sync,fsid=0,crossmnt,no_subtree_check,no_root_squash)
/mnt/hd_extern  192.168.1.100(rw,sync,fsid=0,crossmnt,no_subtree_check,no_root_squash)

Para recargar la configuración usaremos el comando exportfs

# exportfs -arv

La opción -a exporta todos los directorios, la opción -r eliminará las entradas antiguas, mientras que la opción -v nos mostrará el resultado de la ejecución.

Cliente
Primero instalamos el cliente nfs en el equipo

# apt install nfs-common

Creamos un punto de montaje y montamos el directorio del servidor NFS

# mkdir /mnt/hd_remot
# mount 192.168.1.3:/mnt/hd_extern /mnt/hd_remot/

Para montarlo automáticamente, añadir en /etc/fstab

# vi /etc/fstab
192.168.1.3:/mnt/hd_extern /mnt/hd_remot nfs defaults 0 0

Y listos! :)…

Freeswitch en debian 9 sobre pgsql (fallido)

Venga, otra vez estamos aquí. Tras la infructuosa instalación de freeswitch 1.8 ésta mañana sobre debian 9, volvemos a intentarlo. Ahora la diferencia, son evidentemente la versión de debian, que compilaremos freeswitch en lugar de instalarlos desde los repositorios que petan por no estar usando una clave gpg compatible y que vamos a conectarlo a un postgree (pgsql).

De nuevo, partimos de una instalación nueva.

Empezaremos instalando todas las dependencias necesarias

root@freeswitch8-capa8:~# apt-get install git libpq-dev postgresql postgresql-client build-essential