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

HackTheBox – SolidState WriteUp | Tipps + Anleitung | htb

0

HackTheBox – SolidState WriteUp | Tipps + Anleitung | htb

SolidState ist eine der vielen Verfügbaren CTF Challenges von HackTheBox. SolidState ist eine leichte bis mittelschwere Maschine von HackTheBox.

Difficulty

Tipps

Tipp 1

Scanne mit Nmap alle Ports.

Tipp 2

Informiere dich was JAMES ist. Außerdem ist Telnet dein Freund.

Tipp 3

Um nicht eine eingeschränkte Bash-Shell (rbash) zu haben, musst du einen JAMES Exploit benutzen.

Tipp 4

Benutze LinEnum.sh mit der Option -t.

Tipp 5

Sieh dir bei den LinEnum Ergebnis World-writable files genau an.

Video

Kurzes Video Walkthrough ohne Erklärungen

Anleitung

Schritt 1

Zuerst wie gewohnt ein Nmap-Scan. Hierbei ist es wichtig, dass wir explizit alle Ports scannen, da bei einem Standard-Scan ein offener Port nicht gefunden wird. Mit der Option -p- scannen wir alle Ports. Die Option -A sorgt dafür, dass Nmap das Betriebssystem und die Services herausfindet.

JAMES ist ein Mailserver. Der Port 4555 mit dem Service james-admin sieht vielversprechend aus.

Schritt 2

Versuchen wir doch mal eine Telnet-Verbindung zum Port 4555 aufzubauen.

Die Standard Credentials für das JAMES Remote Administration Tool ist root / root. Ein Glück, dass dieses noch nicht geändert wurde.

Die für uns interessanten Befehle sind listusers und setpassword.

Wir sehen 6 verschiedene Accounts. Wir können nun die Passwörter dieser Accounts mit Hilfe von setpassword [username] [password] ändern, um uns als diese anmelden zu können.

Schritt 3

Verbinden wir uns nun per Telnet mit dem POP3 Service. Eine Liste mit den möglichen Befehlen für POP3 kannst du hier finden.

Wir haben nun die SSH-Login Daten. Allerdings können wir damit noch nicht soviel anfangen, da wir durch den Login als Mindy nur eine eingeschränkte Bash-Shell (rbash) haben, bei welcher nur die Befehle cat und ls erlaubt sind. Bei den anderen Emails ist nichts interessantes zu finden. Was nun?

Schritt 4

Suchen wir doch mal nach Schwachstellen im Bezug auf JAMES mit der Version 2.3.2.

Remote Command Execution klingt doch nett. Hier ist der Link zu dem Exploit.

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

Schritt 5

Kopieren wir uns das Script.

Jetzt müssen wir es nur noch anpassen. Als Payload können wir ein Netcat Reverse Shell benutzen. Außerdem können wir noch den hostname festlegen, welcher hier solidstate ist.

Schritt 6

Nun hören wir mit Netcat den Port ab, den wir im Script vorhin festgelegt haben.

Parallel dazu führen wir das Script aus.

Jetzt muss sich nur noch jemand über SSH anmelden!

Wir haben Zugriff!

Schritt 7

Nun können wir die Shell zu einer fully interactive TTY upgraden, damit wir autocomplete, su etc. haben.

Mit Hilfe von wget können wir LinEnum.sh downloaden (nachdem wir bei uns den Apache2 Server durch service apache2 start gestartet und die Datei in den Ordner /var/www/html/ kopiert haben) und ausführen, welches uns die Enumeration und Privilege Escalation Checks abnimmt.

Das Script hat eine Datei gefunden, welche dem User und der Gruppe root gehört, aber für jeden schreib-, lese- und ausführbar ist.

Schritt 8

Sehen wir uns doch mal an, was sich in dem Python-Script steht.

Wir können nun die 5. Zeile etwas abändern…

Wenn wir nun ein wenig warten, wird tmp.py ausgeführt und unter /tmp/m10x.txt können wir dann den Root-Hash finden. Anscheinend ist /opt/tmp.py ein Cron-Job!

Der User-Hash befindet sich unter /home/mindy/user.txt.

Vielen Dank für’s durchlesen. 😀

Teilen:

    Schreibe einen Kommentar

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

    20 + 2 =