Skip to main content
HackTheBox machines – Goodgames WriteUp

HackTheBox machines – Goodgames WriteUp

Goodgames es una de las maquinas existentes actualmente en la plataforma de hacking HackTheBox basada en Linux

Goodgames es una de las maquinas existentes actualmente en la plataforma de hacking HackTheBox y es de dificultad Fácil.

En este caso se trata de una máquina basada en el Sistema Operativo Linux.

 

Escaneo de puertos

Como de costumbre, agregamos la IP de la máquina Goodgames 10.10.11.130 a /etc/hosts como goodgames.htb y comenzamos con el escaneo de puertos nmap.

Vemos un apache en el puerto 80 así que vamos a investigar el mismo.

 

Enumeración

Accedemos al puerto 80 a través del navegador y vemos la siguiente página web

HackTheBox machines – Goodgames WriteUp

 

Revisamos el portal y no vemos gran cosa, pero si un formulario de registro en el cual nos vamos a crear una cuenta

HackTheBox machines – Goodgames WriteUp

 

Así que una vez creada nuestra cuenta, accedemos a la misma y nos muestra un mensaje de bienvenida

Bienvenido bytemind

 

Y acto seguido nos redirige a la página del perfil del usuario. Revisamos un poco pero no podemos hacer mucho más por el momento así que vamos a abrir burp suite, interceptaremos la petición, la enviaremos al repeater y trataremos de llevar un ataque sqli, el cual es exitoso con el siguiente código

 

Bypaseando el login

 

Así que si interceptamos una nueva petición y la enviamos con el mismo payload conseguimos acceder al portal como el usuario admin

Perfil del usuario admin

 

Visto que es vulnerable a este tipo de ataque, vamos a tratar de obtener más información al respecto.

Trataremos en primer lugar de obtener el número de campos existentes y lo conseguimos con el siguiente payload

Y al lanzar el mismo nos muestra el mensaje Welcome 1

Bienvenido usuario 1

 

A continuación vamos a obtener el esquema de base de datos, que es main

Obteniendo el esquema actual

 

Vamos a obtener los esquemas existentes en el servidor

Obteniendo los esquemas existentes

 

Nos interesa conocer más del esquema main así que vamos a obtener las tablas exitentes en el mismo

Obteniendo las tablas del esquema main

 

Viendo las tablas existentes, nos interesa la tabla user, así que vamos a obtener las columnas existentes en el mismo

Obteniendo los campos de la tabla user

 

Y ahora que ya tenemos los campos existentes en la tabla user, vamos a obtener su contenido

En el cual obtenemos los datos de dos usuarios, el usuario admin, y el que creamos nosotros previamente

 

Vamos a tratar de obtener la clave del usuario admin en plano, y en este caso es tan sencillo que una simple búsqueda en google nos da el resultado sin tener que hacer nada más

 

 

Ahora que ya tenemos la clave del usuario admin, si volvemos a fijarnos en el perfil de dicho usuario, hay un enlace en la parte superior derecha que apunta a una nueva dirección

Así que añadimos la misma a nuestro fichero /etc/hosts y accedemos, para ver un panel de login del framework Flask Volt

Portal de flask volt

 

Accedemos con las credenciales obtenidas anteriormente y entramos al dashboard del portal

Dashboard flask volt

 

Revisamos el portal y encontramos que podemos editar los campos del perfil del usuario, así que vamos a buscar alguna vulnerabilidad y encontramos que flask ha tenido vulnerabilidades de SSTI así que vamos a tratar de explotarla.

Editaremos el nombre del usuario con el siguiente payload

Y observamos que funciona, y modifica el nombre por la multiplicación de 4 x 4

Explotando SSTI

 

 

Así que viendo que es vulnerable vamos a tratar de obtener una shell por este método. Editaremos de nuevo el nombre utilizando el siguiente payload

Y obtendremos una shell dentro de la máquina

 

Obteniendo la flag de user

Somos root directamente, pero viendo el hostname de la máquina apunta a que va a ser un contenedor, y si nos fijamos bien encontramos un fichero dockerenv en la raíz que lo confirma

Revisamos los discos existentes y vemos que está montada la home del usuario augustus 

Así que accedemos a la misma y conseguimos la primera flag

 

Escalado de privilegios

Ya tenemos la primera flag, pero antes de poder escalar privilegios, necesitamos poder salir del contenedor, ya que en el mismo ya somos root.

Para hacer un poco más amigable la experiencia vamos a obtener una shell interactiva mediante el uso del comando script

 

Revisamos las interfaces de red configuradas en el contenedor

Y vemos que está configurado con la ip 172.19.0.2, así que por probar vamos a ver si hay algo en la dirección 172.19.0.1 y haciendo un simple curl vemos que se trata del portal web sobre el que estuvimos trabajando al principio de esta máquina.

 

Probamos a acceder por ssh con el usuario augustus y la clave obtenida anteriormente y bingo, estamos dentro 

 

Revisamos la máquina y no vemos tampoco mucha cosa que nos haga ganar privilegios, así que recordamos que la home del usuario augustus estaba montada en el contenedor, contenedor sobre el cual tenemos permisos de root, así que podemos utilizar esto para conseguir privilegios.

Copiaremos el binario de bash a la home del usuario

Una vez hecho esto, volveremos al contenedor para darle permisos al binario, principalmente el permiso de suid para ejecutarlo como root

Volvemos a acceder a la otra máquina y ejecutamos el binario de bash modificado para obtener el escalado a root

 

Obteniendo la flag de root

Ahora que ya tenemos permisos de root, vamos a por nuestra flag

Y ya tenemos nuestra flag de root para completar esta máquina y conseguir nuestros puntos.

 

Si eres usuario de HackTheBox y te gustó mi writeup, por favor, dame respeto en el siguiente enlace

 

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *