Buff

Publicado: 16 de Junio de 2025 Autor: Josรฉ Miguel Romero aKa x3m1Sec Dificultad: โญ Easy

๐Ÿ“ Descripciรณn

Buff es una mรกquina Windows de dificultad fรกcil que presenta vulnerabilidades en una aplicaciรณn web de gestiรณn de gimnasio. La explotaciรณn inicial se basa en un exploit pรบblico para el Gym Management System v1.0, que permite la ejecuciรณn remota de cรณdigo sin autenticaciรณn mediante una vulnerabilidad de subida de archivos maliciosos.

Para la escalada de privilegios, se aprovecha una vulnerabilidad de Buffer Overflow en el servicio CloudMe v1.11.2, que se ejecuta localmente en el puerto 8888. La explotaciรณn requiere el uso de port forwarding para acceder al servicio y posteriormente ejecutar un shellcode personalizado para obtener privilegios de administrador.

๐ŸŽฏ Objetivos de Aprendizaje

  • Explotaciรณn de vulnerabilidades en aplicaciones web

  • Tรฉcnicas de evasiรณn de filtros de subida de archivos

  • Buffer Overflow en aplicaciones Windows

  • Port forwarding con Chisel

  • Uso de SMB para captura de hashes NTLMv2

๐Ÿ”ญ Reconocimiento

๐Ÿ” Ping para verificaciรณn en base a TTL

๐Ÿ’ก Nota: El TTL cercano a 128 sugiere que probablemente sea una mรกquina Windows.

๐Ÿš€ Escaneo de puertos

๐Ÿ”ฌ Enumeraciรณn de servicios


๐ŸŒ Enumeraciรณn Web

๐Ÿ‹๏ธ Puerto 8080 - Apache/2.4.43

URL: http://10.10.10.198:8080/

๐ŸŽฏ Informaciรณn Relevante Encontrada

En la secciรณn de contacto se revela:

  • Software: Gym Management System

  • Versiรณn: v1.0

  • Esta informaciรณn es crucial para buscar vulnerabilidades conocidas

Fuzzing de directorios

๐Ÿ“ Anรกlisis de Recursos Encontrados

Revisamos y analizamos cada uno de los recursos encontrados:

๐Ÿ”ง /edit.php - http://10.10.10.198:8080/edit.php

  • Revela Internal Path Disclosure

  • Muestra rutas internas del sistema

**๐Ÿ“ค /upload.php ** - http://10.10.10.198:8080/register.php

  • Pรกgina de subida de archivos

  • Vulnerable - No requiere autenticaciรณn

  • Revela Internal Path Disclosure

  • Punto crรญtico para la explotaciรณn

๐Ÿ“‚ /upload/ - http://10.10.10.198:8080/upload/

  • Directorio de archivos subidos

  • Accesible pรบblicamente

๐Ÿ“– /README.MD - http://10.10.10.198:8080/README.MD

  • Contiene informaciรณn del proyecto

  • Confirma el uso de Gym Management System

๐Ÿ–ฅ๏ธ /cgi-bin/printenv.pl Script en Perl que muestra variables de entorno del servidor: http://10.10.10.198:8080/cgi-bin/printenv.pl

Parece que se trata script en perl ubicado en el directorio cgi-bin, que tรญpicamente se usa para ejecutar scripts CGI (Common Gateway Interface) cuyo propรณsito es imprimir todas las variables de entorno del servidor web en la salida HTTP.

๐Ÿ’ฅ Explotaciรณn Inicial

๐Ÿ”Ž Bรบsqueda de Vulnerabilidades - Gym Management System

Habรญamos enumerado un servicio llamado Gym Management y vemos que la versiรณn que se estรก utilizando ha presentado vulnerabilidades en el pasado y ademรกs hay exploits pรบblicos:

Uno de los exploits permite una ejecuciรณn remota de comandos sin autenticaciรณn debido a un mal manejo en la subida de archivos.

Resultados encontrados:

  • CVE-2020-15928: Gym Management System 1.0 - Unauthenticated Remote Code Execution

  • Exploit ID: 48506

  • Tipo: Remote Code Execution sin autenticaciรณn

๐Ÿ” Detalles clave de la vulnerabilidad

  1. upload.php no exige autenticaciรณn - Cualquier usuario puede acceder

  2. Parรกmetro id por GET - Define el nombre del archivo a subir

  3. Validaciรณn insuficiente - Permite dobles extensiones (ej: poc.php.png)

  4. Verificaciรณn MIME dรฉbil - Solo valida cabeceras HTTP falsificables

  5. Ejecuciรณn de cรณdigo PHP - Los archivos subidos pueden contener cรณdigo malicioso

  6. Renombrado basado en extensiรณn - Permite ejecuciรณn de PHP

๐ŸŽฏ Proceso de Explotaciรณn

  1. Subida de archivo malicioso con doble extensiรณn

  2. Bypass de filtros mediante falsificaciรณn de MIME type

  3. Ejecuciรณn de cรณdigo PHP en el servidor

  4. Acceso vรญa URL con parรกmetros GET para comandos

Descargamos y ejecutamos el exploit y vemos que nos pide definir como parรกmetro รบnicamente la URL del objetivo:

Resultado: โœ… Webshell obtenida exitosamente

๐ŸŽฏ Captura de Hash NTLMv2

Configuraciรณn del servidor SMB: Una posible vรญa de explotaciรณn aquรญ serรญa levantarnos en nuestro host de ataque un servidor SMB usando impacket y a continuaciรณn desde el host en el que acabamos de subir la webshell hacer una peticiรณn a un recurso obligando asรญ al usuario de la mรกquina a autenticarse y obtener su hash NTLMv2, que aunque no nos permite autenticarnos haciendo pass the hash sรญ que podemos intentar crackearlo para obtener su contraseรฑa:

A continuaciรณn usamos hashcat y el diccionario rockyou para crackearlo y obtener la contraseรฑa del usuario shaun pero en este caso vemos que no nos da la contraseรฑa:

โŒ El hash no pudo ser crackeado

Este mรฉtodo no nos sirve cรณmo vรญa potencial de explotaciรณn, sin embargo, no estรก todo perdido. Alternativamente podemos usar el recurso SMB que hemos compartido en el cual tenemos la herramienta netcat para usarla y establecer conexiรณn con mi host de ataque:

๐Ÿš Reverse Shell alternativa

Primero inicio el listener con netcat en mi host de ataque:

A continuaciรณn hago una peticiรณn al recurso compartido smbShare de mi host de ataque usando netcat para conectarme al listener de mi host de ataque:

A los pocos segundos recibo la conexiรณn reversa confirmando asรญ la explotaciรณn y el acceso al sistema pudiendo obtener la primera flag en el directorio Desktop del usuario shaun:

Resultado: โœ… Shell reversa como usuario buff\shaun

๐Ÿ” Escalada de Privilegios

๐Ÿ” Enumeraciรณn del Sistema

๐Ÿ“ Archivos Interesantes Encontrados

Enumerando los directorios del usuario shaun encontramos lo siguiente:

๐Ÿ“„ C:\Users\shaun\Documents\Tasks.bat

๐Ÿ“ฆ C:\Users\shaun\Downloads\CloudMe_1112.exe

๐Ÿ”Ž Bรบsqueda de Vulnerabilidades - CloudMe

Buscamos informaciรณn pรบblica de este servicio asรญ como posibles exploits y encontramos bastantes exploits relacionados con una explotaciรณn de Buffer Overflow:

๐ŸŒ Verificaciรณn del Servicio

Lo primero que necesitamos saber es si CloudMe estรก ejecutรกndose en la mรกquina. El puerto por defecto es el 8888. Usamos netstat -natpara confirmarlo

๐Ÿ”„ Port Forwarding con Chisel

Dado que este puerto no estรก expuesto, necesitamos hacer port forwading para poder acceder a รฉl desde nuestro host de ataque. Para ello podemos usar chisel:

Primero descargamos chisel server en su versiรณn para linux, ya que esta la ejecutaremos en nuestro host de ataque a modo de server:

Ahora nos descargamos la versiรณn para windows

La transferimos al host windows. Parece que aquรญ certutil da problemas asรญ que usamos curl

Ejecutamos chisel como cliente usando el puerto 9003 que habรญamos definido en el servidor chisel para hacer el redireccionamiento del puerto 8888 del host de la mรกquina windows al puerto 8888 de nuestro host de ataque:

๐Ÿ’ฃ Desarrollo del Exploit

๐ŸŽฏ Generaciรณn de Shellcode

Ahora, debemos generar el payload usando el shellcode que tenemos en el exploit para que en lugar de cargar la calculadora como viene por defecto en la PoC ejecute una shell reversa, para ello usaremos msfvenom de la siguiente forma:

๐Ÿ”ง Modificaciรณn del Exploit

Exploit base: 48389.py Modificaciones realizadas:

  • Reemplazo del payload de calculadora por reverse shell

  • Configuraciรณn de IP y puerto de ataque

  • Ajuste de padding y NOPs

Exploit final:

๐ŸŽฏ Ejecuciรณn del Buffer Overflow

Iniciamos un listener en el puerto 443 de nuestro host de ataque usando netcat

Ejecutamos el exploit y ganamos acceso a la mรกquina como Administrador:

Resultado: โœ… Shell como NT AUTHORITY\SYSTEM

Finalmente obtenemos la flag:

Last updated