Herramienta Volatility2 (Linux)
Vamos a ver Análisis Forense en sistemas linux la unica diferencia de los sistemas Windows es que el kernel es muy diferente entre si, por lo que la herramienta Volatility no va a detectar el profile de forma automatica como lo hace en Windows ya que siempre tendra la misma arquitectura, pero en linux siempre esta evolucionando y cambiando, por lo que tendremos que crearlo nosotros de forma manual, lo vamos a ver mas adelante.
Como laboratorio vamos a tener 2 Kali Linux uno sera el atacante, el otro sera el de Análisis Forense (En este caso utilizaremos el mismo Kali para las dos funciones, pero realmente tendrian que estar separadas en un caso real) y 1 maquina ubuntu 16.04 que sera la victima.
Montaje/ejecución del LAB
En el Ubuntu 16.04 vamos a instalar apache2 para que este activa una pagina web.
sudo apt install apache2Iniciaremos el servicio:
sudo service apache2 startAhora vamos a simular una vulnerabilidad en la que puedas subir archivos en la pagina por ejemplo un PHP y desde la maquina atacante puedas obtener una reverse shell gracias al archivo que subiste ya que lo ejecuta www-data por lo que entrariamos como dicho usuario.
Despues escalaremos a root metiendo la contraseña del mismo como si hubieramos descubierto que tenia una contraseña debil.
index.php
<?php
// Ruta donde se guardarán los archivos subidos
$upload_dir = __DIR__ . '/uploads/';
// Crea la carpeta uploads si no existe
if (!is_dir($upload_dir)) {
mkdir($upload_dir, 0755, true);
}
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$file = $_FILES['file'];
// Nombre del archivo
$filename = basename($file['name']);
$target_file = $upload_dir . $filename;
// Mueve el archivo subido sin ninguna validación
if (move_uploaded_file($file['tmp_name'], $target_file)) {
echo "Archivo subido correctamente: <a href='uploads/$filename'>$filename</a>";
} else {
echo "Error al subir el archivo.";
}
}
?>
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>Subida de Archivos</title>
</head>
<body>
<h1>Subir un archivo</h1>
<form method="POST" enctype="multipart/form-data">
<input type="file" name="file" required>
<button type="submit">Subir</button>
</form>
</body>
</html>Este archivo lo alojamos en la siguiente ruta:
Pegamos todo lo anterior y lo guardamos con Ctrl+X, Y y ENTER, despues instalamos todo lo necesario para que interprete PHP.
Echo esto lo tendriamos todo listo, ahora nos conectaremos desd el kali a la maquina victima desde el navegador.
Veremos la pagina web y vamos a crear el siguiente archivo.
shell.php
Una vez creado esto en la maquina atacante, vamos a ponernos a la escucha:
Ahora en la pagina web, subiremos dicho archivo, una vez subido, tendremos que ir a ver el archivo para que se ejecute.
Ahora si volvemos a donde tenemos la escucha veremos lo siguiente:
Vemos que ha funcionado, por lo que sanitizaremos la shell.
Ahora antes de hace nada, nos volveremos a nuestro ubuntu y le cambiaremos la password a root haciendo esto.
Metemos como contraseña root simplemente eso, echo esto vamos a donde tenemos nuestra shell del atacante y haremos lo siguiente:
Metemos como contraseña root y ya seremos dicho usuario.
Por lo que esta primera parte ya esta echa.
Creación de dump de imagen para Análisis Forense
Imaginaremos que nos damos cuenta de que alguien se ha metido en nuestro servidor (Hacker) para poder analizar todo esto con la tecnica ya mencionada vamos a crear lo siguiente.
NOTA
Esto en un caso real generalmente el profesional tiene que ir de forma presencial, ya que si el atacante siguiera dentro y yo me conectara mediante una VPN a dicho servidor, tambien nos podria infectar a nosotros, por lo que hay que tener mucho cuidado en casos reales.
El primer paso para realizar la adquisición de la memoria RAM es utilizando la herramienta avlm que esta subido en GitHub.
URL = GitHub Tool AVML
Esto lo que nos permite hacer es un dump de memoria RAM, ya para otros casos se realizaria un analisis de disco.
Ahora en una red aislada nos descargaremos la herramienta de esta forma en la maquina ubuntu.
Esto nos descargara la herramienta que en mi caso utilizo la v0.11.4 de AVML.
Ahora para realizar este dump de memoria seria de esta forma:
Una vez que haya terminado veremos el archivo memory.raw, ahora abriremos un servidor de python3 y desde la maquina de análisis forense nos descargaremos dicho archivo con wget.
Ahora desde la maquina forense haremos esto.
Una vez que nos lo hayamos pasado, ya podremos analizarlo tranquilamente en nuestra maquina.
Análisis Forense del memory.raw
Una vez que ya nos lo hayamos pasado todo, siempre super importante lo primero es comprobar el hash MD5 para ver que se haya pasado todo de forma correcta, esto se puede hacer de esta forma:
Maquina victima
Info:
Maquina Forense
Info:
Por lo que vemos coincide, por lo que se paso de forma correcta y es el archivo original.
Ahora tendremos que crear un profile determiando para que todo esto funcione.
Creación de profile para el dump
En la maquina victima de ubuntu tendremos que instalar esto:
Ahora vamos a descargarnos volatility y realizar el make del mismo.
Info:
Con esto veremos que ha funcionado, por lo que se nos ha tenido que crear un archivo llamado module.dwarf.
Con esto ya lo tendremos echo y en un .zip todo, esto nos lo tendremos que pasar a la maquina forense de la misma forma que hicimos con el .war, por lo que cuando nos lo hayamos pasado, tendremos que hacer lo siguiente.
Tendremos que mover el ZIP a una carpeta en concreto de volatility, cuando nos descargamos el repositorio del mismo, entramos dentro y dentro tendremos que ejecutar los siguientes comandos.
Volatility2
Volatility3
Para esta v3 habria que realizar un vmlinux del kernel para que lo detecte de forma automatica, en este caso no sirve un ZIP sin mas, pero vamos a verlo con la v2 simplemente y para otros apuntes utilizare la v3.
Una vez echo esto ya tendremos el profile totalmente configurado para utilizar el dump de forma correcta.
Obtener información del banner
Para comprobar que funciona de forma correcta, vamos a obtener informacion del sistema por el banner de esta forma.
Info:
Vemos que esta funcionando de forma correcta.
Obtener información de los procesos del dump
Con el parametro linux_pstree vamos a obtener en forma de árbol los procesos que estaban en ese momento en el sistema, viendo los procesos padres, hijos, subprocesos, etc...
Info:
Vemos que ha funcionado, pero hay muchisima informacion, por lo que vamos a utilizar otros parametros para sacar mas informacion.
Tambien tenemos el pslist para verlo todo con mas detalle.
Info:
Con esto ya vamos viendo muchas mas cosas.
Obtener información de las conexiones entrantes el sistema
Info:
Aqui ya estamos viendo varias cosas interesantes, entre ellas hay unas conexiones super sospechosas que estan en esta linea:
Podemos ver que la maquina atacante su IP es esta de aqui:
Que esta realizando una conexion inversa a la maquina victima, por lo que ya podemos ver que alguien se ha colado en el servidor.
Obtener todos los comandos ejecutados en la bash
Info:
Con esto veremos esta parte de aqui interesante:
Vemos que esos comandos no los ejecutamos nosotros, si no la maquina atacante, ya viendo esto podremos ver que se ha colado alguien al servidor y no vemos que en ningun momento se haya desconectado, tambien sabemos su IP gracias a las conexiones abiertas en el sistema.
Dumpearnos un proceso a nuestro host del dump
Si por ejemplo hemos visto algun proceso sospechoso que queremos analizar, haremos lo siguiente:
Y despues con strings poder ver dicho dump del proceso.
Con esto ya habremos visto los comandos principales a utilizar en caso de un Analisis ForenseparaLinux``.
Last updated