> For the complete documentation index, see [llms.txt](https://docs.pabloarrabal.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.pabloarrabal.com/explotacion/metasploit.md).

# Metasploit

{% hint style="info" %}
Para iniciar Metasploit, este comando es el mejor:

```bash
sudo msfdb init && msfconsole
```

{% endhint %}

{% hint style="info" %}
Podemos establecer una variable global como LHOST o RHOSTS para que aplique a todos los módulos, para ello usamos el comando `setg`
{% endhint %}

## Uso de metasploit para exploits y módulos

Para buscar un modulo en metasploit, usamos el comando "`search modulo a buscar`"

<figure><img src="https://271831323-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbbtAYwqVMCAFE0gptbZ0%2Fuploads%2FBkP4YRPuYJF2rRokbahf%2Fimage.png?alt=media&amp;token=891c9bc6-05b3-440c-aa23-f44a3f2f8fca" alt=""><figcaption><p>Captura de pantalla de la búsqueda de un módulo de enumeración de usuarios de ssh en metasploit</p></figcaption></figure>

Después, se listarán los módulos que coinciden con nuestra búsqueda, y para seleccionar uno de ellos, usamos el comando "`use`" seguido del numero del modulo que vayamos a usar (P. ej: "`use 2`")

<figure><img src="https://271831323-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbbtAYwqVMCAFE0gptbZ0%2Fuploads%2Ff3YSM9LMN5BJv8XgehZ4%2Fimage.png?alt=media&amp;token=966d3f84-8a4c-460e-8a6b-1a0655d09d11" alt=""><figcaption><p>Uso del modulo / exploit</p></figcaption></figure>

Ahora, para ver las opciones que tenemos que configurar para que el script funcione, usamos "`show options`"

<figure><img src="https://271831323-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FbbtAYwqVMCAFE0gptbZ0%2Fuploads%2FjPhxvuaCDWqtDolYvvJ5%2Fimage.png?alt=media&amp;token=fe219707-978d-46b7-aa06-5200281e5a46" alt=""><figcaption><p>Mostrado de opciones sobre el módulo elegido</p></figcaption></figure>

{% hint style="warning" %}
Antes de continuar, debemos diferenciar dos conceptos:

* Exploit: Es el código o la técnica utilizada para aprovechar una vulnerabilidad específica en un sistema o aplicación. Su objetivo es acceder al sistema vulnerable y ejecutar el payload. (P. ej: Un exploit puede aprovechar una vulnerabilidad en un servidor web para ejecutar comandos en el servidor.)
* Payload: Es el código que se ejecuta una vez que el exploit ha logrado acceder al sistema. Su objetivo es realizar una acción específica, como abrir una sesión de shell, instalar un malware o recolectar datos. (P. ej: Un payload puede ser una reverse shell que permite al atacante obtener control remoto del sistema.)
  {% endhint %}

Una vez seleccionado el exploit / módulo, deberemos de declarar una serie de valores para opciones del exploit, para ello, lo hacemos con "`set OPCION valor`" (P. ej: "`set RHOSTS 192.168.1.2`")

{% hint style="info" %}
En la mayoría de casos, nos encontraremos con algunas opciones a configurar (obligatorias):

* RHOSTS -> La IP de la máquina victima
* RPORTS -> El puerto de la maquina victima
* LHOSTS -> La IP de la máquina atacante
* LPORTS -> El puerto de la máquina atacante
  {% endhint %}

Una vez hayamos puesto valores a las opciones obligatorias del módulo, ejecutamos "`run`" o "`exploit`"
