TryHackMe Chocolate Factory

Resumen:

Muchos puertos en los que hay que fijarse bien, un ftp sencillo, esteganografía a jpg sin complicaciones, fuerza bruta rápida, RCE, sudo -l(vi) y un python para conseguir la flag root.

Reconocimiento

Descubrimos los puertos que tiene la máquina víctima, entre ellos vemos un ftp, ssh y http.

Lanzamos los script básicos de reconocimiento y obtenemos las versiones de los servicios anteriores. Cosas interesante que vemos es un ftp con anonymous.

A demás, en lo otros puertos vemos un mismo mensaje.

Pero si miramos uno por uno nos damos cuenta que hay uno que difiere de los demás, donde nos muestra un fichero que contiene una key.

FTP

Nos conectamos al servicio FTP con “anonymous” y vemos que contiene una imagen jpg, nos la descargamos.

Steganografía

Con la imagen ejecutamos steghide para ver si contiene algo y vemos como tiene un txt.

Lo extraemos….

y nos damos cuenta que estamos ante un “base64”

Le hacemos un decode y obtenemos usuario y pass.

Nos la guardamos en un fichero y aplicamos fuerza bruta con john.

WEB

La probamos por si fueran las de SSH pero no lo son, así que al abrir la WEB nos encontramos ante un login.

Metemos las credenciales que obtuvimos anteriormente y entramos. Vemos como podemos ejecutar comandos.

Y ahora podemos hacer dos cosas:

  • Entablarnos una reverseShell con python3, pero nos daría una shell con un usuario con pocos privilegios.

  • Si pensamos un poco vemos como podemos ejecutar comandos y movernos entre directorios, como tenemos el puerto SSH abierto lo lógico es que el usuario “charlie” tenga una clave “id_rsa”, así que nos vamos a su directorio y la visualizamos, pero tiene una trampa, que si vamos directo no la veremos ya que no se encuentra en “/.ssh/id_rsa”, si no que se encuentra en el mismo directorio del usuario y con diferente nombre.

Ya solo faltaría guardárnosla, darle un formato correcto y darle los permisos adecuados.

Flag USER

Escalar Privilegios

Miramos y vemos el comando “vi”

Buscamos y encontramos como explotarlo,

Ahora siendo root buscamos la flag pero nos encontramos ante un script en python el cual nos pide una key para darnos la FLAG.

La key sabemos dónde está, ya que nos la proporciono con nmap, así que nos dirigimos al directorio y vemos su contenido el cual es la key que tenemos que utilizar.

Al ejecutar el script en python e introducirle la key que nos ha dado nos da problemas de código

Tenemos que cambiar el código quitándole lo innecesario e introducimos directamente la key.

Flag ROOT

Y al ejecutarlo si nos da ahora la FLAG.