Skip to main content
HackTheBox machines – Ophiuchi WriteUp

HackTheBox machines – Ophiuchi WriteUp

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

Ophiuchi es una de las maquinas existentes actualmente en la plataforma de hacking HackTheBox y es de dificultad Media.

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 Ophiuchi 10.10.10.227 a /etc/hosts como ophiuchi.htb y comenzamos con el escaneo de puertos nmap.

Esta máquina no dispone de muchos servicios abiertos así que vamos directamente al portal web en el puerto 8080.

 

Enumeracion

Accedemos al portal web en el puerto 8080 y encontramos la siguiente página

Online yaml parser

 

Hacemos una primera prueba de introducir texto y nos devuelve una página con un error de que por motivos de seguridad está desactivado

Tomcat error

 

Procedemos a realizar una pequeña búsqueda en google y encontramos una forma de poder explotar el servicio de parseo de yaml y conseguir realizar un rce a través del mismo en el repositorio yaml-payload

Así que nos descargamos el código y realizaremos los siguientes pasos.

En primer lugar generaremos el payload para ejecutar una reverse shell en la máquina víctima, para ello lanzaremos los siguientes comandos:

Generando con ello el siguiente payload

A continuación editaremos el fichero src/artsploit/AwesomeScriptEngineFactory.java y sustituiremos las siguientes líneas de código (líneas 12-13)

Por una con nuestro payload

Y compilaremos el fichero .java

Una vez compilado accedemos al directorio src

Y levantamos un servidor en python en dicho directorio

Y como último paso ejecutaremos el siguiente código en el formulario del portal web de parseo de yaml

Si observamos a continuación el servidor python que levantamos veremos como ha descargado nuestros ficheros

Y hemos conseguido una shell con el usuario tomcat en nuestra escucha

Una vez que estamos dentro revisamos el sistema y encontramos el directorio de configuración de la aplicación web

Y en dichos ficheros encontramos las credenciales del usuario admin

 

Obteniendo la flag de user

Ahora que tenemos las claves del usuario admin, escalamos a dicho usuario y conseguimos la flag de user

 

Escalado de privilegios

Una vez obtenido acceso con el usuario admin, revisamos si este usuario tiene algún permisos como root

Y observamos que el mismo tiene permisos para ejecutar como root el fichero index.go con el binario /usr/bin/go así que vamos a inspeccionar que hay en ese fichero.

Accedemos al directorio /opt/wasm-functions y encontramos los siguientes ficheros

Y vamos a ver el contenido de ellos para comprender que hace la aplicación y ver como podemos explotar la misma para conseguir escalar privilegios.

Observamos el fichero deploy.sh cuyo contenido es el siguiente

No vemos nada relevante así que observamos el contenido del fichero index.go cuyo contenido es

Y aquí si que nos da información acerca de la ejecución del mismo, y además, se observa que no se especifica ninguna ruta por lo que podemos crear nuestros ficheros deploy.sh y main.wasm para cargar los mismos en lugar de los utilizados por la aplicación por defecto.

Necesitaremos conocer el contenido del fichero main.wasm, pero se trata de un binario en WebAssembly así que utilizaremos el siguiente portal para obtener el código completo

https://webassembly.github.io/wabt/demo/wasm2wat/index.html

Cargamos el fichero y obtenemos el código completo que es el siguiente:

Necesitaremos modificar el código así que nos iremos al siguiente portal para poder revisar y testear los cambios

https://webassembly.github.io/wabt/demo/wat2wasm/index.html

Y necesitaremos modificar la línea

Modificando el valor a 1 como vemos a continuación

Completado esto, descargamos el fichero y lo subiremos a una ruta en la que tengamos permisos de escritura en la máquina, en nuestro caso lo hemos hecho sobre /tmp

Realizada esta parte vamos ahora a explotarlo.

Crearemos en primer lugar nuestro fichero deploy.sh

Después ejecutaremos el comando para el cual tenemos permisos de root

Y por último ejecutaremos la opción -p de bash para escalar a root

 

Obteniendo la flag de root

Ahora que ya tenemos permisos de root, nos vamos a la home de dicho usuario para obtener 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 *