ウェブサイト検索

PHP シェルを使用して Linux シェル (ターミナル) をリモートで探索する


PHP シェル または シェル PHP は、PHP で書かれたプログラムまたはスクリプト (Php ハイパーテキスト プリプロセッサ) であり、 >ブラウザの Linux ターミナル (シェルはより広い概念です)。 PHP シェル を使用すると、ほとんどのシェル コマンドをブラウザで実行できますが、制限があるためすべてではありません。

アップデート: 最近、「Wetty (Web + tty)」という非常に有望なツールを発見しました。これは、完全な Linux ターミナル アクセスを提供します。 HTTP または HTTPS プロトコル経由で実行できるため、実際の端末または仮想端末の前にいるかのように、すべての Linux コマンドとプログラムを実行できます。

Wetty のインストールと使用方法の詳細については、Web ブラウザ経由で Linux ターミナルにアクセスするために Wetty をインストールする方法をご覧ください。

PHP シェルは、TelnetSSHと同様に、リモート Web サーバーでシェル コマンドを実行する場合に非常に役立ちます。これは、Web サーバー上の大きなファイルや大量のファイルの移動、解凍、処理に役立ちます。ユーザーがシェル プログラムの実用的な知識を持っていれば、PHP シェルを使用したウェブサーバーの管理と保守が非常に簡単になります。

すでにTelnetSSH があったのに、phpshell は何が必要なのか、という疑問が頭に浮かぶかもしれません。答えは、多くの場合、ファイアウォールの制限が非常に厳しいため、HTTP(S) 以外は何も通過できません。その場合、phpshell を使用してリモート サーバー上のシェル アクセスを取得できます。

ただし、PHP シェルを使用してGUI プログラムや対話型スクリプト/プログラムを実行することはできません。制限がある可能性がありますが、GUI を無効にすることでセキュリティが向上するため、この制限は恩恵になります。

PHPシェルをダウンロード

最新バージョンはここからダウンロードできます。

  1. http://sourceforge.net/projects/phpshell/?source=dlp

PHPシェルのインストール方法

上で述べたように、PHP シェルPHPで書かれているため、インストールする必要はありません。アーカイブされたファイルを作業中のApache/に移動するだけです。 httpd ディレクトリ、そしてもちろんApachePHP がインストールされている必要があります。

ApacheとPHPをインストールする

apt-get コマンドを使用してDebian ベースのシステムにインストールします。

apt-get install apache2 
apt-get install php5 libapache2-mod-auth-mysql php5-mysql
service apache2 start

yum コマンドを使用して、Red Hat ベースのシステムにインストールします。

yum install httpd 
yum install php php-mysql
service httpd start

デフォルトでは、Apache/http の作業ディレクトリは次のとおりです。

Debian ベースのディストリビューション /var/www

Red Hat ベースのディストリビューション /var/www/html

: 他のフォルダに変更することもできますが、セキュリティ対策としてこのフォルダを使用することをお勧めします。

ダウンロードした PHP シェル アーカイブ ファイルを Apache 作業ディレクトリに移動します。ここではDebian システムを使用しているため、Apache の作業ディレクトリは次のとおりです。

mv phpshell-2.4.tar.gz /var/www/

PHPシェルを解凍します

tar -zxvf phpshell-2.4.tar.gz

圧縮ファイルを削除します。

rm -rf phpshell-2.4.tar.gz

セキュリティ対策として、php シェル フォルダーの名前を推測しにくい名前に変更します。たとえば、phpshell (現在は tecmint-nix) フォルダに移動し、phpshell.php の名前を index.php に変更します。 とすると、フォルダーの内容ではなくインデックス ページに直接リダイレクトされます。

mv phpshell-2.4 tecmint-nix 
cd tecmint-nix/
mv phpshell.php index.php

Web ブラウザを開いて、「http://127.0.0.1/tecmint-nix」に移動します。

デフォルトではユーザー名パスワードも機能しないため、ユーザー名パスワードを手動で追加する必要があります。

ユーザー名とパスワードを作成するには、「http://127.0.0.1/tecmint-nix/pwhash.php」のような phpshell フォルダーに既にある pwhash.php スクリプトを呼び出します。

上記の PHP ページでユーザー名パスワードを入力し、「更新」をクリックします。

「結果」セクションで述べたように、[user] の config.php にコピーして貼り付けることで、sha 行を追加する必要があります。セクション。

好みのエディタを使用して config.php ファイルを開きます。

nano config.php

行を追加します。

tecmint = "sha1:673a19a5:7e4b922b64a6321716370dad1fed192cdb661170"

[ユーザー セクション] にあるように、sha1ユーザー名パスワードに基づいて一意であることは明らかです。 。

現在の変更を含む config.php ファイルを保存し、終了します。

ログインしてみましょう。 http://127.0.0.1/tecmint-nix にアクセスしてください。 「ユーザー名」と「パスワード」を使用してログインします。

はい、phpshell に正常にログインしました。これで、ほとんどのシェル プログラムを、自分のシステムでコマンドやスクリプトを実行しているかのようにスムーズに実行できるようになります。

PHP シェルの特定のボトルネック

  1. 追加の入力はサポートされていません。つまり、プログラムが起動されると、対話型スクリプトは使用できなくなります。
  2. すべての Web サーバーは、特定の時間枠、たとえば30 秒でタイムアウトするように構成されています。この制限は Web サーバー/Apache のものであり、phpshell のものではありません。
  3. phpshell の各コマンドは厳密に 1 ライナーである必要があります。 Phpshell は、連続したコマンドやループのような複数行のコマンドを認識しません。

PHP シェルをパスワードで保護することが非常に重要であることに注意してください。そうしないと、誰もがあなたのファイルを覗き見でき、場合によっては削除することもできます。時間をかけて PHP シェルのインストールを保護してください。

この記事は、シェルのより広範な側面と実装を非常に明確な方法で認識してもらうことを目的としています。

私からは以上です。すぐにまたここに来て、皆さんが読みたくなるような別の興味深いトピックを紹介する予定です。それまではtecmint にご注目ください。 楽しんでください!