SYPPS - Eine PHP-Shell stellt sich vor

09.10.2017, 22:54 - Autor: Mark B.

PHP-Shell?!

Im Rahmen des Buches "Hacken mit Kali-Linux" habe ich mich dazu entschlossen einen Hash-Cracker selbst zu schreiben. Hierbei war es mir wichtig, dass das Programm mit CSV-Dumps von SQLmap umgehen kann.

Jeder der Interesse hat SYPPS selbst auszuprobieren kann es unter https://sourceforge.net/projects/sypps/ downloaden.

Schauen wir mal was wir mit SYPPS und DVWA schönes anstellen können

Stellen Sie das Sicherheits-Level von DVWA auf niedrig und wir können loslegen. An dieser Stelle erspare ich mir den Dateiupload mit einem Screenshot zu zeigen. Rufen Sie einfach "Upload" in DVWA auf und laden Sie SYPPS.php oder eine andere Shell Ihrer Wahl hoch.

Bim Upload macht es uns DVWA sehr leicht. In der Regel stellt sich nach dem erfolgreichen Upload die Frage wo die Datei gelandet ist. Wird eine Datei beim Upload sogar noch umbenannt dann müssen wir auch noch den Namen herausfinden wenn keine Auflistung der Dateien in dem Ordner erlaubt oder möglich ist.

Ersteres ist oft relativ einfach zu erfahren - ist der Upload für ein Profilbild vorgesehen dann brauchen Sie nur ein Bild hochladen und danach den Quelltext ansehen um zu sehen wo die Daten landen. Oftmals müssen Sie auch raten - die Klassiker sind upload, uploads, img und images als Ordnernamen.

Haben Sie den Ordner gefunden dann ist das schon die halbe Miete. Achten Sie dabei auf HTTP-Fehler. Wenn der Fehler von 404 (nicht gefunden) zu 403 (Zugriff nicht gestattet) wechselt dann ist das höchstwahrscheinlich ein Treffer. Allerdings ist es Ihnen verboten eine Auflistung des Ordnerinhalt zu sehen. Hoster machen das um eben solche Angriffe zu erschweren falls der Programmierer Vergisst eine HTML-Datei in den Ordner zu stellen um die Dateiauflistung zu verhindern. In der Regel können Sie aber eine Datei direkt aufrufen indem Sie den Dateinamen und die Dateierweiterung an den Pfad anhängen. Also selbst wenn http://seite.com/uploads/ den HTTP-Fehler 403 liefert ist http://seite.com/uploads/SYPPS.php wahrscheinlich aufrufbar.

Oftmals werden Sie auch bei einem Treffer auf die Startseite weitergeleitet. In dem Fall hat der Entwickler der Seite eine HTML- oder Script-Datei mit automatischer Weiterleitung zu einer anderen Seite im Ordner hinterlegt. Sollte die Datei nicht umbenannt worden sein, wie in diesem Fall, dann können Sie die Shell einfach mit

http://192.168.1.104/dvwa/hackable/uploads/SYPPS.php

aufrufen. (Hier müssen Sie die IP-Adresse Ihres Metasploitable 2 VPC anstatt 192.168.1.104 verwenden.) Falls Sie SYPPS verwenden und das Kennwort nicht im Quelltext geändert haben, können Sie sich mit dem Standard-Passwort sypps anmelden. Ganz nach dem Linux-Vorbild habe ich dafür gesorgt, dass Sie nicht sehen was Sie tippen und wieviele Zeichen als Passwort eingegeben werden.

Der Login-Button ist ebenfalls versteckt - drücken Sie einfach Enter und dann sollten Sie eingeloggt sein.

SYPPS erlaubt es die Dateien anzusehen und falls die Rechte dazu reichen auch zu editieren oder neue Text-Dateien zu erstellen. Außerdem können Sie Dateien hochladen, Shell-Kommandos und PHP-Code ausführen oder die Ausgabe von phpinfo(); ansehen. Als kleine Zugabe habe ich der Shell noch die Standard-Decoder und Encoder spendiert damit Sie direkt bei der Arbeit auch Texte URLencodieren, ULRdecodieren, Base64 encodieren und decodieren können. Außerdem ist nun auch die Berechnung vom verschiedenen Hash-Werten an Bord.

Obwohl die Tabs mit Java gesteuert werden habe ich darauf verzichtet mit dem Server auf AJAX-Basis zu kommunizieren. Die Seite wird also beim Absenden von Formularen neu geladen. Wollen Sie mit mehreren Tabs gleichzeitig arbeiten dann müssen Sie SYPPS mehrfach öffnen.

Navigieren wir zuerst auf die Hauptebene und

öffnen dort den Ordner dvwa, dann den Unterordner config und editieren wir die Datei config.inc.php mit einem Klick auf den Dateinamen:

Die Rechte mögen vielleicht nicht reichen um die Datei zu verändern und zu speichern aber zum Lesen müssen Sie reichen, sonst könnten ja die Scripts von DVWA die Config-Parameter auch nicht einlesen. Einige wenige Mausklicks und wir bekommen den MySQL-User und das Passwort auf dem Silbertablett serviert.

Dann testen wir doch mal ob wir Systembefehle ausführen können:

... und wie wir das können. Über den Dateiupload können Sie weitere Programme und Tools hochladen um dann schlussendlich root-Rechte zu erhalten. Testen Sie an dieser Stelle als Übung einige lokale Exploits aus. Aufrufen und ausführen können Sie die Tools dann wieder in SYPPS.

Der Dateiupload zeigt Ihnen auch an welche maximale Uploadgröße zur Verfügung steht und falls erlaubt erhöht er diese auf 32 MB.