Giddy

Publicado: 14 de Mayo de 2025 Autor: Josรฉ Miguel Romero aKa x3m1Sec Dificultad: โญ Medium

๐Ÿ“ Descripciรณn

Giddy es una mรกquina Windows de dificultad media que presenta mรบltiples vectores de ataque interesantes. La explotaciรณn inicial se logra a travรฉs de una vulnerabilidad de inyecciรณn SQL en una aplicaciรณn ASP.NET, permitiendo la captura de hashes NTLMv2 mediante tรฉcnicas de forzado de autenticaciรณn SMB. Una vez obtenido el acceso inicial, la escalada de privilegios se aprovecha de una configuraciรณn insegura en Ubiquiti UniFi Video, donde permisos heredados permiten la ejecuciรณn de cรณdigo arbitrario como NT AUTHORITY\SYSTEM.

Esta mรกquina es ideal para practicar tรฉcnicas de explotaciรณn web, cracking de hashes, evasiรณn de antivirus y escalada de privilegios en entornos Windows.

๐ŸŽฏ Objetivos

  • User Flag: Obtener acceso inicial mediante SQL injection y hash cracking

  • Root Flag: Escalar privilegios explotando permisos inseguros en servicios

๐Ÿ”ญ 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

๐Ÿ”— 80 HTTP

Enumeramos el servicio http en el puerto 80 y no es que haya gran cosa aparte de una divertida y peculiar imagen:

๐Ÿ“ Fuzzing de directorios

Realizamos fuzzing de directorios para ver si encontramos algรบn recurso potencial que utilizar como vector de ataque. Para ello empleamos las herramientas dirsearch y feroxbuster:

Encontramos รบnicamente dos recursos que analizar en profundidad "/remote" y "/mvc".

๐Ÿ” /remote - Windows Powershell web access

Encontramos un panel de login de "Windows Powershell web access" aunque un mensaje nos indica que debemos autenticarnos desde la versiรณn segura con https.

http://10.10.10.104/Remote/en-US/logon.aspx?ReturnUrl=%2fremote%2flogin

๐Ÿ•ธ๏ธ /mvc - Aplicaciรณn en ASP.net

https://10.10.10.104/mvc/

๐Ÿ’‰ Explotaciรณn Inicial - SQL Injection

๐Ÿ” Identificaciรณn de la vulnerabilidad

Al enumerar la aplicaciรณn, vemos que se trata de un sitio web en desarrollo y cuando seleccionamos sobre algunos de los productos vemos un parรกmetro GET en la llamada que podrรญa ser vulnerable a SQLi

Confirmamos la vulnerabilidad y enumeramos un usuario llamado jnogueira:

๐ŸŽฃ Captura de Hash NTLMv2

Al tratarse de una mรกquina windows, una de las cosas que merece la pena probar es intentar obtener un hash NTLMv2 forzando a la autenticaciรณn por parte del usuario de servicio de la base de datos contra un recureso de un servidor smb que levantemos en nuestro host de ataque usando imapacket de la siguiente forma:

Usamos el siguiente payload. El carรกcter ";" lo inyectamos para cerrar la cosulta e iniciar otra en la que haremos una peticiรณn a nuestro recurso compartido:

๐Ÿ”“ Cracking del Hash

E inmediatamente recibimos un hash NTLMv2 de un usuario llamado stacy:

Intentamos crackearlo usando hashcat y obtenemos la contraseรฑa de stacy

Credenciales obtenidas: stacy:xNnWo6272k7x

โŒ Intento de conexiรณn RDP

Verificamos que las credenciales son vรกlidas con el servicio RDP sin embargo no parece que podamos conectarnos

โœ… Acceso vรญa WinRM

Verificamos si stacy estรก dentro del grupo Remote Management System y podemos acceder a travรฉs del protocolo winrm:

Todo hace indicar que sรญ, asรญ que usamos evil-winrm para ganar acceso a la mรกquinacon las credenciales de stacy:

๐ŸŒ Autenticaciรณn alternativa con stacy a travรฉs de Windows Powershell Web Access

Podemos usar tambiรฉn las credenciales de stacy para acceder a la mรกquina a travรฉs de la herramienta WIndows Powershell Web access.

NOTA: Importante aquรญ especificar el carรกcter \ delante del usuario:

Accedemos al directorio Desktop del usuario stacy y obtenemos la primera flag:

## ๐Ÿ” Escalada de Privilegios

๐Ÿ” Enumeraciรณn del sistema

Al enumerar el directorio Documents de Stacy vemos que contiene un archivo poco comรบn:

๐ŸŽฅ Investigaciรณn de Ubiquiti UniFi Video

Buscamos informaciรณn pรบblica sobre este archivo y parece pertenecer a Ubiquiti UniFi Video un software de videovigilancia de Ubiquiti usado para gestionar cรกmaras IP.

Buscamos posibles exploits sobre este software encontramos que existe uno y ademรกs que permite la escalada de privilegios en WIndows para la versiรณn 3.7.3

Exploit Reference: https://www.exploit-db.com/exploits/43390

๐Ÿ”ง Anรกlisis del Exploit

Si miramos el detalle de la explotaciรณn nos indica que deberรญa existir en el sistema una ruta: de instalaciรณn de la herramienta en C:\ProgramData\unifi-video que comprobamos que existe:

๐Ÿ“‹ Resumen del Exploit

Ubiquiti UniFi Video para Windows se instala por defecto en C:\ProgramData\unifi-video\ y tambiรฉn se entrega con un servicio llamado "Ubiquiti UniFi Video". Su ejecutable "avService.exe" se ubica en el mismo directorio y tambiรฉn se ejecuta bajo la cuenta NT AUTHORITY/SYSTEM.

Los permisos predeterminados de la carpeta C:\ProgramData\unifi-video se heredan de C:\ProgramData y no se anulan explรญcitamente, lo que permite a todos los usuarios, incluso a los sin privilegios, aรฑadir y escribir archivos en el directorio de la aplicaciรณn.

Al iniciar y detener el servicio, se intenta cargar y ejecutar el archivo en C:\ProgramData\unifi-video\taskkill.exe. Sin embargo, este archivo no existe en el directorio de la aplicaciรณn por defecto.

Al copiar un archivo taskkill.exe arbitrario en C:\ProgramData\unifi-video\ como un usuario sin privilegios, es posible escalar privilegios y ejecutar cรณdigo arbitrario como NT AUTHORITY/SYSTEM.

๐Ÿ› ๏ธ Explotaciรณn para Escalada

๐Ÿงช Primer intento - Payload con msfvenom

Generamos un payload con msfvenom:

Inicio un servidor web en python en mi host de ataque para disponibilizar el payload:

Y ahora usando certutil lo descargo en el directorio C:\ProgramData\unifi-video

Pero parece que el antivirus Defender nos borra el ejecutable en cuanto lo detecta o en cuanto lo ejecutamos.

๐Ÿ›ก๏ธ Evasiรณn de Antivirus

Usaremos prometheusuna simple shell inversa TCP de C++, que se usarรก para crear el archivo malicioso taskkill.exe. Se han cambiado los nombres de las funciones y se han eliminado los comentarios para reducir la probabilidad de detecciรณn por antivirus basado en firmas

๐Ÿ“ฅ Descarga y configuraciรณn de Prometheus

Descargamos prometheus y editamos la IP y el puerto con el de nuestro host de ataque:

Para compilar esta herramienta necesitaremos tener instalada la herramienta Mingw-w64.

Compilamos con el siguiente comando

๐ŸŽฏ Ejecuciรณn del Exploit

Ahora inicamos un listener con netcat en el host de ataque donde recibirรฉ la conexiรณn reversa:

Transferimos nuevamente el binario taskkill.exe generado con prometheus al host Giddy usando certutil:

Ahora nos queda รบnicamente detener e iniciar el servicio para que se realice la llamada a taskkill.exe como NT System. Pero antes debemos de saber cรณmo se llama el servicio y cรณmo detenerlo e iniciarlo.

Buscamos el nombre del servicio en el registro de la siguiente forma:

Reiniciamos el servicio (es posible que requiera parar e iniciar varias veces)

Recibiremos la reverse shell como NT System:

Last updated