Introduction

Máquina boot2root apta para principiantes.
Getting the Flags
Reconocimiento Inicial
Comenzamos realizando un escaneo de puertos abiertos.

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

Vamos a ver qué directorios hay.

Vamos a ver cómo se ve la web.

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

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

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:

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

Una vez dentro nos descargamos el archivo que vemos.

Y vamos a leerlo.

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

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.

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

Vamos a probar.

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.

Vamos a leer la flag del usuario.
Movimiento Lateral
Ahora toca escalar privilegios. Primero miramos los grupos e id de dale.

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

Vamos a ver de qué se trata este archivo.

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

Obtenemos la shell de gyles. Ahora estabilizamos la shell como una nueva sesión de ssh con el comando:
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:

Vamos a ver de qué se trata.

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:

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

Lo ejecutamos.

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

Antes de guardarlo nos ponemos en escucha.

Ahora lo guardamos y esperamos.

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.
