Nibbles Writeup

FácilLinux
Las flags que resuelven este reto se encuentran protegidas. Comparte el artículo en redes sociales para desbloquearlas.
$User Flag
d52c6521...
#Root Flag
443786cd...

En este writeup vamos a ver cómo resolver la máquina Nibbles de la plataforma de Hack the Box.

Conexión

Conectar nuestra máquina de ataque a la VPN:

$ openvpn gorkamu-htb.ovpn

Enumeración

Si ponemos la IP en el navegador web veremos únicamente lo siguiente:

hello world
hello world

Vamos a hacer un escaneo de puertos a ver que aparece…

nmap
nmap

Puerto 22 (ssh) y 80 (http) abiertos.

En el código fuente de la web se puede ver esto:

comentario codigo fuente
comentario codigo fuente

Y efectivamente si nos dirigimos a http://10.10.10.75/nibbleblog nos encontramos con el blog.

Si pasamos gobuster al blog podemos ver lo siguiente:

$ gobuster dir -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -u 10.10.10.75/nibbleblog

gobuster
gobuster

En el fichero README podemos encontrar la versión del CMS (Nibbleblog 4.03) y buscando en Google encontramos que existe una vulnerabilidad que permite subir una shell en esa versión.

Si hacemos un análisis con dirbuster al directorio /nibbleblog sin hacer bruteforce attack de los ficheros (sin especificar extensión) podremos ver la siguiente estructura:

dirbuster
dirbuster

Ahí bajo el directorio /nibbleblog/content/private encontramos el fichero users.xml

fichero users
fichero users

En este archivo vemos que existe un usuario “admin” y una blacklist con IPs.

Vamos a generarnos un diccionario con al herramienta cewl (se le pasa una url y saca las palabras más relevantes para generarlo)

$ cewl --lowercase http://10.10.10.75/nibbleblog -w pw_dict.txt

Con hydra y este diccionario personalizado intentamos hacer bruteforce:

$ hydra -l admin -P pw_dict.txt 10.10.10.75 http-post-form "/nibbleblog/admin.php:username=^USER^&password=^PASS^:Incorrect username or password."

Esto nos da cuatro posibles contraseñas:

resultados hydra
resultados hydra

En el navegador nos vamos a http://10.10.10.75/nibbleblog/admin.php y nos logueamos con las siguientes credenciales:

  • user: admin
  • password: nibbles

Nos vamos a la sección de plugins y seleccionamos el plugin de My Image:

nibbles plugins
nibbles plugins

Subimos php-reverse-shell.php e ignoramos los warnings.

Abrimos una nueva terminal con netcat a la escucha y nos dirigimos a la url

http://10.10.10.75/nibbleblog/content/private/plugins/my_image y ahí pinchamos en el fichero image.php.

Automáticamente tendremos conexión inversa con el servidor:

netcat
netcat

Capturar la User Flag

Nos dirigimos al directorio /home/nibble y ahí tendremos el fichero user.txt con la USER Flag.

Capturar la Root Flag

Si ejecutamos el comando sudo -l vemos que el usuario nibbler puede ejecutar un bash como sudo sin tener que autenticarse:

sudo
sudo

Si nos dirigimos a esa ruta veremos que no existe por lo que tendremos que crearla junto con el fichero:

$ cd /home/nibbler $ mkdir -p personal/stuff && echo "/bin/bash" > monitor.sh $ chmod +x monitor.sh $ sudo ./monitor.sh

Con esto ya seremos root. Si nos dirigimos a /root/root.txt podremos ver la ROOT Flag

También te puede interesar

Nineveh Writeup

Nineveh Writeup

Node Writeup

Node Writeup

Omni Writeup

Omni Writeup