MagiFi

Máquina MagiFi de la plataforma HackMyVM

Autor: x4v1l0k

Dificultad: Difícil

MagiFi

Recognition

Comenzamos ejecutando ping para ver si tenemos alcance con la máquina:

como podemos ver la máquina está activa por lo que ahora podemos realizar un escaneo con nmap para poder obtener los puertos abiertos:

como podemos ver hay 2 puertos abiertos: •Puerto 22: OpenSSH 8.2p1 Ubuntu

Puerto 80: Werkzeug httpd 3.0.4

viendo esto, podemos descartar el puerto 22 ya que no tenemos credenciales y la versión no presenta vulnerabilidades críticas, por lo que pasaremos al puerto 80 con el servidor de python.

Port 80 enumeration

Al entrar a la web desde la dirección ip nos redirige al dominio "hogwarts.htb", el cual añadiremos al archivo /etc/hosts de la siguiente manera:

y ahora sí nos cargará la página.

Lo primero que vemos al entrar es que podemos subir un pdf, además nos dan un archivo de word como ejemplo del formato que tiene que tener el pdf, lo descargamos y lo abrimos con libreoffice. Al abrirlo veremos que tiene un texto y además tiene unos datos los cuales tenemos que rellenar mas abajo:

Datos

de todo el documento lo único que nos interesa son los datos ya que al subir el pdf a la web podremos verlos reflejados:

Reflejado

Sabiendo esto, podemos probar 2 cosas: • XSS

SSTI

de estas dos lo más interesante sería un SSTI(server side template injection) ya que como no hay cookies y no hay nadie que revise esa web no podríamos hacer nada interesante con un XSS. Para probar un SSTI debemos poner {{7*7}}, si al reflejarse pone un 49 significa que la vulnerabilidad está presente:

SSTI

como podemos observar se muestra un número 49, lo cual nos indica que la vulnerabilidad está presente y la podemos explotar.

Intrusion

Al ser python, podemos ir al siguiente repositorio de github:

PayloadsAllTheThings

y si revisamos podremos ver que con la siguiente cadena podemos ejecutar un comando:

Id

como podemos ver estamos ejecutando comandos, por lo que ahora simplemente usamos alguna reverse shell de la página RevShells y entramos en la máquina.

Privilege Escalation

User 'harry_potter'

Al entrar en la máquina, busco binarios con el bit SUID activado:

de todos los que salen, solo nos interesan esos dos.

Al ejecutar xxd_horcrux, veremos que nos sale el mensaje de ayuda de el mismo xxd pero un poco modificado:

Horcrux-xxd

al parecer la opción -O dice que solo podemos dejar un outfile llamado "horcruxes" (o parecidos a eso), y ademas vemos el otro binario/archivo con el bit suid activado el cual se llama .horcrux.png. Sabiendo esto podemos aprovechar la lectura de archivos con xxd que se encuentra en GTFOBins de la siguiente manera:

• Primero copiamos el archivo /etc/passwd a nuestro directorio actual:

luego, creamos un archivo llamado .horcrux.png con touch:

ahora haremos un enlace simbólico del archivo /etc/passwd con nuestro archivo .horcrux.png, para que cuando lo escribamos realmente estemos modificando el archivo en /etc/:

ahora modificamos el passwd que copiamos para que sea lo que se sobrescriba en el archivo .horcrux.png que como dije antes, modificará el archivo /etc/passwd:

finalmente, nos aprovechamos del binario xxd_horcrux y sobrescribimos el archivo /etc/passwd para que podamos ejecutar su y escalar a root sin contraseña:

Root

Root

Gracias por leer ;)

Última actualización