Hacemos el reconocimiento con nmap, donde vemos abiertos los puertos 80 y 8080:
{{pasted_image_20231024112441.png|}}
Procedemos a hacer fuzzing web con gobuster en el puerto 80, donde vemos el directorio /gallery:
{{pasted_image_20231024112504.png|}}
{{pasted_image_20231024112617.png|}}
En este directorio, nos encontramos con un panel de login, donde probamos un bypass rápido de una sql injection y funciona:
{{pasted_image_20231024112944.png|}}
{{pasted_image_20231024113002.png|}}
Pero lo interesante será encontrar otras bases de datos dentro del sistema para obtener credenciales de usuarios, por lo que interceptamos la petición con burpsuite y hacemos un ataque con sqlmap:
{{pasted_image_20231024113446.png|}}
Y lo recibimos con burp suite:
{{pasted_image_20231024113850.png|}}
Lo copiamos a un txt y esto es lo que tendremos que pasarle a sqlmap:
{{pasted_image_20231024113949.png|}}
sqlmap -r peticion.txt --dbs
Y tras ejecutar lo anterior, vemos que nos encuentra 2 bases de datos:
{{pasted_image_20231024114105.png|}}
Vamos a obtener las tablas de gallery_db:
sqlmap -r peticion.txt -D gallery_db --tables
{{pasted_image_20231024114220.png|}}
Ahora las columnas de la tabla users:
sqlmap -r peticion.txt -D gallery_db -T users --columns
{{pasted_image_20231024114345.png|}}
Y ahora vamos a obtener los registros de username y password:
sqlmap -r peticion.txt -D gallery_db -T users --dump -C username,password --dump
Y encontramos el hash del usuario admin:
{{pasted_image_20231024115251.png|}}
admin:a228b12a08b6527e7978cbe5d914531c
Pero esto es un rabbit hole, por lo que seguimos investigando, por lo que vemos un panel para subir una webshell en php:
{{pasted_image_20231024115350.png|}}
Creamos el php malicioso utilizando la plantilla de pentest monkey y ponemos nuestra IP y puerto a la escucha:
{{pasted_image_20231024115458.png|}}
La subimos y después hacemos clic sobre ella:
{{pasted_image_20231024115916.png|}}
Y habremos recibido la reverse shell:
{{pasted_image_20231024115933.png|}}
Una vez dentro, hay una ruta donde se guardan credenciales, la cual es la siguiente:
/var/backups/mike_home_backup/documents
{{pasted_image_20231024120200.png|}}
Pero ninguna de estas contraseñas funciona:
{{pasted_image_20231024120251.png|}}
Encontramos un .bash_history en este mismo directorio:
{{pasted_image_20231024120350.png|}}
Y aquí sí encontramos la contraseña:
{{pasted_image_20231024120414.png|}}
su mike
mike:b3stpassw0rdbr0xx
{{pasted_image_20231024120742.png|}}
Y si ejecutamos un sudo -l, vemos que podemos ejecutar un script como root:
{{pasted_image_20231024120810.png|}}
Este es su contenido:
{{pasted_image_20231024120825.png|}}
Si elegimos la opción de read, lo que hace es lanzarnos un nano como root:
{{pasted_image_20231024121200.png|}}
{{pasted_image_20231024121207.png|}}
Si miramos en gtfobins como escalar privilegios con nano, nos encontramos con lo siguiente:
{{pasted_image_20231024121233.png|}}
Presionamos control y r para escribir el siguiente payload:
{{pasted_image_20231024121313.png|}}
Presionamos control y x y ya somos root:
{{pasted_image_20231024121645.png|}}