Editor

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.
XWikies 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:
usernamepassword

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:
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: