🟢Move
En esta ocasión vamos a hacer el writeup de la máquina Move de Dockerlabs, una máquina Linux de dificultad Easy.
Despliegue
sudo bash auto_deploy.sh move.tar
[sudo] contraseña para kali:
## .
## ## ## ==
## ## ## ## ===
/""""""""""""""""\___/ ===
~~~ {~~ ~~~~ ~~~ ~~~~ ~~ ~ / ===- ~~~
\______ o __/
\ \ __/
\____\______/
___ ____ ____ _ _ ____ ____ _ ____ ___ ____
| \ | | | |_/ |___ |__/ | |__| |__] [__
|__/ |__| |___ | \_ |___ | \ |___ | | |__] ___]
Estamos desplegando la máquina vulnerable, espere un momento.
Máquina desplegada, su dirección IP es --> 172.17.0.2Primer acceso
Accedemos a la IP 172.17.0.2 a través del navegador y entramos a la página de configuración de un servidor Apache:

Escaneo de puertos
Solo encontramos 3 puertos abiertos, uno de ellos el puerto 3000 que puede tener algo interesante.
Al entrar llegamos a un panel de login de Grafana y abajo nos encontramos la versión, lo que nos permite buscar algún exploit público:

Fuzzing
Fuzzeando con Dirsearch por el puerto 80 nos encontramos un directorio interesante:
Entramos al directorio /maintenance.html y nos encontramos algo muy curioso, nos dice que el acceso está en /tmp/pass.txt :

Al intentar acceder no podemos directamente, por lo que tendremos que buscar otra vía.
Búsqueda de exploits
Utilizando searchsploit nos encontramos con un exploit para explotar un directory traversal y lectura de archivos arbitrarios:
Nos lo copiamos a nuestra ruta actual y probamos el exploit:
Exploit
Ejecutamos el exploit de la siguiente manera, lo que nos permite acceder a cualquier archivo del sistema, como /etc/passwd:
Observamos que hay un usuario freddy que es el único usuario junto con root que tienen shell, por lo que nos interesa comprometer a este usuario.
Con este script también vamos a intentar leer el archivo /tmp/pass.txt que nos encontramos en la fase de fuzzing:
Buum! Tenemos una contraseña!
Acceso por SSH
Vamos a intentar acceder por ssh con el usuario freddy y esta contraseña:
Estamos dentro!
Escalada de privilegios
Vamos a elevar nuestros privilegios en el sistema. El primer paso es hacer un sudo -l para ver los permisos de ejecución:
Vemos que el usuario freddy puede ejecutar con todos los permisos el script maintenance.py. Al leer este archivo con cat vemos que es un script que solamente hace un print:
Entonces para explotar esto vamos a editar el archivo maintenance.py añadiéndole unas líneas al final, y dejando un mensajito para decir que hemos pwneado la máquina:
No nos deja editarlo directamente con nano por lo que vamos a editarlo en nuestra máquina de atacante y enviarlo con un servidor local en python y wget:

Abrimos un servidor local con python en nuestra máquina de atacante
Descargamos
maintenance.pycon wget dentro del directorio/optEliminamos el script original y renombramos el script enviado
Ejecutamos el script como
sudoutilizando la ruta completa
Y ya somos root!
Última actualización
¿Te fue útil?
