Race DockerLabs (Intermediate)
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 race.zipNos lo descomprimira y despues montamos la maquina de la siguiente forma.
bash auto_deploy.sh race.tarInfo:
## .
## ## ## ==
## ## ## ## ===
/""""""""""""""""\___/ ===
~~~ {~~ ~~~~ ~~~ ~~~~ ~~ ~ / ===- ~~~
\______ o __/
\ \ __/
\____\______/
___ ____ ____ _ _ ____ ____ _ ____ ___ ____
| \ | | | |_/ |___ |__/ | |__| |__] [__
|__/ |__| |___ | \_ |___ | \ |___ | | |__] ___]
Estamos desplegando la máquina vulnerable, espere un momento.
Máquina desplegada, su dirección IP es --> 172.17.0.2
Presiona Ctrl+C cuando termines con la máquina para eliminarlaPor 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:
Veremos un puerto bastante interesante el 5000 que que aloja por lo que se ve una pagina web, entiendo que esta en python3 con la tecnologia Flask como suele ser de normal, si entramos dentro...
Info:

Veremos como una especie de gestion de recursos en una nube teniendo planes mensaules, espacio, etc...
Nivel 1
Si investigamos un poco mas a fondo veremos que el objetivo de este nivel es realizar un race condition por lo que vamos abrir BurpSuite y vamos a capturar la peticion de cuando le damos Click a Ejecutar Acción.
El objetivo es ejecutar mas de 3 acciones, ya que si enviamos la peticion de forma paralela antes de que llegue a la validacion, podremos ejecutar tantas acciones como queramos.
Cuando capturemos la peticion del Click veremos lo siguiente:
Ahora esto le haremos Ctrl+R para enviarlo al Repeater, una vez ahi seleccionaremos la peticion dandole click derecho y lo añadiremos a un grupo (La opcion se llama Add tab to group) hecho esto le volveremos a dar click derecho y le daremos a duplicate tab para duplicarlo unas 6 veces mas o menos, teniendo en total unas 7 peticiones, despues en el boton naranja llamado Send nos aparecera una flechita, le daremos a la opcion Send group (Parallel) para enviar todas las peticiones del grupo en paralelo a la vez quedando algo asi:

Ahora si le damos al boton naranja, veremos que se envian todas a la vez, en la respuesta del servidor todas se han validado de forma correcta pudiendo explotar esto mismo, ahora si recargamos la pagina...

Veremos que lo hemos conseguido, por lo que vamos al nivel 2 con dichas credenciales.
Nivel 2
Si entramos dentro de dicho nivel veremos lo siguiente:

Vemos una pagina en la que tenemos una cartera virtual pero con una saldo de 0.00, pero si canjeamos el cupon veremos que nos da 10.00$, la idea aqui es similar a la de antes, hay que realizar un Race Condition para poder canjear dicho cupon las veces que queramos hasta llegar a los 50.00$ y comprar el mes, supongo que por dentro tendra una validacion floja en el echo de que cuando tu envias dicha peticion del cupon este se entrega y despues se valida que ya lo tenga canjeado, por lo que podremos enviar peticiones simultaneas antes de que llegue a la fase de validacion.

Primero tendremos que capturar la peticion de canjeo de cupon con BurpSuite:
Esto lo enviaremos al repeater y haremos el mismo proceso de antes de añadirlo a un grupo, duplicar las peticiones y dejarlo listo para enviar en paralelo:

Ahora si las enviamos y visualizamos la respuesta del servidor, veremos que todas se validaron de forma correcta, si volvemos a la pagina y la recargamos veremos este saldo:

Vemos que ya podemos comprar el PRO de sobra, si le damos al boton de comprar...

Veremos que lo hemos conseguido, ahora podremos acceder al nivel 3 metiendo las siguientes credenciales.
Escalate user racebtc
Nivel 3
Dentro de dicho nivel veremos lo siguiente:

Aqui vemos que ya estamos jugando con una cartera de criptomonedas, por lo que entiendo aqui la idea es que cuando le damos a Buy BTC se nos compra una criptomoneda, pero si capturamos la peticion de compra y la duplicamos para enviarla multiples veces, podremos canjear esa compra tantas veces como queramos pudiendo tener muchas criptomonedas.
Vamos a capturar la peticion de Buy BTC viendo lo siguiente:
Ahora realizaremos el mismo proceso de antes enviaremos la peticion al repeater y lo añadiremos a un grupo, dentro de este lo duplicaremos unas 10 veces, la pondremos en paralelo quedando algo asi:

Ahora si las enviamos, y visualizamos la respuesta del servidor, veremos que se han canjeado de forma correcta todas, por lo que si recargamos la pagina veremos lo siguiente:

Lo hemos conseguido ahora nos podremos conectar por SSH con dichas credenciales.
SSH
Metemos como contraseña chocolate...
Veremos que habremos accedido de forma correcta.
Escalate Privileges
Si listamos la carpeta actual veremos el siguiente archivo:
Si lo ejecutamos de esta forma:
Info:
Veremos que nos proporciona la contraseña de root directamente, por lo que vamos acceder al usuario root metiendo dicha password.
Metemos como contraseña RaceCondition2024!...
Y con esto veremos que ya seremos root, por lo que habremos terminado la maquina.
flag.txt
Last updated