Metasploit Framework es una de las herramientas más poderosas y populares en el ámbito del pentesting y la seguridad informática. En esta guía básica, aprenderás cómo utilizar Metasploit de manera efectiva, desde sus módulos principales hasta la configuración y el manejo de la línea de comandos. Si buscas adentrarte en el mundo del pentesting, ¡sigue leyendo!
Introducción a Metasploit
Metasploit Framework se destaca por su versatilidad al automatizar tareas de explotación, recolección de información y post-explotación. Gracias a sus múltiples módulos, puedes llevar a cabo pruebas de penetración(pentesting) y evaluar la seguridad de redes y sistemas.
Esta guía no abarca temas avanzados como el uso de msfvenom o técnicas de ofuscación, sino que se centra en lo esencial para iniciarte en el uso de la herramienta.
Módulos Principales de Metasploit
Metasploit se compone de diversos módulos, cada uno diseñado para cumplir funciones específicas:
Exploit
- Función: Explotar vulnerabilidades en sistemas o aplicaciones específicas.
- Ejemplo de uso: Ejecutar un exploit contra una vulnerabilidad conocida para obtener acceso al sistema.
Payload (Carga Útil)
- Función: Ejecutar código tras una explotación exitosa, como abrir una shell inversa o ejecutar comandos en el sistema comprometido.
- Ejemplo de uso: Iniciar una conexión remota para el control del sistema.
Auxiliary
- Función: Realizar tareas de apoyo que no implican directamente la explotación de vulnerabilidades, como escaneo de puertos o recolección de información.
- Ejemplo de uso: Escanear una red en busca de hosts activos.
Post
- Función: Ejecutar acciones posteriores a la explotación para recopilar información adicional o mantener el acceso.
- Ejemplo de uso: Extraer credenciales o listar usuarios en el sistema comprometido.
NOP (No Operation)
- Función: Generar instrucciones “no operación” para estabilizar exploits, especialmente útiles en escenarios de desbordamientos de búfer.
Cómo Iniciar Metasploit
Para comenzar a utilizar Metasploit, sigue estos pasos esenciales:
1. Configuración de la Base de Datos
Antes de ejecutar la interfaz de línea de comandos, es necesario inicializar la base de datos, lo cual requiere permisos de superusuario.
Ejecuta el siguiente comando en tu terminal:
sudo msfdb init
Nota: Al ejecutar este comando por primera vez, se creará la base de datos necesaria para almacenar la información y los registros de tus pruebas.
2. Ejecución de la Interfaz de Línea de Comando (CLI)
Una vez inicializada la base de datos, lanza la consola de Metasploit con:
msfconsole
Esta interfaz es el punto central para interactuar con todos los módulos y funcionalidades que ofrece Metasploit.
Interactuando con la CLI de Metasploit
La interfaz de línea de comandos de Metasploit es intuitiva y ofrece múltiples comandos para facilitar su uso. A continuación, te presentamos algunos de los comandos esenciales:
Comando help
- Función: Muestra todas las opciones y comandos disponibles en Metasploit.
- Uso:
help
También puedes obtener detalles específicos de un comando con:
help [comando]
Búsqueda y Selección de Módulos
search
: Permite buscar módulos mediante palabras clave, CVE, nombres de servicios o el tipo de módulo (exploit, auxiliar, payload, etc.).
Ejemplo:
search ms17`
use
=> Selecciona el módulo deseado ya sea ingresando el número de la lista de resultados o el nombre completo del módulo.
Ejemplo con numero:
use 0
Ejemplo con nombre:
use exploit/multi/handler
Configuración de Opciones del Módulo
Una vez que hayas seleccionado un módulo, es crucial configurar las opciones necesarias para su correcta ejecución.
podremos ver las opciones del modulo especifico que estemos usando con
options
Ejemplo con exploit/multi/handler
En la imagen proporcionada, se está utilizando el módulo exploit/multi/handler
, diseñado para recibir conexiones y establecer comunicación remota.
Establecer Parámetros: Usa el comando set
para asignar valores a parámetros como LHOST y LPORT.
- LHOST (Local Host): La dirección IP del equipo que recibirá la conexión.
- LPORT (Local Port): El puerto en el que se escuchará la conexión.
set LHOST [dirección IP]
set LPORT [puerto]
Gestión de Módulos
Metasploit cuenta con comandos específicos para manejar el historial de módulos, lo que es especialmente útil cuando trabajas con múltiples configuraciones en una misma sesión.
Comandos Clave
pushm
Guarda el módulo actual en una pila (stack) para que puedas cambiar a otro módulo sin perder la configuración previamente establecida.
Ejemplo:
use exploit/multi/handler
pushm
use exploit/windows/smb/ms17_010_eternalblue
En este ejemplo, el módulo exploit/multi/handler
se almacena en la pila, permitiéndote cambiar temporalmente al módulo ms17_010_eternalblue
.
popm
Restaura el último módulo guardado mediantepushm
, devolviendo su configuración original.
Ejemplo:
Si te encuentras en el móduloexploit/windows/smb/ms17_010_eternalblue
y ejecutaspopm
, volverás al móduloexploit/multi/handler
.
Ejecución de Módulos
Una vez que has seleccionado y configurado el módulo deseado, su ejecución se realiza con los comandos:
run
exploit
Estos comandos inician el proceso de explotación o la tarea asignada al módulo seleccionado.
Gestión de espacios de trabajo.
La gestión de espacios de trabajo en Metasploit es fundamental para mantener organizadas las auditorías y pruebas realizadas, especialmente en entornos con múltiples proyectos o durante competiciones de CTF.
Comandos Básicos
- Ver ayuda:
Para conocer las opciones disponibles y cómo gestionar los espacios de trabajo, utiliza:workspace -h
- Mostrar el espacio de trabajo actual:
Ejecuta el comandoworkspace
para ver cuál es el área activa.Por defecto, siempre se inicia con un espacio de trabajo predeterminado.
Creación y Cambio de Espacios de Trabajo
-
Crear un nuevo espacio de trabajo:
Para organizar la información de auditorías específicas o CTFs, crea un nuevo espacio de trabajo con:workspace -a <Nombre_espacio de trabajo>
Al ejecutarlo, Metasploit cambiará automáticamente al nuevo workspace
-
Cambiar de espacio de trabajo:
Si necesitas cambiar a otro espacio ya creado, simplemente ejecuta:workspace <Nombre_del_espacio>
Consejo: Utiliza espacios de trabajo para segmentar información y configuraciones específicas de cada auditoría, lo que facilitará la organización y el seguimiento de los resultados en proyectos de ciberseguridad.
Escaneo de puertos con db_nmap
Metasploit integra una versión nativa de Nmap, conocida como db_nmap, que te permite realizar escaneos avanzados directamente desde la consola y, lo más importante, almacenar automáticamente los resultados en la base de datos. Esto facilita la posterior consulta de información mediante comandos como hosts
y services
.
Tenemos a disposición toda la herramienta de nmap, consulte la [Guia basica de Nmap] y [Escaneos avanzados con Nmap]
Ejemplo de escaneo.
db_nmap -A -T4 -v 192.168.1.1
El escaneo es practicamente igual que nmap, ahora lo que nos interesa aqui es que la información recopilada, de la red o un host especifico se va a estar guardando en la base de datos, si ejecutamos comandos como
hosts
services
vamos a poder ver tanto hosts escaneados e identificados, como los servicios.
Notese como la información es relativa al escaneo y lo que se identifico.
Tambien podemos exportar los resultados obtenidos del nmap original
Manejo de sesiones
En proceso