unityLegacy

Dificultad: Easy - OS: Windows

chevron-right¯\_( ͡° ͜ʖ ͡°)_/¯ Machine infohashtag

Legacy está diseñada para ilustrar vulnerabilidades comunes en sistemas antiguos, concretamente en Windows XP. La parte inicial consiste en realizar un reconocimiento de los servicios expuestos del objetivo, donde se identifica el protocolo SMB como un vector de ataque principal. Este protocolo, ampliamente utilizado en entornos Windows para compartir archivos y recursos, representa en este contexto una superficie vulnerable que será explotada para comprometer el sistema.

La explotación de la máquina se centra en una vulnerabilidad específica: CVE-2008-4250, una falla crítica en el componente Server del sistema operativo Windows, conocida comúnmente como MS08-067. Esta vulnerabilidad permite la ejecución remota de código mediante el envío de paquetes especialmente diseñados a través del puerto SMB. En este CTF se emplea directamente el módulo correspondiente de Metasploit (exploit/windows/smb/ms08_067_netapi) para aprovechar esta falla, lo que permite obtener una sesión con privilegios de administrador en el sistema.

chevron-right📌Exploit MS08-067hashtag

El exploit MS08-067, identificado como CVE-2008-4250, se basa en una vulnerabilidad crítica dentro del servicio Server de Windows, específicamente en la librería NetAPI32.dll. Este servicio se encarga de gestionar funciones relacionadas con el uso compartido de archivos e impresoras a través del protocolo SMB (Server Message Block). La falla radica en la manera en que el sistema maneja las llamadas RPC (Remote Procedure Call) que se realizan sobre SMB, lo cual permite a un atacante ejecutar código arbitrario en el contexto del sistema, sin requerir autenticación previa.

Este exploit se aprovecha de una mala gestión de memoria en el código del sistema operativo, específicamente en la función de la librería NetAPI32.dll que se encarga de procesar rutas de red compartidas. Esta función espera recibir una cadena de texto (por ejemplo, una ruta como \\servidor\carpeta) y la almacena en una región de memoria llamada buffer. El problema es que no verifica correctamente la longitud de esa cadena antes de copiarla.

Cuando un atacante envía una ruta especialmente larga y mal formada a través de una solicitud RPC (Remote Procedure Call), esa cadena excede el tamaño del buffer reservado en memoria. Esto es lo que se conoce como un buffer overflow o desbordamiento de búfer. El contenido adicional que no cabe en el buffer sobrescribe otras partes adyacentes de la memoria, y entre ellas se encuentra el stack, o pila de ejecución, que es donde se guarda información fundamental como direcciones de retorno (es decir, a dónde debe volver el programa luego de ejecutar una función).

Al sobrescribir esas direcciones de retorno, el atacante puede redirigir el flujo de ejecución del programa hacia una porción de código que él mismo ha introducido como parte del payload: el shellcode. Este shellcode está diseñado para ejecutarse con los mismos privilegios que el servicio vulnerado —en este caso, el proceso svchost.exe que corre como SYSTEM, el nivel más alto en Windows—, lo que le permite al atacante obtener el control total del sistema comprometido. Así, el ataque transforma una simple solicitud de red en la ejecución remota de código arbitrario con máximos privilegios.

chevron-right📌Exploit MS17-010hashtag

La vulnerabilidad MS17-010, identificada como CVE-2017-0143 y comúnmente conocida como EternalBlue, representa una de las fallas más críticas en la historia reciente del sistema operativo Windows. Esta falla afecta al protocolo SMBv1 (Server Message Block versión 1), utilizado ampliamente en redes Windows para compartir archivos, impresoras y recursos. El problema radica en una incorrecta gestión de la memoria por parte del controlador del sistema (srv.sys) al manejar determinadas transacciones SMB. En particular, el sistema no valida adecuadamente ciertas estructuras de datos, lo que permite a un atacante manipular cómo se asigna y organiza la memoria en el heap del kernel de Windows.

El ataque funciona enviando una serie de paquetes SMB especialmente diseñados que fuerzan al sistema operativo a organizar la memoria de forma predecible. Esta manipulación permite al atacante provocar un desbordamiento de memoria en el heap (heap overflow), lo cual, con suficiente precisión, posibilita la ejecución de código arbitrario. Una vez que el código malicioso ha sido inyectado en la memoria, una función vulnerable del sistema termina ejecutándolo sin saberlo, con privilegios elevados del sistema (SYSTEM). Esta ejecución remota de código no requiere autenticación previa, lo que convierte a EternalBlue en un vector de ataque extremadamente efectivo y peligroso.

Enumeración de puertos/servicios

┌──(root㉿kali)-[/home/kali/Documents/HTB/LEGACY]
└─# nmap -sCV --open -T4 -v -n 10.10.10.4 
chevron-right📌 Parámetroshashtag
  • sCV:

    • -sCEjecuta scripts de detección predeterminados → Usa los scripts de nmap ubicados en /usr/share/nmap/scripts/, los cuales buscan información adicional en los puertos abiertos.

    • -sVDetección de versiones → Intenta identificar el software y su versión en los puertos abiertos.

  • -nNo resuelve nombres de dominio (reduce el tiempo del escaneo).

  • --openMuestra solo puertos abiertos → Filtra la salida para no mostrar puertos cerrados o filtrados.

  • -T4Ajusta la velocidad del escaneo → T4 es un nivel "agresivo" que acelera el escaneo, útil en redes rápidas.

  • -vModo verbose → Muestra más detalles sobre el progreso del escaneo.

Resultado:

Algunos de los elementos que nos reveló el escaneo de nmap y que son relevantes para este contexto:

  • Puerto 445/tcp abierto: Indica que el servicio microsoft-ds (SMB) está activo, lo cual es el canal principal por donde se ejecuta el exploit.

  • Puerto 135/tcp abierto: Señala que el servicio Microsoft RPC está disponible, necesario para el envío de llamadas RPC malformadas utilizadas en el ataque.

  • Sistema operativo detectado como Windows XP:

    • Confirmado por Service Info y el script smb-os-discovery.

    • Windows XP es uno de los sistemas directamente afectados por la vulnerabilidad MS08-067.

  • SMBv1 en uso (SMB2 fallido):

    • El script smb2-time indica que la negociación SMB2 falló, lo cual confirma que solo está habilitado SMBv1, un protocolo obsoleto y vulnerable.

  • Firma de mensajes SMB deshabilitada:

    • Según el script smb-security-mode, message_signing: disabled, lo que facilita ataques como este al no haber verificación de integridad en las comunicaciones SMB.

  • CPE detectado:

    • cpe:/o:microsoft:windows_xp refuerza la conclusión de que el sistema corre Windows XP sin actualizaciones relevantes para mitigar esta vulnerabilidad.

SMB vulnerability enumeration using NSE scripts.

Pero para estar seguros de que este equipo es vulnerable al MS08-067 vamos a realizar un escaneo de vulnerabilidades sobre el SMB implementando scripts de la base de datos de nmap de la siguiente manera:

Este comando de Nmap ejecuta una exploración más especializada para detectar vulnerabilidades conocidas en el protocolo SMB usando scripts NSE (Nmap Scripting Engine). Los elementos que reveló este escáner son los siguientes:

  • smb-vuln-ms08-067:

    • Resultado: VULNERABLE

    • Confirma que el sistema es vulnerable al exploit MS08-067 (CVE-2008-4250).

    • Esto valida directamente que se puede ejecutar el ataque que permite ejecución remota de código vía una solicitud RPC maliciosa.

    • Esta prueba automatizada verifica el comportamiento del sistema frente a patrones conocidos sin causar daño.

  • smb-vuln-ms17-010:

    • Resultado: VULNERABLE

    • El sistema también es vulnerable a MS17-010 (CVE-2017-0143), también conocida como EternalBlue, otra vulnerabilidad crítica en SMBv1 usada en ataques como WannaCry.

    • Este resultado indica que hay más de una vía para obtener ejecución remota sobre este host.

  • smb-vuln-ms10-061:

    • Resultado: Script execution failed

    • El script no pudo ejecutarse correctamente, posiblemente por una incompatibilidad o error en la comunicación con el servicio objetivo. Esto no significa que no sea vulnerable, solo que el script no pudo determinarlo.

  • smb-vuln-ms10-054:

    • Resultado: false

    • El sistema no parece ser vulnerable al MS10-054, que afecta el modo en que SMB maneja ciertas peticiones de red.

Ahora vamos a buscar algún exploit disponible en la base de datos de msfconsole para la vulnerabilidad MS08-067, luego lo configuraremos para lanzarlo contra el equipo objetivo

MS08-067 – "NetAPI exploit" con MSFConsole

¿Cómo están compuestos los identificadores como MS17-010, MS08-067, etc.?

Estos identificadores pertenecen a los boletines de seguridad de Microsoft, y tienen una estructura estándar:

  • Prefijo "MS": Significa "Microsoft Security Bulletin".

  • Dos primeros dígitos: Indican el año de publicación del boletín.

  • Tres dígitos siguientes: Son el número secuencial del boletín publicado ese año.

Por ejemplo:

  • MS08-067:

    • MS: Microsoft Security Bulletin.

    • 08: Año 2008.

    • 067: 67º boletín de seguridad publicado en 2008.

  • MS17-010:

    • Año 2017, décimo boletín de seguridad.

    • Asociado a EternalBlue.

  • MS10-054 y MS10-061:

    • Publicados en 2010, son los boletines 54 y 61 respectivamente.

    • Corresponden a otras vulnerabilidades en el stack de red de Windows (por ejemplo, SMB y Print Spooler).

Last updated