Resolución maquina Runner | HackTheBox | Full WriteUp

 

Runner




Por
Rick Álvarez

Reconocimiento

Vamos a identificar en nuestra red detalles de nuestra maquina victima:


Enumeración

Quick scan:


Targetted ports: Servicios y versiones



Puerto 22: OpenSSH 8.9p1

searchsploit:


Pudiéramos intentar fuerza bruta (bruteforce) pero aún no tenemos nombres de usuario que podríamos utilizar.


Puerto 80: nginx 1.18.0

searchsploit:


whatweb:


Tenemos un 302 Redirect hacia http://runner.htb

Esto quiere decir, virtual hosting, vamos agregar este host a nuestro archivo /etc/hosts:


Intentamos nuevamente:


Vamos a ver que nos muestra el navegador:


Como es buena costumbre se recomienda:

- Revisar el código fuente del sitio:

nada!


- Revisar si el proyecto de la pagina es parte de algún proyecto open-source/Github para ver si hay vulnerabilidades:

No encontré nada pero es buena practica realizar este ejercicio.


- Navegar y jugar en el sitio para ver si se puede obtener algún XSS, SQLi o SSTI, etc:

Al menos para este sitio no encontré nada que pudiera explotar



- Revisar tecnologías y verificar si existen vulnerabilidades:



- Fuzzing (esta pudiera ser mi parte favorita, aun que es un tanto delicada):

Subdominios:


Nota: dado a que mi maquina virtual de kali se colgaba cada que ejecutaba wfuzz, tuve que limitar la memoria a 4GB como máximo con systemd-run, pero el comando se puede ejecutar directamente.

Ahora vamos agregar este sub-dominio al /etc/hosts:


Y vamos al sitio:


Tenemos un login, y además una versión.

Vamos a ver si tiene:

- Credenciales default

- Vulnerabilidades conocidas:



Hemos encontrado algunas joyitas, vamos a ver que podemos explotar:

Referencia:

JetBrains TeamCity 2023.05.3 - Remote Code Execution (RCE) - Java remote Exploit (exploit-db.com)

Creando admin account:


Intentamos entrar con las credenciales:


Ingresamos!

...

Dentro de la administración del sitio, tenemos una opción de "Backup" nos permite descargar un archivo .zip.

Dentro de este backup encontramos un archivo, /database_dump/users:


users:


Intentando fuerza bruta de hashes con "John the ripper":


... vaya que demoro lo suyo pero al final ...


2 hrs para nada...

Intentamos ahora con "matthew" pero ahora con threads:


y ...


papaya de celaya!


Recordamos que tenemos el puerto 22 abierto, pudiéramos intentar conectarnos...



...

Recuerdan el backup que descargamos? 

Pues después de estar revisando carpeta por carpeta, me encontré lo siguiente:


Bien, no sabemos de que usuario es pero tenemos 2 y tal ves un tercero, vamos a ver si podemos ingresar por ssh.

No olvidemos cambiar los permisos del archivo id_rsa:


Somos john!



Y aquí ya obtuvimos la primer flag!

...

Podemos ejecutar docker:



Puerto 8000: Nagios NSCA

searchsploit:


Vaya

Parece que aquí tenemos una tarea, investigar si algún exploit pude ser explotado...

...buscar exploit viable...

whatweb:


- Revisar tecnologías y verificar si existen vulnerabilidades:


Fuzzing (esta pudiera ser mi parte favorita, aun que es un tanto delicada):


Explotación

CVE-2023.42793:

CVE-2023-42793/exploit.py at main · hotplugin0x01/CVE-2023-42793 · GitHub

ReverseShell:

Maquina atacante:


Maquina victima:



Maquina atacante:


Post-Explotación

Privilage escalation:

Dado a que no tengo la contraseña de john (de momento)...


Voy a ejecutar linpeas.sh para realizar una enumeración de nuestra maquina victima:

Encontré algo interesante, hay puertos internos abiertos:


Vamos a utilizar curl para ver que podemos observar de estos puertos:


Vamos a realizar un port forwarding de los puertos 8111 y 9000 con ssh:

Puerto 8111:

Desde nuestra maquina atacante, vamos al navegador a revisar el puerto 8111:


Vale! este es el puerto del sitio Teamcity, que por cierto ya hemos explotado.

Puerto 9000:


Vamos al sitio desde nuestro navegador:

Ulala!

Vemos un login! 

Vamos a investigar un poco...

A ver, lo primero que se me ocurre es que, tenemos credenciales del usuario matthew, pudiéramos intentar entrar con estos:


Intentamos ...


Excelente estamos dentro del portal portainer.io

Al mismo tiempo estoy intentando averiguar si puedo conseguir explotar alguna vulnerabilidad de este portal...

Referencia:

Use Portainer for Privilege Escalation – Cyber Security Architect | Red/Blue Teaming | Exploit/Malware Analysis (rioasmara.com)

Images:


ID image:



sha256:ca2b0f26964cf2e80ba3e084d5983dab293fdb87485dc6445f3f7bbfc89d7459


Create volume:

Add container:

Console: Interactive & TTY

Create Container

Deploy the container:


Nice!

Ahora si pudimos crear el contenedor, vamos a acceder a el desde el icono de terminal ">_".


Damos en connect:

Vamos a cambiar los permisos de la /bin/bash pero que se encuentra dentro de /mnt/root:


Esto le da permisos de SUID a la bash:

Ahora si regresamos a nuestra conexión "john" e intentamos ejecutar "bash -p", veamos que resulta:


Chulada!

Somos root!

Ya podríamos ir por al flag!




Hemos entrado hasta la cocina!


Conclusión

En esta maquina hemos explotado el dominio teamcity.runner.htb con la vulnerabilidad CVE-2023-42793, la cual nos permitió agregar un usuario administrador en la plataforma teamcity.

Posteriormente pudimos acceder a SSH con el id_rsa de autenticación del usuario john.

Desde aquí, pudimos encontrar un sitio de administración de contenedores, portainer.io.

Aquí ingresamos con las credenciales de matthew, que por cierto rompimos por fuerza bruta.

Desde aquí y utilizando el concepto de "docker breakout" obtuvimos la escalada de privilegios para ser root y poder obtener el control total de la maquina.


Espero te haya gustado este WriteUp de esta gran maquina de HTB.

Hasta la proxima.


Comentarios