WriteUp CTF REI de Shelldredd

Introducción

En esta ocasión, vamos a intentar explotar la última creación de @shelldredd, la máquina REI. Es una máquina Linux y su nivel de dificultad es fácil. Se puede descargar desde la web de HackMyVM o desde la web de @shelldredd.

Enumeración

Vamos a comenzar determinando la IP que tiene la máquina víctima dentro de la red. Esto se hace de la siguiente manera:

Una vez obtenida la IP objetivo, vamos a escanear que servicios tiene abiertos, utilizando nmap.

Tenemos servicios abiertos en:

  • Puerto 63777  http     lighttpd 1.4.59
  • Puerto 65333  ssh       OpenSSH 8.4p1

Vamos a empezar analizando el servicio que se ejecuta en el puerto 63777 http.

Vamos a continuar realizando una exploración de los directorios que se encuentran disponibles.

Vamos a analizar la información contenida en el archivo robots.txt.

Aunque no contiene nada de utilidad. Volvemos a la web estática por si hubiese alguna información que nos pudiese ser de interés.

Como podemos leer, en el texto se indica la existencia de un archivo indexp, en el directorio raíz del servidor.

Aunque no encuentra nada. Podemos probar añadiendo una extensión de texto, como txt.

Nos devuelve a que directorios podemos acceder y a cuáles no. Vamos a utilizar curl, para filtrar solo que directorios podemos ver su contenido.

Vemos varias urls, visitamos cada una de ellas, para ver su contenido.

Las demás urls nos devuelven error 404.

Vamos a realizar un escaneo de directorios para las dos urls encontradas.

Vamos a ver que contiene el archivo en la dirección http://IP:63777/gichin/your-button/note.html

Vamos a ver el código fuente por si pudiese contener alguna información interesante.

Contiene un enlace. Vamos a ver su contenido. Además, de poder ser un posible usuario para ssh (chuck-norris).

Vemos una frase que también nos da indicios de que Chuck Norris es un usuario del sistema.

Balance is key, ¿será Balance un password?

Vamos a abrir el directorio ssh.

Vamos a realizar un escaneo del directorio ssh, para ver que información podemos encontrar.

Y encuentra el archivo rsa. Vamos a abrirlo en el navegador.

Vamos a descargarlo para ver su contenido.

Vamos a probar a utilizar esta clave RSA con el usuario chuck-norris que encontramos anteriormente.

Flag user.txt

Pero nos pide un password. Podemos probar una palabra que encontramos anteriormente en una frase mientras analizábamos el código fuente de la web. Esta palabra era balance o Balance, vamos a probar.

El password correcto es balance.

Y buscamos la flag user.txt, la primera flag de la máquina.

cat no funciona, vamos a probar otros programas para abrir este archivo. El primero será less. Si este no funciona, probamos con pico.

Con pico si funciona, y podemos ver el contenido de la flag.

Elevación de privilegios (DIRTYPIPE)

Vamos a descargar la utilidad linpeas.sh en la máquina víctima. Esta utilidad realiza un escaneo automatizado de todas las posibilidades de escalada de privilegios existentes en la máquina objetivo.

Y lo ejecutamos.

Tras esperar un momento, nos devuelve información que puede ser de utilidad.

Tenemos tres CVE con los que podemos llegar a obtener root

Vamos a probar con dirtypipe.

Descargamos el exploit en la máquina objetivo.

Y lo compilamos para poder utilizarlo.

Vamos a ejecutarlo.

Parece que tenemos acceso al usuario raíz. Vamos a buscar la flag que nos falta para completar la máquina.

Para ello, nos dirigimos al directorio root y en su interior se encuentra la flag root.txt.

O no, que también es una opción. En el archivo podemos leer la frase de “Maritrini es la clave”. Vamos a probar si existe algún archivo que se contenga en su nombre maritrini.

Parece que si existe un archivo maritrini. Vamos a ver su contenido.

Obtenemos la flag root, y podemos dar por acabada la máquina.

Elevación de privilegios (REVERSE SHELL)

Vamos a volver a ejecutar ./linpeas, para otros vectores de entrada. Y encontramos un archivo que nos puede ser de utilidad.

Analizamos los permisos para este archivo.

Vamos a ver el contenido del archivo.

Como vimos anteriormente, tenemos permiso de escritura en este archivo. Vamos a utilizar esto para crear una reverse Shell.

Y nos ponemos de oyentes en nuestra máquina.

Para que la Shell funcione hay que experar un momento, no se ejecuta como root inmediatamente.

De esta forma, entramos directamente en el directorio raíz y desde ahí nos dirigimos a la carpeta root, donde Shelldredd nos hace el lío con la flag.

Y donde deberemos buscar la flag maritrini de la misma manera que lo hicimos en la forma 1.

Esto es todo. Como siempre Shelldredd no decepciona, con máquinas muy curradas donde no todo es lo que parece.

No responses yet

Deja una respuesta

Tu dirección de correo electrónico no será publicada.