WriteUp CTF CelebritySoup de ShellDredd

En esta ocasión, vamos a intentar explotar la máquina CelebritySoup de @shelldredd. Es una máquina Linux y su nivel de dificultad es fácil, aunque con el toque característico del desarrollador a la hora de construir sus CTF. Se puede descargar en la web hackmyvm.eu o en la web del desarrollador shelldredd.github.io

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 21: vsftpd 3.0.3
  • Puerto 22: OpenSSH 7.9p1
  • Puerto 80: Apache httpd 2.4.38

Como el puerto 80 está habilitado, vamos a comenzar viendo que contiene.

Como siempre que tenemos una web entre manos, haremos enumeración de directorios para ver si existe alguno con información que nos pueda ser de utilidad.

Interesante tenemos el archivo robots.txt, vamos que información contiene.

Abrimos los 4 contract*.html pero no contienen información interesante en principio.

Pasamos a abrir los archivos sector*.html. Una vez abiertos varios de ellos vemos que al final del código de cada uno de ellos tenemos este patrón repetido.

Vamos a descargar todos estos archivos y extraer todos los “secretos”.

Con los datos obtenidos tenemos lo que parecen las sílabas de una palabra, que puede ser un nombre o una contraseña, y, por otro lado, tenemos las indicaciones para encontrar la sección 9.

La palabra formada es “puppetmaster”.

Vamos a continuación a buscar la ubicación de la sección 9. Analizamos tanto la web como el código fuente, pero no encontramos nada que parezca útil. Vamos a crear un diccionario a partir del contenido de la web con el que posteriormente volveremos a hacer fuzzing de directorios en la web.

Como en la anterior ocasión, volvemos a utilizar gobuster para hacer fuzzing.

Abrimos project2501.html, donde vemos una gran foto.

¿Qué podemos hacer?

  • Metadatos de la imagen
  • Descrifrar la imagen
  • Buscar en el código fuente

Vamos a buscar la fuente de la imagen para descargarla.

Descargamos la imagen.

Descifrar esta imagen en https://www.esteganografia.com/

Y con esta https://gchq.github.io/CyberChef/ decodificamos el binario obtenido anteriormente.

Con lo que parece un nombre de usuario y una password, y recordando que el puerto 22 está abierto, vamos a intentar conectarnos a través de SSH.

Bingo, nos podemos conectar a la máquina víctima a través de SSH con el usuario y contraseña encontrada anteriormente.

Y encontramos también la flag user.txt.

Vamos con la elevación de privilegios.

En este mismo directorio que nos encontramos tenemos un systeminfo que puede ser de utilidad. Vamos a ver qué información contiene.

Vamos a hacer reversing de este archivo con el comando strings, por si pudiese contener información interesante.

Vamos a filtrar por directorios interesantes que pudiesen estar contenidos.

El comando cat aquí, no especifica una ruta absoluta, es un cat que se llama directamente, no como como /usr/bin/whoami, entonces podemos usar esto para crear un cat “falso”, y luego colocarlo en la variable de entorno para posteriormente que systeminfo ejecute nuestro cat.

El método para usar un cat falso para obtener privilegios de root es que cuando llamamos al comando systeminfo, tiene privilegios suid. En este momento, nuestro cat falso se llama por systeminfo. Entonces, también tenemos permiso. Podemos usar este permiso para llamar a bash. El bash que regresa tiene permiso de root, así que echemos un vistazo a la ruta de bash primero.

El siguiente paso es fingir un cat falso.

Y tenemos la flag root.txt. Como hemos modificado cat, no lo podemos utilizar para abrir la flag. En su defecto utilizaremos less o more.

Y tendríamos acabada la máquina. Máquina interesante y peculiar, con el toque del maestro Shelldredd.

No responses yet

Deja una respuesta

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