Olymus

Olympus es una maquina em la que tendremos que enumerar los directorios del sitio web para luego tener que explotar un sql injecction para enumerar las credenciales validad y luego encontrar el nombre de nuestro archivo malicioso que le asigna la funcion y lo alamcena en la base de datos.

20231124191131.png

Walkthrough


Enumeración

Empezaremos con la enumeración de puertos haciendo uso de la herramienta de nmap

Primero enumeramos los puertos abiertos, así no nos tomara mucho tiempo como si enumeráramos servicios y versiones de cada uno de los puertos. En este caso nos da dos puertos, los cuales son 22 y 80

Enumerando las versiones y servicios de los puertos obtendremos la siguiente información

Enumeración del puerto 80

Haciendo uso de la herramienta de whatweb obtendremos mas información sobre el sitio web. Podemos observar que la web nos redirige a un dominio, el que debemos agregar al /etc/hosts

El sitio web se ve de la siguiente manera:

20231124192330.png

Ahora lo que haremos será fuzzing de directorios que pueden no podemos visualizar del sitio web, la herramienta que usaremos será ffuf, tu puedes hacer uso de otras pero en lo personal esta me esta llegando a gustar

Uno de los directorios es ~webmaster, la siguiente imagen muestra el contenido del sitio en el directorio mencionado

20231124214434.png

Teniendo el directorio anterior, seguiremos haciendo fuzzing

Explotación

Encontramos al interesante que es un directorio que es admin en el que podemos realizar búsquedas y cuenta con un panel de login.

20231124220610.png

En el campo de búsqueda ingresamos admin' para probar si es vulnerable a una inyección sql y podemos ver en la siguiente imagen que si es vulnerable

20231124220748.png

SQL injection N° 1

Para una mayor rapidez y comodidad lo haremos con la herramienta de burpsuite.

Iniciamos enumerando las columnas que tiene la consulta

20231124222057.png

Pudimos enumerar el numero de columnas que tiene la consulta.

Procederemos a enumerar las base de datos search=admin%27union%20select%201,2,group_concat(schema_name),4,5,6,7,8,9,10%20from%20information_schema.schemata--%20-&submit=

Enviando la anterior petición podemos obtener las base de datos.

Ahora teniendo la base de datos olympus enumeraremos el nombre de las tablas

Ahora enumeraremos las columnas que tiene la tabla.

Tenemos las siguientes columnas de la tabla.

Teniendo las columnas y el nombre de la tabla podemos realizar la consulta una consulta para ver el contenido de esta.

Haciendo la consulta anterior obtendremos credenciales y usuarios

Cracking - John The Ripper

Para poder crackear las credenciales que estan encriptadas haremos uso de la herramienta de john Ripper. Esta herramienta es muy potente para esto, pero se tiene otras en la web como Crackstationarrow-up-right

Dejando de lado el crackeo tambien puedes revisar el siguiente post Victor - CMS SQL injectionarrow-up-right para ver alternativas de explotación

Teniendo las credenciales nos dirigimos a la siguiente ruta de la web http://olympus.thm/~webmaster/admin/ donde tenemos un panel de login en el cual ingresaremos las credenciales encontradas.

20231124224539.png

Revisando el CMS encontraremos correos de los usuarios, en el cual podemos ver un subdominio que es chat.olympus.thm así que visitaremos el subdominio. Antes de visitar por el navegador no olvides agregar en el /etc/hosts

20231124230838.png

Se intento ingresar al CMS con los usuarios y la contraseña encontrada, pero no se pudo inciar sesion en el CMS. Tendremos presente la siguiente información

Ingresamos al sitio web http://chat.olympus.thm/login.php en donde tendremos otro login, al ingresar las credenciales que se encontró realizando el SQLinjection podremos ingresar

20231124230934.png

Al iniciar sesión encontraremos una app de chat en la cual tenemos unos mensajes, en donde al parecer el usuario prometheus envió unas credenciales. 20231124231339.png

Se puede ver que los archivos se suben en alguna ruta, por lo que vamos a realizar un descubrimiento de directorios haciendo uso de la herramienta ffuf

Encontramos unos directorios interesantes, uno de los directorios que es uploads es un poco mas interesantes. Revisando el directorio podemos ver que no tenemos lectura del directorio para ver el contenido.

SQL injection N° 2

Recordemos que en el mensaje que se tiene leemos que el archivo toma un nombre random, por lo que pensé que no habría mucho que hacer pero recordé que realizar el sql injection vimos una tabla de la base de datos llamada chats. Vamos a iniciar a enumerar esa base de datos con ayuda de Burp Suite

Inyectando el sql obtenemos varios nombres de las columnas de la tabla, la que nos interesa es file.

Teniendo en cuenta la columna file pasamos a realizar la consulta

Realizando la consulta obtenemos el nombre de archivo, pero no encontramos nada interesante.

Ahora sabemos como enumerar el nombre de los archivos que subimos, conociendo la ruta donde se almacenan podemos subir un archivo php malicioso para ejecutar comandos.

Ahora subiremos un archivo web - shellarrow-up-right en php que nos permita ejecutar comandos.

Una vez subida y conociendo el nombre del archivo podemos ejecutar comandos en la maquina victima, ahora lo que haremos sera obtener una revershell para tener una shell de la maquina victima.

20231125002151.png

La manera de como hago para obtener una shell es con la herramienta curl y poniendo la revershell en formato urlencodearrow-up-right

Realizamos nuestra petición ingresando nuestra revershell.

Antes de realizar la petición procura ponerte a la escucha con ncat en el puerto de tu preferencia teniendo en cuenta que este puerto debe también ir en la revershell de tu petición

20231125002936.png

Escala de privilegios

Usuario: www-data

Siendo el usuario www-data tenemos que enumerar los privilegios para poder escalar privilegios.

Al enumerar los permisos SIUD nos toparemos con un binario que no es común. En los permisos del binario podemos observar que podemos ejecutar y leer el contenido.

Si ejecutamos el binario nos daremos cuenta que este hace una copia de los archivos que le indiquemos para luego guardarlo en una nueva.

Por lo que procedernos a realizar una copia del archivo id_rsa del usuario zeus. Pudimos realizar una copia del id_rsa, pero vemos que esta encriptada por lo que haremos uso de ssh2john para obtener el hash y poder crackearla.

Primero obtenemos el hash.

Segundo, iniciamos a crackear el hash que se obtuvo.

Las credenciales que se obtuvieron son:

Ahora que ya sabemos la credencial del id_rsa podemos logearnos por ssh con el usuario zeus.

Usuario: Zeus

20231125015429.png

Enumerando el grupo zeus encontraremos ciertos archivos

Los archivos que encontramos en las cuales tenemos permiso tiene un contenido que al parecer nos envia una revershell.

Aqui tenemos el contenido del archivos a mas detalle:

si vamos al sitio web con la ruta 0aB44fdS3eDnLkpsz3deGv8TttR4sc/VIGQFQFMYOST.php visualizaremos un panel que nos pide una contraseña, contraseña que se muestra en el codigo fuente del archivo php contraseña: a7c5ffcf139742f52a5267c4a0674129

20231125025307.png

Ingresando la cotraseña nos redirige a un contenido que al parecer es un backdoor que usaremos para escalar privilegios hasta root.

20231125025318.png

Ingresamos otra vez con la ip de la maquina atacante y el puerto.

20231125031038.png

Antes de hacer la petición ponemos a la escucha la herramienta ncat en el puerto de nuestra preferencia.

Usuario: root

20231125031052.png

¡VAMOS!

Happy hacking :)

Last updated