Drücke „Enter”, um zum Inhalt zu springen.

HackTheBox – Kotarak WriteUp | Tipps + Anleitung | htb

0

HackTheBox – Kotarak WriteUp | Tipps + Anleitung | htb

Kotarak ist eine der sehr schwierigen CTF Challenges von HackTheBox.

schwierigkeit

Tipps

Tipp 1

Wir müssen auf eine Webseite zugreifen, auf welche wir keinen Zugriff von außen haben, allerdings von einer anderen Webseite aus!

Tipp 2

Ein Teil von Kotarak wird auch in der HackTheBox Maschine Jerry behandelt, allerdings brauchen wir erstmal das Tomcat Admin Passwort

Tipp 3

Alle wichtigen Informationen zur Privilege Escalation befinden sich im /root Verzeichnis

Video

Kurzes Video Walkthrough ohne Erklärungen

Anleitung

Schritt 1

Als erstes machen wir natürlich einen Nmap-Scan.

2 offene Webserver Ports wurden gefunden.

Schritt 2

Wenn wir versuchen 10.10.10.55:8080 aufzurufen, bekommen wir als Rückmeldung nur 404 – not found.
Bruteforcen wir als nächstes Verzeichnisse auf Port 8080.

/manager klingt interessant.

Schritt 3

Sehen wir uns /manager mal an.

Ok, befolgen wir den Hinweis und versuchen /manager/html.

bild2

Wir benötigen leider einen Nutzernamen und ein Passwort um an dieser Stelle weiter zu kommen…

Schritt 4

Die Webseite auf Port 8080 bringt uns aktuell nicht weiter, sehen wir uns die Webseite auf Port 60000 mal an!

bild3

Auf der Webseite ist nicht viel zu sehen, allerdings haben wir ein Textfeld, in dem wir z.B. eine Url eingeben können, zu dieser wir dann weitergeleitet werden!
Bruteforcen wir auch hier nach Verzeichnissen.

Schritt 5

server-status klingt nach etwas, was hilfreich sein könnte! Wenn wir allerdings http://10.10.10.55:60000/server-status besuchen, bekommen wir leider nur 403 – forbidden zurück.
Aber was wenn wir http://10.10.10.55:60000/server-status bzw. http://localhost:60000/server-status in das Textfeld eingeben und das Verzeichnis auf diese Art und Weise besuchen?

bild

Es hat funktioniert! Wahrscheinlich kann man server-status nicht von außerhalb des Servers aufrufen.

Hier ist es auffällig, dass bei vielen Einträgen 127.0.0.1:888 vom localhost aus aufgerufen wurden.

Schritt 6

Rufen wir http://localhost:888/ wieder durch 10.10.10.55:60000 auf:

bild5

Wir können dort mehrere Dateien sehen. Wir können allerdings nicht einfach auf einen Dateinamen klicken, um diese aufzurufen. Sehen wir mal in den Seitenquelltext.

?doc=backup verweist also auf die Datei backup.

Rufen wir also http://localhost:888/?doc=backup auf.

Wir sehen eine leere Seite… Schauen wir wieder mal auf den Seitenquelltext.

Ein Eintrag mit dem Nutzernamen admin und dem dazugehörigen Passwort 3@g01PdhB!.

Möchtest du benachrichtigt werden, wenn ein neuer Artikel veröffentlicht wurde?

Schritt 7

Probieren wir die Anmeldedaten doch bei 10.10.10.55:8080/manager/html aus!

bild6

Es hat funktioniert. Wir sind nun als Admin im Tomcat Manager angemeldet und können nun, wie man ganz unten auf dem Screenshot sieht, eine WAR-Datei hochladen und diese sogar auch ausführen lassen.

Mit Hilfe von msfvenom können wir eine Java JSP Reverse Shell erstellen und diese als WAR-Datei verpacken.
Sehen wir dafür zuerst unsere IP-Adresse nach.

Suchen wir nun nach Java-Payloads.

Erstellen wir nun den Java-Payload, geben unsere IP-Adresse als LHOST an, den Port an dem wir die Verbindung empfangen wollen als LPORT und geben mit -f war an, dass wir dies als WAR-Datei haben wollen.

Jetzt können wir mit Netcat auf dem Port, den wir angegeben haben, auf eine Verbindung warten lassen.

Nun müssen wir nur noch die .war Datei hochladen.

bild7

Wir können sehen, dass diese nun unter Applications aufgeführt ist.

Wenn wir nun auf den Namen unserer Datei klicken, haben wir eine Reverse-Shell!

Schritt 8

Jetzt können wir uns eine interaktive Shell mit z.B. Autocomplete erstellen.

Im Homeverzeichnis können wir uns mit dem Befehl ls -R rekursiv alle Ordner und Dateien anzeigen lassen.

Im Homeverzeichnis von Atanas befindet sich die User Flag!

Im Homeverzeichnis von Tomcat befinden sich zwei sehr interessante Dateien…
Laden wir uns diese via Netcat herunter.

Schritt 9

Bei den beiden Dateien handelt es sich um NTDS.dit, welche eine Datenbank ist die Informationen zur Active Directory beinhält, und um eine Kopie des SYSTEM Registry Hives!

Mit Hilfe von dem Skript secretsdump von der Impacket Skript-Sammlung können wir bei Eingabe der beiden Dateien alle NT-Hashes extrahieren!

Wir haben nun also den NTLM Hash des Administrator Passwortes!

Diesen können wir nun auf crackstation cracken lassen.

bild8

Das Passwort ist also f16tomcat!

Schritt 10

Dasselbe Passwort können wir benutzen um uns als Atanas ein zu loggen. Glücklich für uns, dass das Passwort wohl mehrfach verwendet wurde.

Jetzt haben wir die Berechtigungen um die User Flag auszulesen.

Wir haben auch ausreichende Berechtigungen für das Root-Verzeichnis!

Die Root Flag ist aber nicht hier. Es befindet sich ansonsten nur die Datei app.log im Verzeichnis…

Schritt 11
Sehen wir uns diesen Exploit an: GNU Wget < 1.18 – Arbitrary File Upload / Remote Code Execution
Die Datei enthält folgende Anleitung um eine Remote Code Execution auszuführen:
Befolgen wir die Anleitung, anstatt /etc/shadow wollen wir allerdings /root/root.txt erhalten!
Nun pyftpdlib installieren, falls noch nicht vorhanden
pyftpdlib ausführen:
Kopieren wir nun den exploit auf Kotarak.
Bei FTP_HOST müssen wir unsere IP-Adresse eintragen.
Schritt 12

Wir können den Exploit nicht ausführen, da die ersten 1024 Ports für root reserviert sind.

Es gibt allerdings einen einfachen Trick wie wir dies umgehen können und zwar Authbind!

Vielen Dank für’s durchlesen. 🙂

Teilen:

    Schreibe einen Kommentar

    Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

    2 × zwei =

    Privacy Preference Center