Write-ups

Resolución del CTF HAPPY JUMP

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 basicos 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 5000 nos encontramos un aplicativo web con un panel de regitro.

Intrusion host principal

Si probamos a hacer una operación aritmética vemos que nos devuelve la respuesta por lo que estamos frente a una vulnerabilidad Server Side Template Injection SSTI.

Vamos a utilizar un payload de PayloadsAllTheThing para obtener una revshell.

Una vez dentro nos damos cuenta de que hay mas interfaces, en esta caso de docker.

Y nos indica en una nota que la contraseña esta en el docker 10.10.10.2.

En este punto vamos a configurar el entorno de chisel para gestionar y reenviar los puertos de la10.10.10.2 a nuestra maquina atacante. En nuestra maquina atacante utilizaremos chisel en modo server para ponerlo a la escucha de los clientes.

Y compartimos chisel con la maquina victima en modo cliente indicando nuestra ip y el puerto al cual hemos puesto en escucha chisel.

Con foxyproxy podemos configuarlo para mediante socks5 para poder ver los palicativos web que hay sin necesidad de usar proxychains.

De igual manera configuramos proxychains indicando el puerto por defecto que usa chisel, el 1080, en este primer caso, veremos mas adelante como podemos modificarlo.

1ª Maquina Pivoting

Para hacer un reconocimiento inicial usaremos wfuzz (siempre con proxychains para tener conexión)en busca de directorios y archivos, la cual nos llama la atención «shop».

Nos encontramos ante una web la cual nos arroja una pista, de un posible Local File Incluison(LFI).

Confirmamos que se trata de un LFi y enumeramos dos usuarios potenciales.

Así que vamos a hacer fuerza bruta sobre ssh con uno de lo usuarios y nos da una contraseña.

Al no encontrar nada para poder escalar vamos a intentar hacer un ataque de fuerza bruta en local con un script que se puede descargar desde aquí.

https://github.com/Maalfer/Sudo_BruteForce

Al ejecutar el script que le hemos de pasar el usuario y el diccionario rockyou vemos que nos encuentra la contraseña.

Vemos que podemos ejecutar como root sin proporcionar contraseña el binario php así que mediante una llamada al sistema ejecutamos una bash con permisos de root.

Una vez dentro nos damos cuenta que esta maquina se ve con otra interfaz de red distinta(otro docker).

Con scp nos vamos a enviar socat y chisel a la maquina victima.

En la maquina anfitrión vamos a poner un oyente con socat para que todo el trafico que reciba por el puerto 1111 lo redirija a nuestra maquina atacante(192.168.0.108) por el puerto 1234 en el cual tenemos a la escucha chisel server.

ejecutamos chisel client en la maquina 1 indicando la interfaz de red de la maquina anterior(con la cual tiene visibilidad) y el puerto que asignamos en socat.

Y obtenemos la conexión, en la cual vemos que nos asigna el puerto 8888 el cual escogimos con chisel.

Debemos modificarlo en proxychains.

Y de la misma manera en foxyproxy.

2ª Maquina Pivoting

Hacemos un escaneo rápido y obtenemos los puertos 21, 80 y 3000.

vemos que tenemos un grafana con la version 8.3.0.

Y nos encontramos un exploit en searchsploit para ver archivos internos de la maquina.

Lo vamos a ejecutar indicándole que nos muestre el archivo /etc/passwd.

Al no encontrar nada mas voy a hacer un reconocimiento de directorio y vemos un archivo muy curioso.

Este archivo no indica una ruta de acceso.

Así que con el mismo exploit vamos a ver que tenemos en el, lo que parece una contraseña.

Así que entramos con esa contraseña con uno de los usuarios enumerados anteriormente.

Vemos que tenemos permisos de root para ejecutar un script en Python.

Y como además podemos modificar el archivo, vamos a crear una llamada al sistema para que nos ejecute una bash como root.

Una vez dentro vemos nuevamente que la maquina tiene una nueva interfaz de red con la que conecta, así que repetimos el proceso anterior, trayendo a la maquina victima socat y chisel.

En la maquina 1 de pivoting ejecutaremos un nuevo oyente para que todo el trafico que escuche por el puerto 2222 lo envié a la maquina host principal y este a su vez a nuestra maquina atacante.

Ahora tanto ejecutaremos chisel client apuntando hacia la interfaz anterior con la cual tiene visibilidad pero esta vez por el puerto 9999.

vemos que recibimos la conexión.

y repetimos el proceso tanto de foxyproxy como con proxychains cambiando el puerto al 99999.

3ª Maquina Pivoting

hacemos un reconocimiento con nmap y nos encuentra los puertos 22 y 80.

Y fuzzeando nos encuentra un archivo muy curioso llamada secret.php.

Nos da un usuario.

Así que haciendo fuerza bruta al servicio ssh nos saca la contraseña, una contraseña muy fuerte de las que le gustan a Mario ;).

Dentro de la maquina vemos que tiene visibilidad con una nueva interfaz.

Repetimos el proceso de traernos socat y chisel y ponemos un nuevo oyente por el puerto 3333 para que envié todo el trafico a la maquina 2.

Y ejecutamos chisel apuntando a la interfaz con la cual tiene visibilidad y por el puerto que asigamos en socat.

Repetimos el proceso añadiendo el puerto a foxyproxy y a proxychains.

4ª Maquina Pivoting

Y hacemos un reconocimiento en el cual nos saca unos archivos muy interesantes.

Tenemos un aplicativo web en el cual nos deja subir archivos.

Así que como el aplicativo esta hecho en php vamos a utilizar una revshell para obtener conexión apuntando a la interfaz de red de la maquina anterior.

Pero antes de nada necesitamos crearnos un túnel distinto con socat, puesto que el túnel creado actualmente apunta a chisel por el puerto 1234 y ahora necesitamos uno nuevo que apunte al puerto 6969.
Así que vamos a abrir túneles maquina a maquina de la siguiente manera.

Host principal.

Maquina pivoting 1.

Maquina pivoting 2.

Maquina pivoting 3.

Una vez creado el puente subimos el archivo pero con extensión .phar, puesto que no nos permite hacerlo en php y tenemos que bypasear esa restricción.

Se a subido correctamente.

Nos vamos la carpeta de uploads y lo ejecutamos.

Como vemos hemos recibido la conexión a través de todos los túneles correctamente

Una vez dentro vemos que tenemos una nueva interfaz.

Pero antes de nada escalaremos privilegios gracias al binario «env».

Nuevamente vamos a establece un oyente en el puerto 4444 en la maquina 3 que regiría el trafico a la maquina 2 y continúe hasta nuestra maquina atacante

Y ejecutamos chisel en la maquina 4 apuntando hacia la interfaz de red con la cual tiene visibilidad, es decir la 40.40.40.2 por el puerto 4444(el cual elegimos en socat).

Recibimos la conexión.

Y añadimos el puerto a foxyproxy y proxychains.

5ª Maquina Pivoting

Nos encontramos ante una academia bien chingona.

Pero vamos a fuzzear a ver que nos encontramos, y vemos un «warning.html» y un «shell.php».

Vemos que hay una webshell por lo que tiene que ser en el shell.php.

Pero como no sabemos el parámetro fuzzearemos para saber cual es.

Vemos que podemos ejecutar comandos desde la webshell así que vamos a ejecutarnos una bash.

Pero antes añadiremos un oyente nuevo aprovechando el 2 tunel que abrimos para la revhshell de la maquina 4, en esta caso pondremo el aoyente en la maquina 4 continuando el tunel anterior

Ejecutamos la bash apuntando a la interfaz en la cual tenemos el oyente y el puerto 8989 el cual elegimos.

estamos dentro y parace que es la ultima maquina

Listando archivos vemos uno oculto el cual tiene una contraseña de root.

Host Root

Efectivamente somos root del docker y encontramos una nueva contraseña, la de root del host principal.

Especial agradecimiento al compañero ElPingüinoDeMario por la creación y el conocimiento aportado en esta máquina.

Deja una respuesta

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