Hacemos el reconocimiento con nmap:

Y este es el puerto 80:

Pero accedemos también al puerto 8765 para ver qué hay:

Vamos a hacer fuzzing dentro de esta ruta:

Y dentro del directorio custom encontramos el directorio js, que a su vez tiene estos archivos:

Guardamos este users.bak:

Y si leemos el contenido de este archivo vemos unas credenciales:

Pero la contraseña de este usuario admin viene hasheada, por lo que vamos a crackearla con john the ripper:

Estas son las credenciales:

admin:bulldog19

Y con esto ya entramos dentro de la web:

Si miramos el código fuente de la página podemos ver que nos dan una pista de una clave SSH para el usuario Barry:

Teniendo en cuenta la existencia de un archivo dontforget.bak, probamos en descargarlo:

Y vemos que dentro de este archivo hay una referencia a xml, lo que implica que quizá estemos ante un sml external entity:

Y ahora vamos a la web donde podemos insertar el XXE e interceptamos la petición con burp suite:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE data [
   <!ELEMENT data ANY >
   <!ENTITY name SYSTEM "file:///etc/passwd" >]>
<comment>
  <name>&name;</name>
  <author>Pavandeep</author>
  <com>Hacking Articles</com>
</comment>

Vemos un usuario llamado Barry, donde quizá podamos obtener su id_rsa:

Por lo que lanzamos de nuevo el payload para apuntar contra el id_rsa:

Nos guardamos este id_rsa para crackearlo con john the ripper:

Y obtenemos una contraseña:

Le ponemos un nombre correcto al id_rsa:

Y accedemos como el usuario barry y pasándole el id_rsa:

Si enumeramos los binarios vemos algo raro:

Vemos que se trata de un binario que monitoriza el navegador firefox:

Si hacemos un strings de este archivo, vemos que ejecuta el comando tail sin hacerlo desde la raiz, por lo que podemos hacer un path hijacking:

Por tanto guardamos dentro de archivo tail el comando de /bin/bash y lo exportamos al path del sistema, de tal forma que al ejecutar otra vez el binario, ganaremos acceso como root: