Adquisición de memoria volátil en Linux con AVML
¿Qué es Acquire Volatile Memory for Linux?
Acquire Volatile Memory for Linux (AVML por sus siglas en inglés) , es una herramienta desarrollada por el equipo de Microsoft, que permite realizar la adquisición del contenido de la memoria volátil, para llevarla a un almacenamiento no volátil. Esta herramienta es de carácter portable, lo cual facilita su utilización durante una de las tareas de adquisición de memoria.
¿Para qué sirve AVML?
AVML es una herramienta escrita en rust sirve para obtener el contenido de la memoria volátil de un sistema Linux; una de las ventajas de esta herramienta, es que no necesita conocer de entrada la distribución basada en Linux o kernel que se está utilizando. Posterior a la adquisición del contenido de la memoria, podría analizarse el archivo resultante con las utilidades del framework volatility
Puede entregar una salida utilizando el formato LiME y guardar las imágenes obtenidas en ubicaciones externas utilizando por ejemplo, Azure Blob Store.
¿Tengo que compilarlo e “instalarlo” como en el caso de otras herramientas?
Puede utilizar avml como una herramienta portable, basta tan solo con descargarla y ejecutarla, es decir, no tiene que compilar o instalar nada; lo cual es una gran ventaja ya que se reduce el “ruido” introducido en la imagen de la memoria obtenidoaposteriormente. Puede descargarla de la sección Releases del github de Microsoft – imagen 1
También, puede ser compilada e instalada en distribuciones como Ubuntu, CentOS, RHEL, Debian y Oracle Linux.
imagen 1
Para obtener la versión portable, descargue el paquete avml, como puede ver en la imagen 2
imagen 2
¿Fuentes de memoria?
La utilidad adquiere información de los siguientes archivos:
/dev/mem
/proc/kcore
/dev/crash
A continuación encontrará una breve descripción de cada archivo:
El archivo /dev/mem, es un archivo de dispositivo de caracteres que es una imagen de la memoria principal del computador; en la imagen 3, puede apreciar entre otras, la letra “c”, al inicio de la segunda línea (lo cual muestra que si es un archivo de dispositivo de caracteres)
imagen 3
El archivo /proc/kcore representa la memoria física del sistema y está almacenado en el formato core.
/dev/crash utilizado para crear un kernel dump.
Datos importantes a considerar
Pruebe la herramienta en entornos controlados y, comprenda su funcionamientos antes de utilizarla en entornos de producción
No almacene la imagen obtenida en el equipo, máquina o sistema objeto del análisis.
Utilice otra máquina totalmente diferente para efectuar el análisis de la imagen adquirida
Calcule el hash de la imagen utilizando una función hash aceptable
Realice al menos tres copias de la imagen y realice su análisis solo en una de ellas.
Demostración
En el siguiente escenario se utilizó una máquina virtual con las características descritas en la tabla:
Hipervisor | VMware® Workstation 15 Pro |
Sistema operativo VM | Debian GNU/Linux buster |
Kernel | Linux debian 4.19.0-16-amd64 |
Memoria | 4 GB |
tabla 1
Nota: En este caso se descargó avml en la máquina objetivo del análisis, sin embargo, lo adecuado habría sido, traer la versión portable ya debidamente acondicionada en un pendrive debidamente preparado
En primer lugar se descargó avml en su versión 0.3.0, ver imagen 4
Imagen 4
Ubique dentro del sistema Linux el paquete descargado, ver imagen 5
imagen 5
A continuación utilice el comando file, para determinar el tipo de archivo (paso opcional), ver imagen 6:
imagen 6
imagen 7
Asígnele permisos de ejecución al paquete, con el comando $chmod +x, ver imagen 8
imagen 8
Una vez asignado el permiso de ejecución, lo primero que se debe hacer antes de utilizar la herramienta, es ver el manual o obtener ayuda sobre la aplicación; puede hacerlo mediante la instrucción (ver imagen 9):
$./avml –help
imagen 9
Posteriormente, voy a obtener la imagen de la memoria, el nombre del archivo de la imagen debe reflejar algunas de las condiciones relativas al sistema operativo y kernel; tenga en cuenta que debe ejecutar el comando con un usuario que tenga permisos de root, de no ser así va a obtener un error en la ejecución, ver imagen 10
imagen 10 – Error al no utilizar “sudo” o el super usuario
tenga en cuenta que si no se le especifica ninguna fuente de información (–source), el itera entre las opciones que tiene disponibles; otro dato importante, si quiere obtener la salida en formato LiME, no utilice compresión, en la imagen 11, podrá observar la ejecución de la aplicación de forma correcta, para obtener la imagen en un archivo llamado “imagendelamemoria.dmp” ver imagen 11.
imagen 11
A continuación se puede ver el archivo relacionado con la imagen obtenida, ver imagen 12
imagen 12
Por último, calcule el hash de la imagen obtenida utilizando la función sha256 o superior
A partir de este momento, usted está listo para iniciar el análisis de la imagen de la memoria volátil obtenida utilizando avml, RECUERDE, la imagen se debe almacenar en un lugar diferente a la máquina objetivo de análisis y, el análisis de la imagen, debe realizarse en su estación forense u otro máquina diferente a la máquina objetivo
Recursos
https://github.com/microsoft/avml
https://man7.org/linux/man-pages/man4/mem.4.html
The Art of Memory Forensics
¿Te gustó este post? por favor déjanos tus comentarios! Sé un buen HackerPro y comparte con tu comunidad! Suscríbete a Behackerpro
Otras Entradas
Introducción a la Seguridad en AI – Parte 2
Después de entender los principales ataques, técnicas, tácticas y procedimientos...
Leer másIntroducción a la Seguridad en AI
Cuando hablamos de Seguridad en AI (Artificial Intelligence o Inteligencia...
Leer más5 pilares para Hackers o Profesionales en Ciberseguridad desde una perspectiva técnica
Después de la master class que realizamos en Be Hacker...
Leer más