Enumeración de dominios y subdominios
El desafio Jewel forma parte del módulo Upload Vulnerabilities, de la ruta Web Fundamentals, presentada en la plataforma Try Hack Me. Este desafió pone a prueba los conocimientos adquiridos en la ruta de una manera práctica. Este exige una mayor atención a la enumeración de la web investigada, para que de alguna manera sea posible insertar código malicioso o se pueda subir un payload a la máquina objetivo.
1. Gobuster
utilizando el comando:
gobuster -u http://jewel.uploadvulns.thm/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
Realizamos el reconocimiento de las subcarpetas del sistema, con los siguientes resultados:
Es necesario notar que el directorio /content contiene las imágenes del slider.
Otra carpeta de interés es admin, la misma permite la ejecución de módulos:
2. Herramientas del desarrollador
Adicionalmente realizaremos el reconocimiento mediante las herramientas para desarrollador del navegador web firefox, con los siguiente resultados:
- En la portada de la web encontramos un slide, que presenta diferentes imágenes en forma rotativa, estas se muestran a partir de la clase "Background".
- La clase background se encuentra dentro la carpeta assets.
- En el depurador encontramos la función upload.js, que también se encuentra en la carpeta assets, esta restringe las siguientes características para los archivos a cargar al sistema:
- El tamaño del archivo a cargar.
- Verifica los números mágicos (hexadecimal de la cabecera de la imagen a subir), impidiendo que se suba imágenes con cabecera tipo jpg (ÿØÿ) pero no así imágenes con cabecera JPEG.
- Revisa que las extensiones de los archivos cargados sean de tipo imagen.
3. Wappalizer
Luego verificaremos las tecnologías del sistema con los siguientes resultados:
Conociendo el lenguaje de programación del servidor se puede realizar la búsqueda de un payload para el mismo.El enlace al payload es el siguiente: https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Reverse%20Shell%20Cheatsheet.md#nodejs
Sin embargo, es necesario descubrir la manera de introducir el payload en el servidor. Para ello utilizaremos burpsuite para modificar (o eliminar) la forma en que se filtra los archivos a ser subidos al servidor.
Payload
4. BurpSuite
Utilizando la herramienta BurpSuite, realizaremos la modificación necesaria para que sea posible subir el archivo que contiene el payload. Pero, es necesario modificar las reglas de petición de intercepción del cliente en proxy-->options
Editamos la primera opción que filtra las peticiones tipo html, css, jpg, etc
Nos interesa interceptar las peticiones js, para ello, quitaremos js del filtrado.
do-intercept-->response this request.
5. Gobuster
Posterior a ello necesitaremos ubicar nuestro archivo. Utilizaremos gobuster y el archivo que nos ofrece thm para hallar la "imagen" que cargamos. Para ello utilizaremos el comando:
gobuster -u http://jewel.uploadvulns.thm/content/ -x jpg -w UploadVulnsWordlist.txt
Con ello notaremos que nuestro archivo se ha subido al directorio content y se ha renombrado, en nuestro caso en NFG.jpg
nc -nvlp 4444
7. ejecución del código malicioso
Otra forma de subir el archivo
Como se cito anteriormente, se realizó pruebas con números mágicos, siendo que la cabecera "jpeg":
����^@^PJFIF^@^A00 10 4A 46 49 46 00 01
no se filtra y es posible cargar el payload con la misma.
Inspeccionando las subcarpetas hallamos el archivo cargado.
Sin embargo no fue posible ejecutar el código malicioso con las pruebas que realizamos.
Comentarios
Publicar un comentario