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.

Link olympus
Created by PetitPrinc3
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:

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

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.

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

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

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 Crackstation
Dejando de lado el crackeo tambien puedes revisar el siguiente post Victor - CMS SQL injection 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.

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

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

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. 
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 - shell 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.

La manera de como hago para obtener una shell es con la herramienta curl y poniendo la revershell en formato urlencode
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

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

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

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

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

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

¡VAMOS!
Happy hacking :)
Last updated