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: