tom@home.htb:~$

Blog o HTB

26 December 2020

Ophiuchi

Úvod a kontext

Na Ophiuchi je nejzajímavější, jak se propojí Tomcat a jeho administrační vrstva, Apache a SSH.

Bez pochopení této návaznosti by nedával smysl ani SSH s nalezenými přihlašovacími údaji, ani závěrečná příliš široká sudo oprávnění.

Počáteční průzkum

Vyhledání otevřených portů

Nejprve mapuji veřejně dostupné služby, protože právě z otevřených portů odvodím, které protokoly a aplikace má smysl zkoumat detailněji.

ports=$(nmap -p- --min-rate=1000 -T4 $IP | grep ^[0-9] | cut -d "/" -f 1 | tr "\n" "," | sed s/,$//);echo $ports;nmap -p $ports -A -sC -sV -v $IP
PORT     STATE SERVICE VERSION

Detailní analýza služeb

V dalším kroku si zpřesňuji verze služeb a jejich charakteristiky, protože právě z těchto detailů obvykle vzniká rozhodnutí, zda pokračovat přes web, SSH nebo jinou vrstvu.

22/tcp   open  ssh     OpenSSH 8.2p1 Ubuntu 4ubuntu0.1 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
|   3072 6d:fc:68:e2:da:5e:80:df:bc:d0:45:f5:29:db:04:ee (RSA)
|   256 7a:c9:83:7e:13:cb:c3:f9:59:1e:53:21:ab:19:76:ab (ECDSA)
|_  256 17:6b:c3:a8:fc:5d:36:08:a1:40:89:d2:f4:0a:c6:46 (ED25519)
8080/tcp open  http    Apache Tomcat 9.0.38
| http-methods:
|_  Supported Methods: GET HEAD POST OPTIONS
|_http-title: Parse YAML
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

[12:59:37] 401 -    2KB - /host-manager
[13:01:41] 401 -    2KB - /manager
[13:03:11] 200 -    5B  - /test/test.txt

/test                 (Status: 302) [Size: 0] [--> /test/]
/manager              (Status: 302) [Size: 0] [--> /manager/]
/yaml                 (Status: 302) [Size: 0] [--> /yaml/]

https://swapneildash.medium.com/snakeyaml-deserilization-exploited-b4a2c5ac0858

Získání přístupu

Přihlášení na cíl (2)

Jakmile mám pověření nebo jednorázový shell, snažím se přejít na stabilní a reprodukovatelný přístup, aby bylo možné bezpečně pokračovat v interní enumeraci.

ssh admin@$IP
whythereisalimit

Získání user flagu

User flag zde slouží hlavně jako potvrzení, že už mám běžný uživatelský kontext a mohu pokračovat v lokální analýze systému.

cat user.txt
__CENSORED__

Eskalace oprávnění

Průzkum možností eskalace

Hledám chybné konfigurace a cesty k vyšším oprávněním.

sudo -l
mkdir /tmp/a

scp admin@$IP:/opt/wasm-functions/main.wasm main.wasm

https://webassembly.github.io/wabt/demo/wasm2wat/
0 => 1
https://webassembly.github.io/wabt/demo/wat2wasm/

scp test.wasm admin@$IP:/tmp/a/main.wasm

Získání root flagu

Tento krok ukazuje, jak se nalezená slabina nebo chyba v delegaci oprávnění mění v privilegovaný přístup.

cat root.txt
__CENSORED__

Shrnutí klíčových poznatků

Co si odnést do praxe

tags: linux - ssh - sudo - tomcat - java - exploit