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
upload.phpno exige autenticaciรณn - Cualquier usuario puede accederParรกmetro
idpor GET - Define el nombre del archivo a subirValidaciรณn insuficiente - Permite dobles extensiones (ej:
poc.php.png)Verificaciรณn MIME dรฉbil - Solo valida cabeceras HTTP falsificables
Ejecuciรณn de cรณdigo PHP - Los archivos subidos pueden contener cรณdigo malicioso
Renombrado basado en extensiรณn - Permite ejecuciรณn de PHP
๐ฏ Proceso de Explotaciรณn
Subida de archivo malicioso con doble extensiรณn
Bypass de filtros mediante falsificaciรณn de MIME type
Ejecuciรณn de cรณdigo PHP en el servidor
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