Nibbles [EASY🟢]

Dificultad: Fácil

1- Reconocimiento y escaneo

1.1 Ping

Podemos notar que se trata de una maquina Linux, debido al TTL:

1.2 Nmap

Vemos que esta corriendo el puerto 22(OpenSSH 7.2p2 Ubuntu 4ubuntu2.2 (Ubuntu Linux; protocol 2.0)) correspondiente a un servidor SSH, el puerto 80(Apache httpd 2.4.18 ((Ubuntu))) correspondiente a un servidor web

Tambien el sistema operativo Linux que se encuentra corriendo en la maquina objetivo es un Ubuntu

1.3 whatweb

Vemos tecnologías como:

1.4 Revisión del código fuente

Vamos a revisar el código fuente de la pagina web alojada en el puerto 80(Apache httpd 2.4.18 ((Ubuntu))):

CTRL + U:

En concreto nos intersa la ultima linea de todas:

Ahora vamos a ir al recurso del servidor web que esta comentado donde nos dice que no hay nada interesante :)

"http://10.10.10.75/nibbleblog/"

1.5 Fuzzing

En este caso el Fuzzing lo vamos a realizar con la herramienta "dirb" con la URL del recurso que encontramos dentro del codigo fuente "http://10.10.10.75/nibbleblog/" :

Ejecutamos:

Dentro del fuzzing, podemos ver directorios intersantes de la aplicación web de Nibbleblog como "plugins", "themes" y "content", tambien se puede ver un directorio de "admin" y "admin.php"

Vamos a revisar el directorio en concreto de "admin.php":

Ya tenemos un panel de login para la administración de Nibbleblog

2- Explotación

2.1 Searchsploit de Nibbleblog

Si revisamos la pagina web, podemos ver que se trata de una tecnología web o un gestor para crear blogs de forma automatica:

"Powered by Nibbleblog", vamos a buscar con la herramienta "searchsploit" de Kali, si existe alguna vulnerabilidad

Tenemos 2 vulnerabilidades, una para subida de archivos arbitraria y para SQL Injections

2.2 Credenciales predeterminadas de Nibbleblog

Si vamos al panel de login de administración de Nibbleblog, luego de una investigación, me di cuenta que las credenciales por default de la tecnologia web de Nibbleblog es:

Probemos las credenciales:

Login:

2.3 Reverse shell con PHP malicioso

Si nos vamos al apartado de "plugins" dentro del panel de administración de Nibbleblog, veremos un plugin llamado "My image":

Entramos en la configuración del plugin:

Podemos subir un archivo malicioso de PHP, ya que como vimos anteriormente, esta tecnología web esta escrita sobre PHP, en mi caso, el código que utilizare para el archivo malicioso PHP, utilizare el siguiente:

Lo creamos con Vim o nano y lo visualizamos con cat:

Y vamos a subirlo:

Parece que da unos errores, pero se subio correctamente:

Ahora si vamos al directorio "content":

Vamos al directorio "private":

Ahora al directorio "plugins".

Tenemos ubicado los plugins dentro de los directorios del servidor web, como el php malicioso lo subimos dentro del plugin de "my_image" vamos a entrar dentro del mismo:

Aparentemente nos cambio el nombre del archivo php malicioso a "image.php", asi que vamos entrar al archivo "image.php" y vamos a cambiar el parámetro "?cmd=", de tal manera que la URL para ejecutar comandos, nos quedaria asi:

En nuestro caso probaremos con el comando "whoami":

Ahora vamos a obtener una reverse shell dentro de nuestro Kali mediante este archivo php malicioso que subimos, asi que vamos a abrir una nueva consola en Kali y nos vamos a poner en escucha con netcat por el puerto 443:

Y el comando que vamos a utilizar que vamos a utilizar como parametro dentro del archivo PHP malicioso, es el siguiente:

Pero recordemos que como estamos en un ambiente web de hacking y este comando lo vamos a ingresar en una URL, hace falta encodearlo, en mi caso lo encodeare con Burp Suite, de tal manera que en mi caso, con mi dirección IP de la VPN de Hack The Box:

De tal manera que con mi IP de VPN de HTB quedaría de la siguiente manera:

Y la URL completa, quedaría de la siguiente forma:

Vamos a poner la URL dentro del navegador Firefox:

Se quedara cargando, pero si vamos a la consola de Kali, donde estábamos en escucha con netcat por el puerto 443:

Ya tendremos acceso a un usuario llamado "nibbler" de la maquina

2.4 Obtención de la flag de usuario

La flag de usuario se encuentra dentro de la ruta absoluta "/home/nibbler/user.txt":

3- Escalado de privilegios

3.1 Permisos de usuario

Para verificar los permisos que tenemos con el usuario "nibbler", utilizamos el comando "sudo -l":

3.2 monitor.sh

Vemos que dentro del usuario "nibbler", tenemos permisos para ejecutar el script en bash "monitor.sh" como si fuésemos usuario root, vamos a ver el código que contiene este script en bash con el siguiente comando:

Parece que el script "monitor.sh" esta comprimido, si vamos a la carpeta personal del usuario "nibbler", veremos que tenemos un archivo ".ZIP":

Vamos a descomprimir el archivo "personal.zip" que esta relacionado con la ruta del script que podemos ejecutar como si fuésemos root, para eso utilizaremos el comando "unzip":

Listamos los directorios:

Vamos a la carpeta "personal" y listamos los directorios:

Vamos al directorio "stuff" y listamos los directorios:

Ya tenemos el archivo "monitor.sh", ahora vamos a ver que contiene dentro:

Es un script para monitorear el sistema operativo que esta corriendo sobre la maquina objetivo

Ahora vamos a ver mas específicamente que permisos tenemos sobre este script con el comando "ls -la":

Tenemos permisos de todo tipo para ejecutar este script, asi que vamos a cambiar el contenido de este script para elevar los privilegios, para eso vamos a reemplazar el contenido del archivo "monitor.sh", vamos a utilizar el comando "echo" y el comando que utilizaremos para reemplazar el contenido del archivo es "su -", de tal manera que el "echo" que vamos a utilizar es:

Ejecutamos:

Y le asignamos permisos totales al script con el comando "chmod":

Y por ultimo ejecutamos el script (Con sudo):

Nos da una shell con el usuario root, pero sin prompt, vamos a obtener un prompt con el comando "script -c bash":

3.3 Obtención de la flag root

La flag de root se encuentra dentro de la ruta absoluta "/root/root.txt", vamos a hacerle un cat:

Con esto, concluimos la maquina "Nibbles" de Hack The Box

Espero te haya sido de ayuda este Write Up :)

Si tuviste alguna dificultad a la hora de resolverlo, no olvides contactarme en mis redes sociales

Última actualización