Buscar

23 febrero 2021

Solución máquina Vulnhub (DevGuru)


Volvemos de nuevo con otra de las máquinas de la gente de VulnHub. En este caso la máquina es DevGuru que según su creador es de "nivel intermedio dependiendo de la experiencia xD.





Espero que no sea una ida de pinza, que parece que va a ser algo normal y luego la cosa se pone tensa (como dice S4vitar) y no hay quien de con ello.









Para no perder costumbre, vamos con nmap para ver que nos lista. Comentar que al arrancar la máquina ya te muestra la IP, lo que me parece un detalle bonico.





Bueno, nmap nos dice que hay un puerto 80 y un 22 con un SSH que parece que tiene exploit asociado, pero como dijo Jack el destripador, vayamos por partes.









Tras revisar la web y no dar con nada aparentemente llamativo, decido probar con dirbuster a ver que saca. Mientras dejo como siempre otra pestaña con un nmap a todos los puertos.









Aquí ya hay cosas interesantes, como el directorio backend que nos lleva a un panel de login con el típico cartel de ¿"has olvidado tu password"? Que te lleva a la página para resetear la contraseña.













Lo pruebo y veo que hay una enumeración de usuarios. Podría probar con algún diccionario, pero no sé si me va a cortar el acceso o alguna movida rara, así que, de momento, me lo guardo.









Por cierto que el CMS que usa se llama October y tiene bastantes CVE asociados, pero de momento desconozco la versión, así que, a otra cosa.





Revisando documentación me percato que no tiene un robots.txt o un CHANGELOG.txt como en Drupal, este tiene un .htaccess abierto y accesible, que además, nos muestra algo llamativo.









Según su web, parece ser un reemplazo para phpMyadmin. Veamos que ha sacado nmap en todos los puertos.









Vale, pues puerto nuevo, el 8585 y aparece con Gitea, que al entrar nos muestra esta imagen.









Vale, como esto al final es de Git, me recuerda a una auditoría que hice en mi paso por Innotec en la que me encontré algo parecido y tuve que usar gitdumper.





Ojo que para instalarlo es con python3, que si no, da problemas. Total, que después de instalarlo, la cosa queda así:





python3 git-dumper.py http://192.168.204.170/.git devguru





Ahora miramos el fichero database.php que está en devguru/config









Y encontramos todos los datos de la base de datos. Es el momento de probar ese acceso en la parte del login web de adminer.









Después de revisar algunas tablas, doy con un usuario que se llama Frank Morris y que tiene por contraseña es siguiente hash:





$2y$10$bp5wBfbAN6lMYT27pJMomOGutDF2RKZKYZITAupZ3x8eAaYgN6EKK





Me podría poner a mirar que tipo de hash es, como romperlo, etc, pero creo que tengo una idea más rápida xD. La cosa es, definir una contraseña nueva (culodemono) hashearla y ponerla en la base de datos, después, entramos en la parte del login con el usuario Frank y la contraseña culodemono.





Y ¡bingo! Ya lo tengo









Esto se está complicando, he encontrado (después de un buen rato de revisar todo, no voy a mentir) una web en la que indican que se puede ejecutar código php desde una plantilla.





Así que, me creo una plantilla, y puedo ejecutar comandos en la máquina.













Y ahora, si guardo los cambios y le doy a "preview", ya lo tengo.













Me lo pongo en "ver código" porque me resulta más cómodo :D. Momento de hacer una reversa y de hacerla interactiva como vimos hace poco en otra máquina de Vulnhub.









Una vez dentro, voy a clonar LinEnum a ver que resultados me saca.









Pues nada más terminar, lo primero que veo es un fichero de backup, así que, vamos a leerlo porque igual tiene cosas suculentas.









Como podemos ver en la imagen anterior, tenemos nombre de usuario y contraseña para acceder.





Entramos de nuevo en la parte de /adminer.php y navegamos a la base de datos de guitea, vamos a la tabla user y en el usuario Frank, volvemos a cambiar la contraseña.





Usamos esta web para obtener el hash y además, debemos modificar el valor del campo passwd_hash_algo a bcrypt. una vez guardado, vamos al login de Gitea, en el puerto 8585 que descubrimos con nmap.









Una vez hemos accedido como Frank, podemos ver lo siguiente:









Madre mía, esto es un poco locura. Ya os digo yo, que para mí, esto no es nivel medio... Bueno, la película aquí es que hay que crear un repositorio nuevo (podría modificar el que hay, pero mejor no liarla), y una vez creado, entramos y vamos a la parte de settings a Git Hooks y en el pre-recive, le metemos la reversa.









Debemos guardarlo y actualizarlo. El siguiente paso es ir a la parte de code, y editamos el fichero README.md, lo único que hay que hacer es da un par de intros en el final del fichero para que actualice. Y obviamente abrir otro netcat a la escucha.





Una vez que lo actualizamos, tenemos otra shell. Así que a repetir los pasos para hacerla "full interactive".









Guya, ya somos Frank en la máquina.





Me encuentro con el user.txt en el home de Frank, que entiendo que será (o no) el primer flag.













Pues visto lo visto vamos a por una escalada de privilegios xD. Recuerdo haber leído algo sobre escalada de privilegios con la versión de sudo, vamos a probarlo.





sudo -u#-1 sqlite3 /dev/null '.shell /bin/bash'









Ouh yeah! pues si que rula xD. Ya soy root en la máquina, por fin. El último paso es leer los ficheros TXT que aparecen en el home de root.









Y con esto, hemos terminado.





Nos vemos en la siguiente.


0 comentarios:

Publicar un comentario