Writeup caption HTB

El sitio web de Caption está protegido mediante un servidor de caché, un proxy y un firewall para aplicaciones web. Planeo aprovecharme de una vulnerabilidad de contrabando de texto plano HTTP/2 (h2c) para acceder a páginas que de otro modo no serían visibles. Además, realizaré una inyección de HTML con el objetivo de robar la cookie de administrador, lo que me permitirá ampliar mi acceso a través del contrabando. A partir de esto, obtendré acceso a una instancia de CopyParty y explotaré una vulnerabilidad de cruce de directorios para leer una clave SSH, lo que me dará control sobre la máquina. Para obtener privilegios más altos, utilizaré una inyección de comandos en un manejador de logs. y por ultimo escalado con thrift

lo primero como siempre el escaneo de nmap

nmap -p- --open --min-rate 5000 -Pn -sT -vvv -n 10.10.11.33 -oG allports

vemos que hay dos web una en el puerto 80 y una en el puerto 8080 vemos tambien un dominio por lo que o añadimos a el etc/hosts

ahora la voy a hacer un whatweb a las dos paginas webs

no vemos informacion critica por lo que vamos para dentro

en http://caption.htb vemos lo siguiente

no hay mucho en lo que tocar por lo que voy directo a hacer un fuzzing con disearch por ejemplo

no sale nada interesante por lo que vamos a ver la del puerto 8080. vemos un gitbucket sin mas vemos un usuario root

si vamos a uno de los git veremos uno llamado update acces contro y si miramos los cambios veremos lo siguiente

una contraseña que si la ponemos en el puesrto 80 ganamos acceso

ahora vemos apartados interesantes en especial uno llamado logs y otro downloas que nos da un 404 este sitio es vulnerable a H2C Smuggling por lo que podriamos usar la siguiente erramienta para efectuarlo de forma mas facil https://github.com/BishopFox/h2csmuggler

que pasa que al ejecutar

basicamente necesitamos una cookie para ello si capturamos la peticion en firewalls o en home veremos lo siguiente

Al analizar los resultados del Burp Suite, observamos un archivo JavaScript que obtiene recursos dinámicamente de una URL interna, utilizando el parámetro utm_source. Esto presenta una oportunidad para probar una posible manipulación inyectando cabeceras HTTP o cargas útiles para redirigir el JavaScript a una URL de recursos personalizada y ver si podemos anular la URL interna original.

Además, la respuesta incluye una cabecera X-Cache con un valor de MISS, que normalmente genera Varnish para indicar una pérdida de caché (probablemente la primera visita a la página web). La cabecera Cache-Control: public, max-age=120 revela que la caché caduca y se actualiza cada 2 minutos, lo que proporciona un breve margen para probar el comportamiento relacionado con la caché.

por lo que la forma de aprovecharnos de esto es la siguiente

nos ponemos en con un server python con el siguiente exploit para sacar la cookie

y añadiremos la siguiente cavecera

veremos que se cambia la el link y que nos llega la cookie con la que podemos ver los logs

vemos ace ping a un puerto que es el 3923 el cual nosotros no vimos en nmap porque es local con el directorio downloads tenemos un parametro url al cual podemos apuntar por lo quevamos a probar

vemos cosas intereantes principalmente el .cpr que pasa si apunto al etc/passwd?

pues que lo vemos por lo que ahora es cuestion de ver si sacamos el id_rsa de margo

y ya estaria lo demas norma el chmod 600 y para dentro

root

ejecutamos un linpheass

vemos lo siguiente. un escript go que levanta el puerto 9090 con un servidor thrift

como vemos es root el que lo esta ejecutando

para poder comunicarnos necesitamos tener nuestro propio servidor thrift

para ello vamos a hacer lo siguinet en la maquina victima

entramos y ejecutamos el siguiente comando para establecer la conexion

y ahora ese archivo nos lo pasamos a nuestra mquina local de la siguiente forma

una vez con el archivo nos hacemos que el puerto 9090 sea el de la maqina

ahora devemos crear en la mquina victima un log maligno:

lo dejamos en /tmp por ejemplo

ahora en nuestra maquina ejecutamos el siguiente comando

y se nos genera un directorio gen_py

nos metemos dentro

y vamos hay vamos a crear el exploit que sera este:

lo ejecutamos y

Última actualización