Lo primero será hacer los reconocimientos de siempre:
Si abrimos el navegador, esta es la web:
Vemos en el whatweb que nos muestra un dominio de doctor.htb, por lo que lo añadimos al etc/hosts:
Y vemos que ya nos reconoce la ruta:
Y por el puerto 8089 tenemos esto:
Por otra parte, si lo ponemos en plural “doctors.htb” nos entra en un panel de registro y login, por lo que vamos a registrarnos:
Una vez nos registramos, ya tenemos cuenta:
Y tenemos un apartado de New Message, donde podremos intentar un SSTI, por tanto lo intentamos:
Y vemos que aparentemente no se ejecuta, pero podemos mirar en el código html por detrás y veremos cómo si aparece el 49:
Y nos aparece este comentario diciendo que hay un directorio llamado archive:
Y en este directorio es donde si podemos ver el 49 y que por tanto es vulnerable a SSTI:
Ahora que vemos que es vulnerable a SSTI, vamos a ir al repositorio de payloadallthethings y encontramos este código de SSTI:
Por tanto vamos a ejecutar esto pero en vez de con un id, mejor ponemos por ejemplo un ls -l para listar los archivos:
Y vemos que por detrás, en el html sí funciona:
Ahora que tenemos ejecución remota de comandos, vamos a ganar una reverse shell, por tanto montamos un servidor de python con el código para enviarnos la shell reversa:
Y ahora desde la máquina víctima ejecutamos el curl para obtener este código e interpretarlo con bash:
Escuchamos con netcat y recibimos la conexión:
Pero no tenemos permisos para leer la flag:
Ahora si miramos dentro del directorio /var/logs/ apache2, hay un directorio llamado backup que esconde unas credenciales del usuario shaun:
Si ejecutamos un su shaun y ponemos de clave guitar123 ya somos el usuario shaun:
Ahora ejecutamos el comando para obtener una pseudo-consola y listo:
Y ya tenemos la flag:
























