XUT_ / MACHINES / THM

0047

Team

THMMACHINENONEEASY

Introduction

team

Máquina boot2root apta para principiantes.

Getting the Flags

Reconocimiento Inicial

Comenzamos realizando un escaneo de puertos abiertos.

team

Ahora vamos a escanear los puertos abiertos más en profundidad.

team

Vamos a ver qué directorios hay.

team

Vamos a ver cómo se ve la web.

team


Profundización

Vamos a mirar en los directorios que encontramos.

  • images: team Son sólo fotos. Si no encontramos nada más volveremos aquí para hacer esteganografía con ellas.
  • robots.txt: team Literalmente nada más allá de la palabra "dale". No sabemos si es un nombre o qué.
  • scripts: team Nos dice forbidden, pero igual podemos enumerar archivos.

Si enumeramos, encontramos esto:

team

Vamos a mirar a ver qué hay en el script.

team

Parece que hay otro script con credenciales. Si probamos diferentes extensiones vemos que al escribir script.old, nos descarga un archivo. Si leemos dicho archivo:

team

Vamos a iniciar sesión con las credenciales en FTP.

team

Una vez dentro nos descargamos el archivo que vemos.

team

Y vamos a leerlo.

team

Vamos a añadir dev.team.thm a nuestro /etc/hosts y visitamos la página.

team

Si hacemos click en el link, nos lleva a esta página:


Explotación

Si nos fijamos en la URL parece que se le está pasando un parámetro directamente. Además, si Dale ha hecho caso a la nota de Gyles, habrá puesto su clave id_rsa en el archivo de configuración. Vamos a probar path traversal.

team

¡Bingo! Vamos a ver si podemos encontrar el archivo de configuración. Buscamos en internet.

team

Vamos a probar.

team

Hemos encontrado el documento, y aquí está la clave privada. Ahora la cogemos, la copiamos. Como viene comentado, podemos copiarlo y pegarlo en vi y allí utilizar este comando :1,$s/^#//g para sustituir todos los # iniciales en cada linea en todo el documento por nada (borrándolos efectivamente). Una vez hecho esto, cambiamos los permisos del archivo y lo usamos para iniciar sesión mediante SSH.

team

Vamos a leer la flag del usuario.


Movimiento Lateral

Ahora toca escalar privilegios. Primero miramos los grupos e id de dale.

team

Puede ser interesante para después si no encontramos nada pero ahora vamos con nuestra checklist.

team

Vamos a ver de qué se trata este archivo.

team

Primero se está guardando el input de "date" en una variable llamada error y luego la está ejecutando.

team

Obtenemos la shell de gyles. Ahora estabilizamos la shell como una nueva sesión de ssh con el comando:

bash
script -qc /bin/bash /dev/null

Escalada de Privilegios

Si investigamos en la carpeta del home de gyles, podemos ver el bash history, en el que si nos metemos encontramos algunos archivos curiosos. Entre ellos este:

team

Vamos a ver de qué se trata.

team

Parece que el grupo admin puede hacer lo que quiera con este archivo. Vamos a ver si hay procesos corriendo de fondo. Para ello descargamos pspy en nuestra máquina, le damos permisos de ejecución y la servimos con python:

team

Ahora la descargamos desde la máquina víctima.

team

Lo ejecutamos.

team

Parece que el archivo que podemos escribir se está ejecutando periódicamente, así que vamos a escribir una reverse shell en dicho archivo.

team

Antes de guardarlo nos ponemos en escucha.

team

Ahora lo guardamos y esperamos.

team

Vamos a leer la flag.


Conclusión

No ha sido una máquina extremadamente fácil la verdad. Bastante pensamiento out of the box es requerido para superarla exitosamente. Aun así me he divertido haciéndola, y gracias a ella he conocido una herramienta que creo que me será muy útil en el futuro: pspy.