Lo primero será hacer los reconocimientos de siempre:
Una vez hecho todo esto, vamos a acceder a la web, donde nos dará error por lo
que tendremos que añadirlo en el /etc/hosts:
Modificamos el fichero hosts:
Y ahora ya podremos acceder:
Ahora que estamos aquí, vamos a hacer un fuzzing para inspeccionar directorios ocultos, primero directorios:
Y nos encontró esto:
Aunque si ponemos estos directorios veremos que no funciona ninguno:
Vamos a hacer otro escaneo de virtual hosting con gobuster para encontrar más dominios ocultos, pero esta vez utilizaremos un diccionario específico mucho más grande descargado de github:
Y nos encontró este directorio, api-prod-horizontall.htb, por tanto para que nos
funcione en el navegador, tenemos que resolverlo en el fichero /etc/hosts:
Y ya podemos acceder a la página, que es esta:
Ahora vamos a hacer otro escaneo de este directorio web, pero con el diccionario normal:
Vamos a probar con admin y nos lleva a una web de strapi para loguearnos:
Aunque lo interesante es que con searchsploit nos encontró vulnerabilidades de strapi:
Ahora el objetivo es conocer la versión de strapi para poder buscar un exploit y vulnerabilidades, por tanto vamos a seguir buscando directorios pero esta vez con wfuzz por ejemplo, dentro de admin: WFUZZ
Y nos encuentra esto:
El de init es interesante porque tiene muchos caracteres e igual tenemos información interesante, por tanto hacemos un curl de esta dirección y obtenemos la versión de strapi:
Esta versión de strapi coincide con el exploit encontrado antes con searchsploit:
Vamos a descargar por ejemplo el penúltimo, que tiene mejor pinta:
Y si ejecutamos el exploit vemos sus instrucciones, donde sólo nos pide la URL:
Lo ejecutamos y nos restablece unas credenciales:
Y ahora estamos más o menos dentro de la máquina, aunque no podemos ejecutar casi comandos, pero sin embargo si me mando un ping a mi mismo funciona:
Y por otro lado me pongo a escuchar trazas icmp y me llega el ping:
Ahora podríamos mandarnos una shell reversa, pero no va a funcionar:
Por tanto vamos a hacer montando un servidor web con python para descargar el script con un curl desde la máquina víctima, por tanto primero montamos el html:
Ahora montamos el servidor web:
Y ahora desde la máquina víctima ejecutamos el comando curl de esta dirección y le pipeamos un bash, mientras estamos escuchando con netcat para recibir la shell:
Lanzamos el comando curl para recibir el comando que tenemos en el servidor:
Y donde estábamos escuchando con netcat ya tenemos la conexión:
Ahora navegando por los directorios, ya tenemos la flag:
Si ejecutamos el comando which pkexec y lo concatenamos con un ls -l podremos saber si la máquina es vulnerable para escalar privilegios por esta vía; y por ejemplo en este caso vemos que sí ya que se encuentra dentro del path:
Aunque también podemos comprobarlo con el comando find / -perm -4000 2>/dev/null:
Y buscamos pkexec en google y entramos en este repositorio de github:
Ahora clonamos este repositorio:
Comprimimos el contenido de todo este repositorio y lo compartimos con el servidor Python con la máquina víctima:
Nos lo enviamos a la máquina víctima y con el comando unzip lo descomprimimos dentro de la máquina víctima y ahora con el comando make lo compilamos:
Y ahora ejecutamos el script y ya somos el usuario root: