PHP Shell: Unterschied zwischen den Versionen
Michi (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „<b>PHP Shell</b> ist ein PHP-Skript, das eine Shell-ähnliche Oberfläche zur Verfügung steht. Damit können neben Shellskripten auch die meisten auf Web...“) |
Michi (Diskussion | Beiträge) |
||
(5 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
<b>PHP Shell</b> ist ein [[PHP]]-Skript, das eine [[Shell]]-ähnliche Oberfläche zur Verfügung steht. Damit können neben Shellskripten auch die meisten auf Webrechnern installierten nicht-interaktiven Programme aufgerufen werden, allerdings keine interaktiven Programme (z. B. [[vi]]). Für letztere gibt es eine Erweiterung der PHP Shell. | <b>PHP Shell</b> ist ein [[PHP]]-Skript, das eine [[Shell]]-ähnliche Oberfläche zur Verfügung steht. Damit können neben Shellskripten auch die meisten auf Webrechnern installierten nicht-interaktiven Programme aufgerufen werden, allerdings keine interaktiven Programme (z. B. [[vi]]). Für letztere gibt es eine Erweiterung der PHP Shell. | ||
Eine häufige Anwendung ist der Zugriff auf | Eine häufige Anwendung ist der Zugriff auf einen Rechner, bei dem entweder die Firewall den Zugang per [[SSH]] blockiert oder auf dem man selber keine Software im Dateisystem installieren kann, beispielsweise ein Webrechner. | ||
== Konzept == | |||
Zur Ausführung von Shell-Befehlen genügt ein PHP-fähiger Webbrowser. Dazu darf allerdings der (als veraltet geltende) Safe Mode von PHP nicht aktiviert sein. | |||
PHP Shell stellt eine Befehlszeile zur Verfügung, die folgenden Beschränkungen unterliegt: | |||
* Jeder Befehl muss ohne weitere Benutzereingabe auskommen. Interaktive Programme (z. B. [[vi]] oder [[top]]) lassen sich nicht bedienen. | |||
* Jeder Befehl muss in eine Zeile passen - PHP Shell erkennt nicht, das ein Befehl noch fortgesetzt werden müsste. So kann beispielsweise eine [[for]]-Schleife nicht wie in einer normalen Shell auf mehreren Zeilen eingegeben werden. | |||
* Jeder Befehl muss innerhalb einer bestimmten Zeitspanne abgearbeitet sein, üblicherweise innert 30 Sekunden. Diese Beschränkung ist allerdings nicht durch die PHP Shell bedingt, sondern durch den Webserver und PHP. Die entsprechende Beschränkung kann im Apache HTTP Server über die Direktive "Timeout" und in PHP über die Einstellung "max_execution_time" (in der Datei "php.ini") verändert werden. | |||
Die Befehle werden unter der UID und GID des Webservers ausgeführt, wie sich durch Aufruf von [[id]] sehen lässt. Es sit dabei nicht möglich, sich mittels [[su]] als anderer Benutzer anzumelden. | |||
PHP Shell bietet eine einfache History-Funktion sowie einen einfachen Texteditor, der wie folgt aufgerufen werden kann: | |||
$ <b>editor file.txt</b> | |||
== Installation == | == Installation == | ||
Übertragen der | Herunterladen der PHP Shell. | ||
pwhash.php | |||
Übertragen der Datei "phpshell-2.2.tar.gz" ins Webverzeichnis auf den Zielrechner und dort entpacken. | |||
# <b>tar xzf phpshell-2.2.tar.gz</b> | |||
Erstellen eines Benutzers samt Passwort über folgenden URL. Bei Bedarf können auch mehrere Benutzer angelegt werden. | |||
<nowiki>http://</nowiki><i>zielrechner</i>/phpshell-2.2/pwhash.php | |||
Als Ausgabe erscheint eine Zeile der folgenden Art: | |||
<i>benutzername</i> = "sha1:xyxyxyxy:abcdefghijklmnopqrstuvwxyzabcdefghijklmn" | |||
Diese Zeile muss in die Datei "config.php" in den Abschnitt "[users]" eingefügt werden. | |||
# <b>vi phpshell-2.2/config.php</b> | |||
[users] | |||
benutzername = "sha1:xyxyxyxy:abcdefghijklmnopqrstuvwxyzabcdefghijklmn" | |||
PHP Shell kann nun über folgenden URL aufgerufen werden. | |||
<nowiki>http://</nowiki><i>zielrechner</i>/phpshell-2.2/phpshell.php | |||
Die Datei "pwhash.php" sollte nach Erzeugen des gewünschten Benutzers verschoben werden, damit kein Unbefugter neue Benutzer anlegen und sich so auf dem Rechner anmelden kann. | |||
Als zusätzlicher Schutz sollte das Verzeichnis, in dem sich die Datei "phpshell.php" befindet, umbenannt und mittels [[.htaccess]] geschützt werden. | Als zusätzlicher Schutz sollte das Verzeichnis, in dem sich die Datei "phpshell.php" befindet, umbenannt und mittels [[.htaccess]] geschützt werden. | ||
== Konfiguration == | |||
In der Datei "config.php" können auch Shell-Aliase sowie ein Heimverzeichnis für PHP Shell festgelegt werden. | |||
== Weblinks == | == Weblinks == |
Aktuelle Version vom 6. Mai 2011, 13:27 Uhr
PHP Shell ist ein PHP-Skript, das eine Shell-ähnliche Oberfläche zur Verfügung steht. Damit können neben Shellskripten auch die meisten auf Webrechnern installierten nicht-interaktiven Programme aufgerufen werden, allerdings keine interaktiven Programme (z. B. vi). Für letztere gibt es eine Erweiterung der PHP Shell.
Eine häufige Anwendung ist der Zugriff auf einen Rechner, bei dem entweder die Firewall den Zugang per SSH blockiert oder auf dem man selber keine Software im Dateisystem installieren kann, beispielsweise ein Webrechner.
Konzept
Zur Ausführung von Shell-Befehlen genügt ein PHP-fähiger Webbrowser. Dazu darf allerdings der (als veraltet geltende) Safe Mode von PHP nicht aktiviert sein.
PHP Shell stellt eine Befehlszeile zur Verfügung, die folgenden Beschränkungen unterliegt:
- Jeder Befehl muss ohne weitere Benutzereingabe auskommen. Interaktive Programme (z. B. vi oder top) lassen sich nicht bedienen.
- Jeder Befehl muss in eine Zeile passen - PHP Shell erkennt nicht, das ein Befehl noch fortgesetzt werden müsste. So kann beispielsweise eine for-Schleife nicht wie in einer normalen Shell auf mehreren Zeilen eingegeben werden.
- Jeder Befehl muss innerhalb einer bestimmten Zeitspanne abgearbeitet sein, üblicherweise innert 30 Sekunden. Diese Beschränkung ist allerdings nicht durch die PHP Shell bedingt, sondern durch den Webserver und PHP. Die entsprechende Beschränkung kann im Apache HTTP Server über die Direktive "Timeout" und in PHP über die Einstellung "max_execution_time" (in der Datei "php.ini") verändert werden.
Die Befehle werden unter der UID und GID des Webservers ausgeführt, wie sich durch Aufruf von id sehen lässt. Es sit dabei nicht möglich, sich mittels su als anderer Benutzer anzumelden.
PHP Shell bietet eine einfache History-Funktion sowie einen einfachen Texteditor, der wie folgt aufgerufen werden kann:
$ editor file.txt
Installation
Herunterladen der PHP Shell.
Übertragen der Datei "phpshell-2.2.tar.gz" ins Webverzeichnis auf den Zielrechner und dort entpacken.
# tar xzf phpshell-2.2.tar.gz
Erstellen eines Benutzers samt Passwort über folgenden URL. Bei Bedarf können auch mehrere Benutzer angelegt werden.
http://zielrechner/phpshell-2.2/pwhash.php
Als Ausgabe erscheint eine Zeile der folgenden Art:
benutzername = "sha1:xyxyxyxy:abcdefghijklmnopqrstuvwxyzabcdefghijklmn"
Diese Zeile muss in die Datei "config.php" in den Abschnitt "[users]" eingefügt werden.
# vi phpshell-2.2/config.php [users] benutzername = "sha1:xyxyxyxy:abcdefghijklmnopqrstuvwxyzabcdefghijklmn"
PHP Shell kann nun über folgenden URL aufgerufen werden.
http://zielrechner/phpshell-2.2/phpshell.php
Die Datei "pwhash.php" sollte nach Erzeugen des gewünschten Benutzers verschoben werden, damit kein Unbefugter neue Benutzer anlegen und sich so auf dem Rechner anmelden kann.
Als zusätzlicher Schutz sollte das Verzeichnis, in dem sich die Datei "phpshell.php" befindet, umbenannt und mittels .htaccess geschützt werden.
Konfiguration
In der Datei "config.php" können auch Shell-Aliase sowie ein Heimverzeichnis für PHP Shell festgelegt werden.
Weblinks
Herausgeber | Sprache | Webseitentitel | Anmerkungen |
---|---|---|---|
Sourceforge | eng | PHP Shellwbm |