🟢Amaterasu

Write-up de la máquina Amaterasu de Proving Grounds #writeup #walkthrough

Enumeración

Puertos abiertos

Comenzamos la resolución de la máquina Amaterasu, enumerando que puertos tiene abiertos el sistema objetivo.

Tres puertos abiertos: 21, 25022, 33414 y 40080. Seguimos enumerando de manera profunda los servicios abiertos.

Interesante, puerto 21 (servidor FTP con acceso para usuario anonymous), 25022, 33414 y 40080 (Servidor Apache)

Enumeración Web

La máquina objetivo está ejecutando un servidor Web en el puerto 40080. Veamos su contenido.

Vamos a enumerar directorios y archivos que puedan ser interesantes.

No encontramos nada interesante.

Realizamos el mismo proceso para el servicio que se está ejecutando en el puerto 33414.

Realizamos la enumeración de directorios y archivos.

Encontramos dos directorios: /help e /info. Veamos su contenido. En el directorio /help, encontramos diferentes utilidades que hay disponibles.

En /info vemos lo siguiente:

Vemos que estamos enumerando una API REST. También encontramos un posible usuario del sistema, "Alfredo".

Veamos que información interesante podemos enumerar con las utilidades que encontramos en el directorio /help.

Podemos enumerar archivos del sistema.

Además, podemos confirmar que "alfredo" es usuario del sistema.

Existe una utilidad de carga de archivos pero con método POST.

Pero tenemos un posible vector de entrada.

Explotación

Vamos a intentar subir archivos realizando peticiones de tipo POST utilizando cURL. Esto lo hacemos de la siguiente forma:

No hemos adjuntado ningún archivo en la petición. Vamos a crear un archivo de pruebas para tratar de subirlo a la máquina objetivo.

Se ha subido el archivo, vamos a comprobar en que directorio está en el servidor.

Vamos a comprobar ahora, si podemos subir archivos al directorio del usuario "alfredo".

Comprobemos si podemos acceder al directorio .ssh de este usuario.

Sabiendo esto, ¿que podemos hacer? Podemos tratar de subir una clave pública a este directorio para poder conectarnos como usuario "alfredo" sin necesidad de contraseña. Vamos a hacerlo de la siguente manera:

Pero solo se permiten determinados tipos de archivos.

Habiendo transferido correctamente el archivo, ahora podremos conectarnos a la máquina vía SSH.

Ya tenemos acceso a la máquina como usuario "Alfredo". Vamos a buscar la flag local.txt.

Elevación de privilegios

Enumeramos el archivo /etc/crontab

Vemos un ejecutable bash que se ejecuta cada minuto. Veamos el contenido de este script.

Vemos el directorio /restapi.

No existe ejecutable "tar" así que podemos crear uno malicioso de la siguiente manera:

Damos permisos

Después de un minuto, vamos a comprobar los archivos con permisos SUID

Visitamos GTFOBins para ver como podemos elevar privilegios aprovechando esto.

Solo quedará buscar la flag proof.txt para finalizar el CTF.

Last updated

Was this helpful?