TryHackMe Gallery
URL: https://tryhackme.com/room/gallery666
Resumen:
Una máquina donde nos encontraremos ante un CMS vulnerable utilizando técnicas diferentes para conseguir una shell, una vez dentro una búsqueda para pasar de usuario y una escalada en la que hay que mirar un script que se ejecuta como root.
Reconocimiento
Empezamos con un escaneo “nmap” para ver que puertos nos encontramos abiertos en la máquina, vemos dos.
Ahora que ya sabemos los puertos vamos a ver qué información extra conseguimos de ellos.
WEB
Introducimos la IP en la url.
Buscamos con gobuster y encontramos algo.
Damos con un login y el nombre del CMS, intentamos credenciales por defectos sin éxito.
Como tenemos el nombre del CMS vamos a buscar si hay vulnerabilidades, en este caso encontramos dos.
Miramos ambas a ver cómo funcionan y nos da una idea de cómo poder logearnos. Si introducimos en el “username” “admin’– -“ entraremos.
Primero, antes de ejecutar el RCE, vamos a ver la base de datos gracias a “Simple Image Gallery System 1.0 - ‘id’ SQL Injection”, miramos como tenemos que hacerlo…………..
y la obtenemos.
Vamos viendo el contenido de las tablas y obtenemos el hash del usuario “admin”
Llegado a este punto, lo que nos interesa es entablarnos una “reverseShell”, esto lo podemos conseguir de dos formas diferentes.
- Método 1: Subida de fichero.
Mirando un poco la web vemos como podemos subir fichero en los álbumes, en teoría parece ser que sólo se pueden subir imágenes.
Pero no, nos deja subir también nuestra “reverseShell” en php.
Nos ponemos a la escucha y una vez que subamos el archivo nos la entabla.
- Método 2: Simple Image Gallery 1.0 - Remote Code Execution (RCE).
Con la ejecución de ésta vulnerabilidad, con sólo pasarle la IP nos dará una URL en la que podremos ejecutar comandos.
Como podemos ejecutar comandos también podremos entablarnos una “reverseshell” utilizando netcat.
Una vez dentro, mirando un poco como está formado todo el tema de directorios de usuarios, nos encontramos que tenemos dos, tiene la pinta de que tenemos que pasarnos al usuario “mike”.
Hacemos un pequeño reconocimiento a ver si vemos algo con lo que podamos convertirnos en ese usuario y podemos conseguir sus credeciales de dos formas:
- Reconocimiento manual:
Si miramos en su directorio vemos el siguiente archivo oculto el cual nos puede dar información relevante, pero tenemos un impedimento y es que no tenemos permisos para leerlo.
Buscamos y vemos en la carpeta “backups” que hay un backup del directorio “home” del usuario, en este caso si tenemos permisos para poder ver el archivo y al abrirlo vemos unas credenciales.
- Reconocimiento automático:
Utilizando la herramienta “LinPEAS” también logramos encontrar las credenciales del usuario.
Flag USER
Escalar Privilegios
Miramos si hay algún archivo que podamos ejecutar como root sin proporcionar contraseña y vemos el siguiente script en bash.
Miramos que hace y vemos que hay varias opciones a elegir y cada una hace una cosa, la que nos interesa es la de “read” ya que gracias a “nano” podemos hacer algo que veremos a continuación.
Como vemos podemos conseguir una shell gracias a “nano” haciendo lo siguiente.
Así que ejecutamos el script anterior como el usuario “root” y eligiendo la opción de “read”.
Ahora seguimos los pasos que nos indicaba anteriormente para conseguir una shell gracias al comando “nano” en el fichero “txt” que nos abre.
y listo…….