linuxEditor


Enumeration

Vamos a realizar un escaneo nmap:

Vamos a realizar un segundo escaneo para averiguar que servicios y versiones corren en cada:

Vamos a acceder a la aplicación web principal:

Viendo la web en el footer encontré lo siguiente:

Vemos un subdominio llamado wiki . Vamos a realizar un escaneo de vhost con gobuster para confirmarlo y saber que existan más:

Vamos a añadirlo a nuestro /etc/hosts. Ahora accedamos a él:

Vemos que está empleando Xwiki.

XWiki es un motor wiki basado en Java.

Si vemos el footer encontramos lo siguiente:

Si buscamos esa versión en Google podremos encontrar lo siguiente:

En este caso vi la de OffSec:

Shell as xwiki

Si leemos este PoC podremos ver que estamos ante un RCE, con el siguiente payload:

El payload que al final me funcionó fue:

Vamos a enviarnos una reverse shell:

Si hacemos un whoami veremos que somos el usuario xwiki :

Si nos fijamos haciendo un pwd veremos que estamos en el siguiente directorio:

Shell as oliver

Investigando por la documentación y foros leí que los datos de la conexión de la base de datos se guardan en un archivo llamado hibernate.cfg.xml, vamos a buscarlo con find:

Vemos que tenemos varios, vamos a leer el primero filtrando por las 2 siguientes palabras:

  • username

  • password

Tenemos el usuario de la base de datos que es xwiki , vamos a buscar su contraseña:

Bien!! Tenemos credenciales. Vamos a probarlas en MySQL :

Tenemos acceso a la base de datos. Investigando un rato sobre ella solo encontré un hash del usuario neal , pero si hacemos un cat /etc/passwd veremos que solo existe el usuario oliver:

chevron-rightneal_hashhashtag

Vamos a probar las mismas credenciales encontradas por SSH en el usuario oliver a ver si hay reutilización de credenciales, una practica muy común:

Shell as root

Si buscamos por archivos con el permiso SUID encontraremos unos no vistos normalmente:

Investigando sobre el binario /opt/netdata/usr/libexec/netdata/plugins.d/ndsudo encontré lo siguiente:

Se ve que se puede escalar privilegios con el. Para ello necesitaremos compilar un archivo llamado nvme , vamos a crear en C un código que simplemente ejecute una /bin/bash :

Ahora vamos a compilarlo con el nombre nvme :

Ahora lo subiremos a la máquina en un directorio donde tengamos permisos, en mi caso en el /tmp :

Le daremos permisos de ejecución:

Ahora modificaremos la variable de entorno PATH para indicar que busque el binario primero desde tmp:

Ahora vamos a ejecutar el binario ndsudo con el comando nvme-list que si vemos en -h ejecuta el ejecutable nvme :

Entonces indicaremos nvme-list: