Leak - Vulnyx Machine

Leak - Vulnyx Machine

Resolución de la maquina Leak de Vulnyx

Hola estimada persona, ¿Qué te parece un CTF? Pero antes....

Gracias a d4t4s3c, por compartir este CTF y a la comunidad de Vulnyx, por hacer esto posible 😃

Descripción de la maquina.

Sistema Operativo

Linux 🐧

Dificultad

Medio

Lanzamiento

22/10/2021

Creador

d4t4s3c

Primer Usuario

punt4n0

Primer Root

punt4n0

Enumeración

Empezamos con un par de escaneos, obteniendo los puertos abiertos, servicios y algunas versiones.

Empecemos por observar el servicio apache.

Bueno, solo obtenemos la bienvenida de un apache default page.

Realice un fuzzing bajo este directorio, pero ya te digo que por el momento no hay algo que nos interese, por ahora....

Así que pasemos con el otro servicio, alojado en el puerto 8080...

El señor Jenkins. Tenemos un panel en el cual no podemos hacer casi nada... Solo obtuve el nombre de un usuario george, con el cual me dispuse a realizar una fuerza bruta con hydra al login de Jenkins.

hydra -s 8080 192.168.1.131 http-form-post "/j_acegi_security_check:j_username=^USER^&j_password=^PASS^:Invalid username or password" -l george -P /usr/share/wordlists/rockyou.txt -t 10 -w 30

Pero sin éxito 😕

CVE-2024-23897

Ahora, si podrán observar abajo a la derecha tenemos la version de Jenkins.

O también podemos hacer uso de whatweb para afirmar.

El punto es que podemos buscar alguna vulnerabilidad conocida sobre Jenkins, y si, fue el caso. Di con un repositorio de Github que mantiene una notas sobre las vulnerabilidades descubiertas con PoC 🙂

Una de estas es CVE-2024-23897, la cual permite que un usuario no autenticado pueda realizar una lectura de archivos del sistema controlados por Jenkins y la versión 2.401.2 es vulnerable.

Existen algunos exploits en github, aun que podemos hacerlo de manera algo mas manual.

Jenkins CLI

Primero debemos de hacer uso de Jenkins CLI, el cual podemos descargar desde la ruta /jnlpJars/jenkins-cli.jar

wget http://192.168.1.131:8080/jnlpJars/jenkins-cli.jar

Existen dos maneras de aprovecharse de esta vulnerabilidad, una de estas es con credenciales, es decir autenticado y otra, como es mi caso fue sin autenticación.

¿Que te parece ver el /etc/passwd?

java -jar jenkins-cli.jar -s http://192.168.1.131:8080 -http connect-node "@/etc/passwd"

¿Perfecto no crees? 😃

Bueno, a partir de aquí podemos probar ciertas cosas, como:

  • LFI to RCE

  • Leer archivos base, de los usuario, por ejemplo un id_rsa.

  • Leer archivos sensibles de jenkins.

Pero, recordemos que tenemos el servicio apache en el puerto 80, era la pagina por defecto, pero al realizar fuzzing me tope con connect.php

Que de primeras no podemos leerlo, pero con este LFI que tenemos, puede cambiar el asunto.

Interesante ¿no crees?

Intente reutilizar la contraseña en el panel de Jenkins, pero sin éxito. Y dirás, ¿existe algún otro servicio en el cual podemos probar dicha contraseña? No, por ahora...

Homer Simpson pensando on Make a GIF

Aquí esta el otro asunto... Existe la posibilidad que la maquina tenga múltiples interfaces de red 😑, por lo que, en cada una de estas puede alojar diferentes servicios.

Esto nos lleva al archivo /proc/net/if_inet6 el cual aloja las interfaces de red IPv6 con su respectiva IP.

Y justo tiene otra interfaz de red, así que podemos empezar por realizar otro escaneo con nmap bajo IPv6.

Pero antes hay que darle formato a la IP, con...

https://awebanalysis.com/es/ipv6-compress/

¿Listo? Realizamos escaneo con nmap.

Ahora, en efecto, tenemos otro servicio donde probar la contraseña de george el servicio ssh.

ssh -6 george@fe80::a00:27ff:fe10:b560%<interfaz_de_red_en_uso>

Computer Boy That GIF - Computer Boy That Poppy - Discover & Share GIFs

Escalada de privilegios

Bueno...

Después de la primera flag, empece por realizar algunas cosas para la escalada.

  • Permisos sudo

  • Exploración de permisos en /

  • Archivos de servicios

  • Archivos SUID

  • Tareas cron

  • Grupos

  • Vulnerabilidades en el kernel

Por bastante tiempo pase por desapercibido del binario wkhtmltopdf que podía ejecutar como root, mediante los permisos sudo -l.

¿wkhtmltopdf?

Buenooo, al ejecutar el binario aparentemente lo que hace es tomar un archivo convertirlo a pdf. De primeras intente buscar alguna vulnerabilidad descubierta, pero nada que me permitiera una escalada.

Jim Carrey GIFs - Find & Share on GIPHY

Así que me dispuse a buscar otras vías... como por ejemplo buscar algo en los procesos con pspy.

Hasta que mire algo curioso.

Pero no pude hacer nada ya que lo ejecuta root, y no tengo los permisos suficientes.

Funny Thinking GIFs - Find & Share on GIPHY

Al final había olvidado la función de wkhtmltopdf. Y recordemos que este toma un archivo y lo convierte en un archivo PDF, aun que, podemos ejecutar como root, es decir que mientras ejecutamos esto, tenemos temporalmente pemisos root...

Por lo tanto puedo tomar archivos de root.... Por que soy root no?

 sudo /usr/bin/wkhtmltopdf /root/<cualquier_archivo> archivo.pdf

Que tal si probamos con el archivo que estaba usando el usuario root, cuando observamos los procesos?

Ajaaa, todo parece correcto, vamos a ver que contiene este archivo, así que lo descargare en mi maquina de atacante para verlo mas cómodamente.

Lo descargue con netcat. Me coloque en escucha

Ahora es tiempo de enviarlo...

Vamos a ver los que nos espera.

Ah buenooo... No perdemos nada con intentarlo....

TrueProgramming2 on Make a GIF

Bien y eso fue todo, hasta luego estimado lector. Fue un placer.

Jim Carrey Reaction GIF by Laff


Referencias

Did you find this article valuable?

Support BlackPist0l's Blog by becoming a sponsor. Any amount is appreciated!