Trr0rlabs BugBountyLabs (Avanzado)

Instalación

Cuando obtenemos el .zip nos lo pasamos al entorno en el que vamos a empezar a hackear la maquina y haremos lo siguiente.

unzip bugbountylabs_trr0rlabs.zip

Nos lo descomprimira y despues montamos la maquina de la siguiente forma.

python3 bugbountylabs_trr0rlabs.py

Info:

██████╗ ██╗   ██╗ ██████╗     ██████╗  ██████╗ ██╗   ██╗███╗   ██╗████████╗██╗   ██╗    ██╗      █████╗ ██████╗ ███████╗
██╔══██╗██║   ██║██╔════╝     ██╔══██╗██╔═══██╗██║   ██║████╗  ██║╚══██╔══╝╚██╗ ██╔╝    ██║     ██╔══██╗██╔══██╗██╔════╝
██████╔╝██║   ██║██║  ███╗    ██████╔╝██║   ██║██║   ██║██╔██╗ ██║   ██║    ╚████╔╝     ██║     ███████║██████╔╝███████╗
██╔══██╗██║   ██║██║   ██║    ██╔══██╗██║   ██║██║   ██║██║╚██╗██║   ██║     ╚██╔╝      ██║     ██╔══██║██╔══██╗╚════██║
██████╔╝╚██████╔╝╚██████╔╝    ██████╔╝╚██████╔╝╚██████╔╝██║ ╚████║   ██║      ██║       ███████╗██║  ██║██████╔╝███████║
╚═════╝  ╚═════╝  ╚═════╝     ╚═════╝  ╚═════╝  ╚═════╝ ╚═╝  ╚═══╝   ╚═╝      ╚═╝       ╚══════╝╚═╝  ╚═╝╚═════╝ ╚══════╝

Fundadores
El Pingüino de Mario
Curiosidades De Hackers

Cofundadores
Zunderrub
CondorHacks
Lenam

Descargando la máquina trr0rlabs, espere por favor...

[########################################] 100%
Descarga completa.
La IP de la máquina trr0rlabs es -> 172.17.0.2

Presiona Ctrl+C para detener la máquina

Por lo que cuando terminemos de hackearla, le damos a Ctrl+C y nos eliminara la maquina para que no se queden archivos basura.

Escaneo de puertos

Info:

Vemos que tiene un puerto 80, que si entramos nos lleva hacia un dominio llamado trr0rlabs.bbl por lo que tendremos que añadirlo a nuestro archivo hosts.

Lo guardamos y ahora volvemos a entrar o recargar la pagina.

Veremos una pagina web y una cosa bastante interesante es que tenemos el rol del user por lo que tendremos que intentar conseguir el de admin supongo, pero como este laboratorio se centra en el XSS vamos a intentar realizar este tipo de inyecciones a ver que encontramos.

Si nos vamos a la seccion de Submit writeup veremos un formulario para poder subir nuestro writeup de alguna maquina, pero si en vez de poner el link de dicho writeup ponemos un link hacia nuestro servidor de python3 con nuestra IP para ver si recibimos un intento de que se descargara algo, veremos lo siguiente:

Servidor de Python3

Formulario de pagina

Y si esperamos un ratito veremos lo siguiente en el servidor de python3.

Veremos que funciono, por lo que vamos a intentar obtener alguna Cookie a ver si tenemos suerte.

cookie.js

Con esto lo que vamos hacer es que nos llegara la cookie en nuestro servidor de python3 en el puerto 8000, ahora si probamos a meter el link con dicho archivo veremos que lo obtiene pero no obtenemos nada, por lo que seguiremos buscando.

Ahora vamos a realizar un poco de fuzzing para ver que encontramos:

Gobuster

Info:

Vemos varias cosas interesantes, entre ellas el directorio backup y db, si entramos en ellos veremos lo siguiente:

backup

db

Vamos primero a ver el archivo users.db.

Sqlite3

Dentro de este entorno, listaremos las tablas:

Info:

Ahora veremos todo lo que contiene la tabla users.

Info:

Veremos que hay un usuario llamado admin junto con su contraseña hasheada.

Pero veremos que no se puede crackear si nos descomprimimos el archivo .tar.gz veremos lo siguiente:

Y veremos que hay una carpeta llamada trr0rlabs.bbl que contendra la pagina entera de trr0rlabs por lo que vamos a investigarlo.

Si vamos al siguiente archivo llamado form.php veremos lo siguiente:

Vemos que en la siguiente linea es vulnerable a un XSS ya que no esta sanitizando la entrada:

Si probamos a poner esto en la URL de esta forma:

Veremos lo siguiente en la pagina.

Vemos que esta funcionando y se nos esta ejecutando un XSS ahora nuestro objetivo es obtener la Cookie del usuario admin o por lo menos intentarlo.

cookie.js (Modificado)

PARA QUE EL SERVIDOR OBTENGA EL ARCHIVO

PARA RECIBIR COOKIE

Si nosotros metemos este payload para importar un archivo de forma externa de nuestra IP atacante del archivo creado anteriormente:

Si vamos a la consola veremos que nos lo esta bloqueando por el Origin ya que la cabecera de origen nos lo esta bloqueando:

Por lo que vamos a crear un servidor de Node.js para realizar un bypass de esta cabecera y que asi nos funcione para robar la Cookie

Antes vamos a instalar algunas dependencias que vamos a necesitar.

Ahora vamos a utilizar el mismo archivo cookie.js y vamos a establecerlo en la raiz del servidor Node.js.

Info:

Ahora vamos a crear el archivo llamado server.js para que desde la pagina acceda a dicho servidor y directamente inyecte en la cabecera el Origin de nuestro servidor y pueda cargar el archivo sin ningun problema.

server.js

Ahora vamos a iniciar el servidor con node de la siguiente forma:

Si nos vamos a la URL tendremos que poner lo mismo de antes, como en el principio de la siguiente forma:

En la consola de la pagina veremos que ha funcionado:

Y si volvemos a donde tenemos lanzado el servidor de Node.js veremos lo siguiente:

Vemos que lo capturo de forma correcta, pero sera la de nuestro usuario para obtener la del admin vamos a enviar en el campo de link de enviar el writeup el siguiente link:

Ahora si esperamos un poco veremos que nos llega la Cookie del usuario admin.

Vemos que ha funcionado y ahora solo tendremos que inspeccionar la pagina, irnos a Storage y en la parte de Cookie reemplazaremos la que tenemos actualmente por la del admin:

Con esto veremos que somos el rol admin y si nos vamos a la pestaña de admin veremos que lo hemos conseguido:

Vemos que las credenciales para el SSH aparecen ahi, pero no funciona la contraseña, si metemos por delante la palabra trr0rson veremos que funciona por lo que las credenciales serian las siguientes:

SSH

Metemos como contraseña trr0radmiñç y veremos que estamos dentro, seguidamente se nos mostrara la flag.

flag

Por lo que habremos terminado la maquina pudiendo haber explotado la vulnerabilidad XSS de un robo de Cookie.

Last updated