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|}}