Write-ups

Resolución del CTF Thlcppt_v16

❌Nombre: Thlcppt_v16
📈Nivel: EXPERTO
💻OS: Linux
🙋🏽‍♂️Creador: murrusko

Enumeración

Escaneo de puertos

Realizamos un escaneo de todos los puertos para saber cuáles están activos.

Los parámetros utilizados son:

  • -p- : Escaneo de todos los puertos. (65535)
  • -sS : Realiza un TCP SYN Scan para escanear de manera rápida que puertos están abiertos.
  • -sC : Realiz una escaneo con los scripts básicos de reconocimiento
  • -sV : Realiza un escaneo en buqueda de los servicios
  • –min-rate 5000: Especificamos que el escaneo de puertos no vaya más lento que 5000 paquetes por segundo, el parámetro anterior y este hacen que el escaneo se demore menos.
  • -n: No realiza resolución de DNS, evitamos que el escaneo dure más tiempo del necesario.
  • -Pn: Deshabilitamos el descubrimiento de host mediante ping.

En el puerto 80 nos encontramos ante un pedazo de examen, el cual si le damos a iniciar.

Nos da un dominio junto con su subdominio, un WordPress limpio.

Vamos a enumerar usuarios y plugin, con la api(ya esta regenerada por si la queréis usar), para que enumere mejor.

Nos encontramos con un plugin vulnerable junto a su CVE-2023-23813.

Y además nos identifica algunos usuarios.

Para explotar esta vulnerabilidad, encontramos este articulo, así que vamos a dumpear la base de datos con sqlmap.

Nos ha sacado algunos has y lo rompemos con hascat.

Y vemos que podemos acceder con el usuario «tom«.

Dentro del panel vemos que a habido una filtración de datos y nos da la url, así que accedemos a ella.

Vemos que necesitamos una estructura en json, así que para ello utilizaremos la herramienta wrapwrap.py.

Instalamos el requerimiento «ten».

Y lanzamos la herramienta hacia el «/etc/passwd» con un mensaje vacío, el cual nos crea un wrapper en php en el archivo chain.txt en nuestro equipo,

Abrimos un servidor en Python.

Y pedimos la solicitud.

Como vemos podemos listar usuarios de /etc/passwd.

Y el la siguiente no nos aparece nada, pero en el código fuente vemos que nos da unas credenciales.

Entramos por ssh.

Y encontramos y archivo encodeado en rot13..

Decodeamos y nos da una contraseña.

Vemos que en la bash hay un alias con la contraseña de «rafael» para entrar a un contendor.

Entramos.

Y vemos que podemos ejecutar vim como root sin proporcionar contraseña.

Ejecutamos una bash.

Y estamos dentro, vemos que hay un configuración de vpn para conectarnos con Wireguard así que nos lo pasamos a nuestra maquina.

Así que establecemos ligolo, añadiendo.

Ponemos ligolo modo proxy.

Y el agente el la maquina victima.

Iniciamos la sesión.

Añadimos la nueva subred.

E iniciamos a la vpn con wireguard.

Una vez dentro entramos como el usuario Jerry con las credenciales anteriormente encontradas en Rot13.

Vemos que pertenecemos al grupo sistema y este puede escribir dentro del directorio «/etc/apt/apt.conf.d«.

Vamos a modificar los permisos de la bash con el comando APT antes de la actualización de paquetes.

Ejecutamos «bash -p«.

Y somos root, encontramos unas credenciales de jerry.

Entramos como jerry al host principal y vemos que podemos ejecutar como root nginx sin proporcionar contraseña.

Encontramos un exploit el cual nos crea una id_rsa como root.

Le damos permisos y lo ejecutamo.s

Y accedemos como root del host principal con la id_rsa.

Deja una respuesta

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