SYPPS - Eine PHP-Shell stellt sich vor
09.10.2017, 22:54 - Autor: PGD
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.