Metasploit es un framework diseñado para realizar pruebas de penetración, análisis de vulnerabilidades y auditorias de seguridad.
Dentro de la aplicación podemos encontrar módulos de explotación, payloads y herramientas de post explotación.
Es un framework vasto y complicado, pero con posbilidades casi infinitas.
En este caso vamos a ver su utilización frente a una maquina Ubuntu.
Colocamos en /home de la maquina a vulnerar un archivo .txt con información importante, a modo de CTF para este ejercicio.
Escaneamos el sistema, como ya sabemos, con Nmap.
Esto nos otorga una lista de servicios que corren en puertos abiertos.
En este caso podemos buscar todos los servicios para intentar encontrar un vector de entrada.
Encontramos que el servicio ProFTPD 1.3.5 posee una vulnerabilidad (registrada en CVE-2015-3306) que es pasible de ser explotada.
Nos indica que el modulo mod_copy nos permite leer y escribir en ficheros a traves de diferentes comandos.
Abrimos entonces nuestra consola de Metasploit mediante el comando msfconsole.
En este caso, la aplicación nos recibe con un inventario de todo su potencial.
Una vez inicializada podemos comenzar la busqueda del exploit necesario para vulnerar el sistema Ubuntu.
Mediante el comando "search proftpd" buscamos todos los modulos con ese nombre.
Encontramos, de manera inmediata, el famoso mod_copy que habiamos visto cuando buscamos el servicio en internet.
Lo seleccionamos mediante el comando "use <RUTA>".
Esto nos carga el modulo y podemos escribir "options" para ver que es lo que nos solicita para ser ejecutado.
En la primera lista tenemos todos los datos de la explotación en el sistema a vulnerar, mientras que debajo tenemos la información del payload que hemos configurado.
Seteamos, en un primer lugar, la IP del objetivo.
Cargamos luego el payload. En este caso buscamos "show payloads" para que se nos muetren todo aquellos compatibles con el exploit que estamos utilizando.
Seteamos, por ultimo, el LHOSTS (Es decir el listener host) para nuestro payload. De este modo el exploit está cargado y listo para ser utilizado.
Sin embargo el exploit falla. Nos dice que no ha podido copiar el payload en el destino y nos indica que puede deberse a que no tenemos permisos para escribir en ese directorio.
Modificamos entonces el destino de nuestro payload, seleccionamos la carpeta /html (ubicada en /var/www).
Esperamos de esta manera que, al ser una carpeta con menos permisos, se nos permita acceder a ella para colocar nuestro payload
Activamos el exploit nuevamente y... ¡Eureka! Hemos entrado.
Se nos ha abierto una sesión desde la que podemos comenzar a utilizar comandos y recorrer el sistema.
Listamos los elementos de esa carpeta con el comando "ls" y cambiamos de directorio con el comando "cd".
Sin embargo, vemos que no hemos salido del directorio. Esto es porque, seguramente, a que no tenemos permisos para salir de esa carpeta.
Sin embargo con un "ls /home/vagrant" podemos listar los elementos de cualquier carpeta, en este caso la del usuario vagrant.
Vemos entonces nuestro fichero .txt ¿Seremos capaces de acceder a el?
¡Si! Claro.
Mediante el comando "cat" podemos marcar la ruta de destino del fichero y leer su contenido.
TAmbien podriamos investigar el resto del sistema. En este caso hemos accedido al fichero que habiamos colocado en la maquina ubuntu en un primer lugar.
Como vemos, en este pequeño ejemplo, Metasploit posee un potencial total para poder explorar vulnerabilidades y trabajar contra ellas desde los sistemas que estemos buscando defender.
NOTA: Todas estas pruebas fueron realizado en un laboratorio cerrado. Estos procedimientos no deben realizarse a equipos ajenos sin una previa autorización.