CTF Paralele Intermediate
URL Download CTF = https://drive.google.com/file/d/1HAG4Lp8809IVbkR8mER6TxSuRXZC7lfT/view?usp=sharing
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 paralele.zipNos lo descomprimira y despues montamos la maquina de la siguiente forma.
bash auto_run.sh paralele.tarInfo:
██████╗ ██╗ ██╗███╗ ██╗██████╗ ██████╗ ██╗
██╔══██╗██║ ██║████╗ ██║╚════██╗██╔══██╗██║
██████╔╝██║ █╗ ██║██╔██╗ ██║ █████╔╝██║ ██║██║
██╔═══╝ ██║███╗██║██║╚██╗██║ ╚═══██╗██║ ██║╚═╝
██║ ╚███╔███╔╝██║ ╚████║██████╔╝██████╔╝██╗
╚═╝ ╚══╝╚══╝ ╚═╝ ╚═══╝╚═════╝ ╚═════╝ ╚═╝
==
@+:@ @##@
@++:-----+@ @@#+:----:+#
#-+-----:+:---------:
*::-----++-----::::#
::------+:--------:
#-+------+:-::-----#@
*::+=@@#++-------::@
@+= @++::+#@@@#*#
#-@
*+#++@
+-:::+-@
:-:+:::+
@+::*::::
*::++-::*
=:--:-:++ @-#
#*:---:--++@ @@
@::-:--++*
@::-:++#
*++*
:: Plataforma de máquinas vulnerables ::
:: Desarrollado por Pwn3d! y Dockerlabs - creado por @d1se0 ::
█▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█
█ FLAG{Pwn3d!_is_awesome!} █
█▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█
[✔] bc ya está instalado.
[✔] Docker ya está instalado
[!] Limpiando previos contenedores e imágenes
[✔] Cargando la máquina virtual
[✔] Activando máquina virtual
[✔] Máquina activa. Dirección IP: 172.17.0.2
[!] Presiona Ctrl+C para limpiar y salirPor 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 que solo tendremos un puerto 80, si entramos dentro del mismo veremos una pagina web normal en la que nos podremos registrar con un usuario, si lo hacemos e iniciamos sesion veremos que nos permite cambiar la foto de perfil del usuario con el cual nos hemos registrado.
Pero en la descripcion veremos que solamente permite archivos JPG/PNG por lo que vamos a subir un archivo normal de imagen, para ver donde se guardan.
Echo eso, veremos que se guarda en la carpeta /uploads, si probamos a subir un archivo PHP no nos dejara, vamos abrir BurpSuite para capturar la peticion de subida de archivo y veremos lo siguiente:
test.php
Peticion Subida de archivo
Vamos a probar a cambiar el tipo por text/html para que haya una mejor compatabilidad por si acaso, pero aun asi no nos deja, vamos a mandarlo al repeater con el Ctrl+R, ahora tambien mandaremos al repeater la otra peticion para poder leer el archivo que se deposita en /uploads de las imagenes teniendo algo asi:
Peticion Leer archivo
Vamos a probar una vulnerabilidad llamada File Upload Race Condition / Time-of-Check-to-Time-of-Use (TOCTOU) vamos a enviar una peticion en paralelo, para que se envie la primera que es la subida del archivo y la segunda a la misma vez que es para leer el archivo en cuestion de milesimas, para que al leerlo lo ejecute y obtengamos una shell, por lo que tendremos que configurar BurpSuite en el Repeater de la siguiente forma:
peticion1 (Enviar archivo)
peticion2 (Entrar en archivo)
Tendremos que crear un grupo en BurpSuite de peticiones en la parte de Repeater donde hay un +, seleccionamos las peticiones y a crear, si todo sale bien, veremos esto:

Ahora vamos a darle a la felchita donde pone Send y veremos un desplegable el cual seleccionaremos la opcion llamada Send group in paralle (last-byte sync) con esto lo que haremos sera enviar las dos peticiones de forma simultanea.
Nos pondremos a la escucha antes de enviar nada.
Si enviamos estas peticiones en paralelo y funcionara, podremos ver lo siguiente donde tenemos la escucha:
Sanitización de shell (TTY)
Escalate user paralele69
Si enumeramos un poco veremos en la carpeta /tmp el siguiente archivo:
Si leemos el archivo veremos lo siguiente:
Veremos lo que parece ser la contraseña en Base64 del usuario paralele69, si lo decodificamos veremos esto:
Info:
Si lo probamos en dicho usuario veremos que no funcionara, si probamos el mismo Base64 tampoco funcionara, pero si probamos como contraseña el nombre del propio archivo, veremos que si funciona.
Metemos como contraseña SuperMegaUltraPasswordSecret y veremos que estaremos dentro, por lo que leeremos la flag del usuario.
user.txt
Escalate Privileges
Si hacemos sudo -l veremos lo siguiente:
Veremos que podemos ejecutar el script email.sh como el usuario root, por lo que vamos a leer el script a ver que pone por dentro.
Vemos que es un script muy simple, pero si leemos el help en la opcion -n veremos que ejecuta un nano por lo que si lo ejecutamos como root se estara ejecutando nano como root y podremos obtener una shell de esta forma:
Info:
Con esto veremos que ya seremos root, por lo que leeremos la flag de root.
root.txt
Last updated