lunes, 16 de noviembre de 2020

TryHackMe - LazyAdmin

 Bienvenidos una vez más a Who is secure. Hoy vengo con el walkthrough de una máquina de TryHackMe, LazyAdmin. En esta máquina vamos a explotar una subida de archivos del CMS SweetRice para conseguir ejecutar código y vamos a escalar privilegios gracias a unos fallos de permisos en un script y en el archivo sudoers.

Para empezar, como siempre, vamos a hacer un escaneo con furious para obtener los puertos abiertos y con nmap para ver qué servicios contienen y sus versiones. Yo tengo configurados estos comandos en un script en bash al que llamo con la orden "scan".

 

 

 Como vemos, sólo tenemos una página web y SSH activos, así que vamos a inspeccionar la web.


 

 

A simple vista, es una instalación por defecto de Apache2. Vamos a enumerar directorios con ffuf.


 

 El directorio "content" puede ser interesante, así que vamos a inspeccionarlo.



Como veis, podemos identificar el CMS que usa, SweetRice. Ahora vamos a realizar una búsqueda de exploits para este CMS con searchsploit.



No he podido detectar la versión del CMS pero el fallo de copias de seguridad me llama la atención y es para la última versión con fallos encontrados. Vamos a explotarlo.



El fallo se basa únicamente en que las copias se guardan en la ruta "/inc/mysql_backup" y como se puede apreciar, funciona. Vamos a pasar el archivo a nuestra máquina y lo inspeccionamos.



Aquí podemos ver los datos que almacena la base de datos, entre esos datos, el usuario y el hash. Ahora necesitaremos varias cosas, primero, obtener la contraseña que corresponde a ese hash y después encontrar el panel de acceso. Lo primero será obtener la contraseña. El procedimiento que suelo seguir es pasar el hash por CrackStation por si lo consigue automáticamente y luego hacer fuerza bruta con John. En este caso no será necesario usar John.



Por el bien de la plataforma, corto el resultado, pero ya tenemos la contraseña que vamos a usar como podéis apreciar por el código de colores.

Ahora necesitamos encontrar el panel de entrada. Como es un CMS lo primero que hago es buscar en la documentación o en distintas páginas las rutas por defecto. En este caso, gracias a vulners he encontrado el directorio "as".


 

 Ya tenemos acceso al panel de administración donde podemos identificar que efectivamente, se trata de la versión 1.5.1 de SweetRice. Si recordamos la lista de fallos que podíamos explotar, había una subida de archivos que podemos aprovechar.



En el exploit vemos las variables que necesitamos. Yo he modificado el host y ya tenemos el usuario y la contraseña que vamos a usar. Sólo falta elegir la shell que queramos usar, esto va a elección de cada uno.



Según el exploit, hemos subido correctamente el archivo, para si vamos a la ruta vemos que no se encuentra ahí. Esto es debido a que el CMS tiene un filtro para evitar la subida de ciertos archivos, por esto necesitamos cambiar la extensión del archivo a otra que permita ejecutar código en php y que no rechace el CMS. Normalmente esto se descubre con una lista de extensiones metida en Burp, pero en este caso simplemente tenía que hacer caso al script, donde te pone de ejemplo de archivos ".htaccess", "shell.php5" o "index.html". La extensión ".php5" nos servirá.


 

 

 Como veis, podemos ejecutar comandos. Lo siguiente será mandarnos una reverse shell.


 Compruebo que python está instalado y mando una reverse shell a mi máquina.



Como veis, ya tenemos la conexión, ahora tenemos que buscar la forma de escalar privilegios. Vamos a ver que resultado tenemos al enumerar los comandos disponibles con "sudo".



Como veis, podemos ejecutar un archivo ".pl" como root sin contraseña, vamos a investigar más.



En el directorio home del usuario "itguy", el único del sistema, podemos ver dos archivos interesantes, la flag de usuario, a la que tenemos acceso ya, y el archivo ".pl" que pertenece a "root" y que podemos leer y ejecutar. Viendo el contenido del archivo, podemos ver que el script ejecuta otro script, este último hecho en bash, ubicado en /etc con nombre "copy.sh".


 

 

 Si seguimos la ruta que nos ofrece el script en perl, podemos ver los permisos de "copy.sh". Según los permisos asignados, podemos escribir en él, así que vamos a modificarlo para mandar otra reverse shell a nuestra máquina.

 



Ahora vamos a ejecutar el archivo perl que se encuentra en el home del usuario mientras que ponemos el puerto 6002 a la escucha.


¡Ya hemos rooteado la máquina víctima! Con esto termina el CTF. 


Muchas gracias por leer el walkthrough completo, espero que os haya gustado. Nos vemos en la próxima entrada. Recordad que tenéis abajo el canal de Telegram y la cuenta de Twitter, donde comparto las entradas nuevas y en el lateral derecho tenéis blogs de interés y la dirección de bitcoin. ¡Hasta la próxima!

No hay comentarios:

Publicar un comentario