githubEditar

HackTheBox - Nibbles

Writeup de la máquina Nibbles de HackTheBox

  • Dificultad easy

  • Tiempo aprox. 3h

  • Datos Iniciales: 10.129.96.84

Nmap Scan y enumeración

Tras realizar un escaneo nmap, se encuentran los siguientes puertos abiertos:

PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 7.2p2 Ubuntu 4ubuntu2.2 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   2048 c4:f8:ad:e8:f8:04:77:de:cf:15:0d:63:0a:18:7e:49 (RSA)
|   256 22:8f:b1:97:bf:0f:17:08:fc:7e:2c:8f:e9:77:3a:48 (ECDSA)
|_  256 e6:ac:27:a3:b5:a9:f1:12:3c:34:a5:5d:5b:eb:3d:e9 (ED25519)
80/tcp open  http    Apache httpd 2.4.18 ((Ubuntu))
|_http-title: Site doesn't have a title (text/html).
|_http-server-header: Apache/2.4.18 (Ubuntu)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
#Nada en UDP

Vemos que la máquina ejecuta Ubuntu.

  • TCP/22: OpenSSH 7.2p2, versión sin vulnerabilidades relevantes (solo una de username enum.).

    • Tras comprobar con ssh -v, vemos que los métodos de auth posibles son publickey,password.

  • TCP/80: Apache httpd 2.4.18, versión con varias vulnerabilidades críticas.

    • CVE-2019-0211: Potencial elevación de privilegios, a tener en cuenta más adelante. (En ExploitDBarrow-up-right)

    • Algunas más (de hecho, bastantes.)

HTTP

Al entrar al puerto 80, vemos una página que dice "Hello world!". Además, dado que el servicio (en el scan nmap) no nos ha redirigido a ningún dominio o vhost, no es viable enumerar subdominios porque el muy probable que el servidor no sirva nada diferente en función del subdominio. De momento, la única alternativa es enumerar directorios y archivos en el servidor.

Solo encontramos un elemento, server-status, que no nos da ninguna información. Al mirar el código fuente de la página por defecto, encontramos lo siguiente:

Así que vamos al directorio /nibbleblog/.

Nibbleblog

Una vez en /nibbleblog, encontramos lo que parece ser un blog. whatweb nos da la siguiente info:

La página parece estar hecha con Nibbleblog.

Según Hostsuararrow-up-right,Nibbleblog es un sistema de gestión de blogs (CMS) pensado para quienes buscan algo sencillo, rápido y fácil de instalar. No necesitas bases de datos como MySQL, ya que toda la información se guarda en archivos XML.

Al buscar directorios aquí, si encontramos cosas:

Vamos mirando poco a poco los subdirectorios. En /content/ vemos que tenemos permisos de lectura, por lo que podemos enumerar todo. De primeras encontramos lo siguiente:

En tmp no hay nada, en public solo hay directorios con imágenes, pero en private:

  • En users descubrimos la existencia del usuario admin, con ID "0".

  • En config encontramos el email del administrador, admin@nibbles.com

Tras mirar todo lo demás, volvemos a enumerar, esta vez archivos:

De todas estas, en update.php encontramos que se está usando la versión Nibbleblog 4.0.3 "Coffee", vulnerable a, p.ej, CVE-2015-6967arrow-up-right (RCE), con varios PoCarrow-up-right. En admin.php nos encontramos un panel de admin que requiere unas credenciales que desconocemos (solo tenemos el usuario admin).

Para aprovechar el RCE, primero necesitamos unas credenciales válidas, así que probamos varias por defecto: admin, password, 123456... Al probar con nibbles conseguimos entrar.

Una vez con credenciales, iba a usar el PoC anterior, pero veo que Metasploit tiene un exploit dedicado a esto:

Al ejecutarlo:

Privesc

En el directorio del usuario, listamos los elementos:

Encontramos personal.zip, un archivo que, al descomprimirlo, contiene monitor.sh, un programa que comprueba conectividad, carga del sistema, memoria, usuarios, etc.

Si usamos sudo -l, veremos lo siguiente:

Dado que somos el usuario nibbler, podemos crear el archivo en su directorio en /home con total libertad:

Y tenemos root.

Última actualización