CTF chmod-4755 Intermediate
URL Download CTF = https://drive.google.com/file/d/1NdzO9vNuZNz6z2I7ZdpQU90Ut0NtU6HC/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 chmod-4755.zipNos lo descomprimira y despues montamos la maquina de la siguiente forma.
bash auto_run.sh chmod-4755.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:
Vemos que hay un smb y un ssh, si probamos a conectarnos al ssh con cualquier usuario, vemos el siguiente banner.
Banner SSH
Info:
Bastante interesante la palabra fuckit, nos la guardaremos.
Si investigamos en el smb, lo enumeraremos.
enum4linux
Info:
Vemos que hay 2 usuarios smbuser (Que sera para el samba) y rabol (Que seguramente sea el de ssh).
SMB
Intentamos conectarnos con el usuario smbuser al smb, pero nos pedira una contraseña y si probamos a meter la palabra que encontramos en el banner, veremos que nos deja.
Metemos la palabra fuckit como contraseña y veremos que funciona.
Si listamos veremos un archivo.
Nos lo descargamos ya que no podemos hacer otra cosa.
Y contiene lo siguiente.
Nos dice que leamos mejor, por lo que si leemos el recurso compartido el nombre que tiene.
Probaremos a utilizarlo como contraseña para el usuario rabol.
SSH
Si metemos como contraseña la palabra share_secret_only veremos que es la correcta.
Exit rbash
Una vez dentro veremos que estaremos en una restricted bash y solo podremos ejecutar 2 comandos (ls y python3), pero podremos escapar de ella utilizando python3 y haciendo lo siguiente.
Y con esto ya habremos escapado, pero si intentamos hacer algun otro binario, veremos que no podemos, ya que el PATH esta limitado, por lo que nos importaremos el de nuestro host de la siguiente forma.
Y ahora si podremos hacer los binario y todo, ya que nuestro PATH estaria "arreglado", por lo que leeremos la flag.
user.txt
Escalate Privileges
Si vemos que permisos SUID tenemos, veremos los siguientes.
Info:
Vemos que tenemos permisos SUID en el binario curl, pero si investigamos mas, vemos en los procesos que se esta ejecutando lo siguiente.
Info:
Por lo que vemos en esta linea:
root esta ejecutando en bucle un archivo llamado bash.sh en /usr/local/bin/ veremos a ver que permisos tiene.
Info:
Vemos que tiene unos permisos normales, por lo que no podremos editarlo, pero como hemos visto antes, tenemos el curl con permisos de SUID, por lo que podremos hacer lo siguiente.
En nuestra maquina host crearemos un archivo que se llame igual al de la maquina victima.
bash.sh
Lo guardamos y abriremos un servidor de python3 en la maquina host.
Ahora en la maquina victima aprovecharemos los permisos de SUID del binario curl y nos iremos al siguiente directorio.
Dentro de aqui utilizaremos curl para sustituir el archivo bash.sh por el contenido de nuestro hsot.
Info:
Ahora si leemos el archivo bash.sh.
Info:
Veremos que funciono correctamente y si vemos los permisos de la bash.
Info:
Vemos que funciono, por lo que haremos lo siguiente.
Y con esto ya seremos root, por lo que leeremos la flag.
root.txt
Last updated