Whoiam DockerLabs (Easy)
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 whoiam.zipNos lo descomprimira y despues montamos la maquina de la siguiente forma.
bash auto_deploy.sh whoiam.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:
Si entramos en una pagina vemos algo normal, por lo que vamos a realizar un poco de fuzzing.
Info:
Vemos que hay un wordpress, por lo que vamos a utilizar una herramienta llamada wpscan.
wpscan
Info:
Vemos que hay un plugin llamado modern-events-calendar-lite, por lo que vamos a ver si tuviera algun exploit asociado.
Vemos que hay un exploit, pero tendremos que tener las credenciales de worpress para ello:
URL = Exploit GitHub
Si realizamos un poco mas de fuzzing.
Gobuster
Info:
Vemos que encontramos un directorio llamado /backups que contiene lo siguiente:
Escalate user www-data
Nos lo descargamos y lo descomprimimos:
Y veremos el siguiente archivo:
Info:
Por lo que vemos ya tendremos las credenciales, por lo que con el exploit que encontramos anteriromente lo utilizaremos de la siguiente forma:
Info:
Y vemos que nos creo un shell.php en la siguiente ruta.
Si entramos a ella veremos lo siguiente:

Vemos que tendremos una shell interactiva, por lo que haremos lo siguiente.
Escalate user rafa
Vamos a enviarnos una shell.
Antes de enviarlo nos pondremos a la escucha:
Lo ejecutamos el codigo anterior y si volvemos a donde tenemos la escucha, veremos lo siguiente:
Sanitización de shell (TTY)
Si hacemos sudo -l veremos lo siguiente:
Vemos que podremos ejecutar el binario find como el usuario rafa, por lo que haremos lo siguiente:
Con esto seremos el usuario rafa.
Escalate user ruben
Si hacemos sudo -l veremos lo siguiente:
Vemos que podemos ejecutar el binario debugfs como el usuario ruben, por lo que haremos lo siguiente:
Y con esto ya seremos dicho usuario.
Escalate Privileges
Si hacemos sudo -l veremos lo siguiente:
Veremos que podremos ejecutar el binario bash junto al script llamado penguin.sh como el usuario root, por lo que haremos lo siguiente:
Si leemos el script, veremos lo siguiente:
Por lo que vemos si ponemos el numero 42 nos da la frase correcta, por lo que podremos aprovechar esto para hacer lo siguiente:
Metemos este codigo:
Explicacion:
prueba[ ... ]+42→ Se ve como un intento de asignación de un array en Bash. Pero lo importante es lo que está dentro del[ ... ].$(chmod u+s /bin/bash >&2)→La expresión
$()ejecuta el comando dentro de ella en un subproceso.chmod u+s /bin/bashda permisos SUID a/bin/bash, lo que significa que cualquier usuario que ejecute/bin/bashtendrá privilegios de root.>&2redirige la salida estándar astderr, aunque en este caso no es esencial.
prueba[ ... ]+42→Bash ejecuta primero el contenido de
$()antes de asignarlo a una variable.Al ejecutar
chmod u+s /bin/bash, la bash del sistema ahora tiene permisos de root.Luego,
readasigna lo que queda (prueba[ ]+42), pero el daño ya está hecho.
¿Por qué funciona si el script se ejecuta como root?
Si este script es ejecutado por root, cualquier comando dentro de
$()también se ejecuta con privilegios de root.chmod u+s /bin/bashsolo puede ser ejecutado porroot, pero en este caso, el usuario aprovecha el script que ya está corriendo como root para que lo haga por él.Después de la ejecución,
/bin/bashse convierte en un binario SUID, lo que significa que cualquier usuario puede abrir una sesión Bash con privilegios de root
Info:
Y con esto vamos a comprobar que se haya aplicado correctamente.
Info:
Vemos que ha funcionado estableciendo los permisos SUID a la bash, por lo que haremos lo siguiente:
Info:
Y con esto veremos que seremos el usuario root, por lo que habremos termiando la maquina.
Last updated