Introduction

Bienvenido a Lian_Yu, este es un CTF de principiante con temática de Arrowverse. Captura las flags y diviértete.
Getting the Flags
Nos hacen varias preguntas en esta máquina:
- ¿Cómo se llama el directorio que has encontrado?
Empezaremos haciendo un escaneo de puertos.

Ahora escaneamos dichos puertos más a fondo.

Ahora procedemos al listado de directorios web.

Dirsearch no encuentra nada, vamos a mirar manualmente la web.

Parece una página estática, pero llama la atención que únicamente la palabra "arrow" (flecha) está en negrita. Primero miraré si robots.txt existe, pero acto seguido voy comprobar que /arrow/ no sea un directorio.
No existe ninguno de los dos.
Voy a probar con otro enumerador, vamos con gobuster.

Bingo! Parece que hemos encontrado el directorio. Al meter /island no funcionó, así que volví a realizar un escaneo sobre este nuevo directorio y lo encontré.

- ¿Cómo se llama el archivo que has encontrado?
En el directorio island/ nos encontramos con lo siguiente:

Si miramos el código fuente vemos la palabra secreta:

En el directorio /2100/ vemos lo siguiente:

Si miramos el código fuente dice que podemos adquirir aquí nuestro .ticket, pero ¿cómo?
Si enumeramos con la extensión .ticket lo tenemos:

- ¿Cuál es la contraseña FTP?
Si leemos el archivo encontramos lo que probablemente sea la contraseña de FTP, aunque parece encodeada.

Después de un rato decodeando encontramos que está encodeada en base58.

- ¿Cuál es el nombre del archivo con la contraseña SSH?
Vamos a meternos al servidor FTP con el posible username que encontramos antes vigilante y la contraseña obtenida.

Del texto .other_user sacamos algunos posibles usernames:

Parecen ser 3 fotos, vamos a ver qué contienen realmente.

Parece que Leave_me_alone.png contiene información. Las herramientas revelan que hay un error de formato. Vamos a cambiar los magic bytes por los de png.
De esto:

A esto:

Así encontramos lo que parece una contraseña:

Si ahora usamos steghide sobre las imágenes nos damos cuenta de que aa.jpg parece contener datos.

Si ahora probamos con la contraseña obtenida a extraerlo:

Vamos a unzippearlo y a ver qué contiene.

Parece que hemos encontrado el nombre del archivo.

- ¿Cuál es la flag
user.txt?
Con la contraseña nos metemos por SSH, vamos a realizar fuerza bruta con todos los posibles nombres de usuario que tenemos hasta la fecha.

Ahora hacemos la fuerza bruta con la contraseña.

Ahora entramos por SSH.

Si buscamos la flag y la leemos:

- ¿Cuál es la flag
root.txt?
Ahora tenemos que encontrar la forma de escalar privilegios. Vamos a ver el id de nuestro usuario:

Somos parte de muchos grupos, podrías ser interesante si no encontramos otro vector de escalada. Vamos a comenzar con nuestra checklist de privesc.

Parece que podemos ejecutar pkexec como root.

Buscando en GTFOBins vemos que es un claro vector de escalada. Vamos a proceder.

Ahora listamos la flag y la leemos.

