Hacemos el escaneo de nmap: {{pasted_image_20231029212628.png|}} Y esto es lo que tenemos en el puerto 80: {{pasted_image_20231029212659.png|}} Probamos en hacer fuzzing web y nos encontramos con el directorio /cloud: {{pasted_image_20231029212831.png|}} Volvemos a hacer fuzzing sobre este nuevo directorio, y vemos /images: {{pasted_image_20231029214341.png|}} Y sobre /images ya no encontramos nada: {{pasted_image_20231029214433.png|}} Vemos que la web de /cloud hace una petición a una página web en busca de una imagen, y seguramente la guarde en el directorio /images: {{pasted_image_20231029212844.png|}} Por lo que si alojamos en un servidor http con python algún archivo, podemos probar a ver si hace alguna petición: {{pasted_image_20231029213355.png|}} Pero vemos que no hace nada: {{pasted_image_20231029213413.png|}} Por lo que interceptamos con burp suite: {{pasted_image_20231029213429.png|}} Pero vemos que no recibimos la petición: {{pasted_image_20231029213442.png|}} Pero si probamos en cambiar la extensión a jpg por ejemplo (simulando que se trate de una imagen), vemos que ahora sí hace la petición: {{pasted_image_20231029213525.png|}} {{pasted_image_20231029213537.png|}} Una vez comprobado esto, nuestro objetivo será que la web nos permita subir una webshell en php; y para ello tenemos esta url que nos indica cómo hacerlo: https://book.hacktricks.xyz/pentesting-web/file-upload {{pasted_image_20231029214856.png|}} Por tanto, en burp suite vamos a probar en inyectar este bypass, utilizando .php%0a.jpg: {{pasted_image_20231029215453.png|}} Enviamos la petición y vemos que funciona: {{pasted_image_20231029215021.png|}}Por tanto, ahora tenemos que ponernos con netcat a la escucha: {{pasted_image_20231029215046.png|}} Y en la web vemos que se cambia la estructura y además se nos muestra la ruta donde se guardó el archivo malicioso en php: http://10.10.141.241/cloud/images/reverse.php.jpg {{pasted_image_20231029215621.png|}} Por tanto vamos a poner dicha url en el navegador: {{pasted_image_20231029215603.png|}} Y recibimos la conexión: {{pasted_image_20231029215633.png|}} Una vez dentro, vemos un archivo llamado dataset.kdbx: {{pasted_image_20231029220005.png|}} Nos lo pasamos a nuestra máquina atacante para intentar crackearlo con john the ripper: {{pasted_image_20231029220041.png|}} Y lo crackeamos con john the ripper: {{pasted_image_20231029220158.png|}} 741852963 Por tanto, nos abrimos el keepass y vemos las contraseñas que hay dentro: {{pasted_image_20231029220304.png|}} sysadmin:Cl0udP4ss40p4city#8700 Entramos vía ssh y estamos dentro: {{pasted_image_20231029220505.png|}} Pero dentro de la carpeta /scripts/lib/ nos encontramos con que no podemos editar ninguno de los archivos, pero sin embargo nuestro usuario es el propietario de la carpeta: {{pasted_image_20231029221057.png|}} Y llama la atención el fichero backup.inc.php porque tiene un tamaño diferente: {{pasted_image_20231029222850.png|}} Por tanto miramos como inyectar el código de pentestmonkey en este archivo y así escalar privilegios: {{pasted_image_20231029222043.png|}} Y lo compartimos con la máquina víctima, donde le vamos a poner el mismo nombre que el script php que queremos reemplazar: {{pasted_image_20231029222147.png|}} Y eliminamos el fichero backup.inc.php y volvemos a copiar el archivo nuevo: rm /home/sysadmin/scripts/lib/backup.inc.php cp backup.inc.php /home/sysadmin/scripts/lib/backup.inc.php {{pasted_image_20231029221546.png|}} Y ahora si nos ponemos en la escucha con netcat, deberíamos recibir la reverse shell como root: {{pasted_image_20231029222335.png|}}