2

私はこれまで、ページが開かれたときに実行され、metasploitを起動するphpスクリプトを作成しようとして失敗しました。

shell_execとexec、および他のすべての代替手段を試しましたが、msfconsoleを試してみると、単純なこと(ls、cdsなど)を実行できますが、何も実行されません。

また、Firefoxを起動する別のスクリプトを試しましたが、何も起こりません。

これで、phpがサーバー上で実行され、クライアントマシンでコンソールまたはFirefoxが開くことを期待していません。代わりに、それが機能するかどうかを確認するために、shell_execの出力をエコーアウトしようとしています!コマンドラインからこれを行うのと同じ方法で、ここでアプリが開いていることを確認できるはずです。

私は何が欠けていますか?

これを行う他の方法はありますか?(つまり、ユーザーが私のページを開くたびにmetasploitを起動します)

注:msfconsoleのフルパスを指定しようとしましたが、どちらも機能しませんでした。

これが私がこれまでに持っているものです:

$output = shell_exec('/opt/local/libexec/metasploit3/msfconsole;show');
echo "<pre>$output</pre>";

「;show」ビットは、実際に何かを実行して印刷するために使用されましたが、違いはありませんでした。

4

1 に答える 1

1

X ウィンドウ システムでコマンド プロンプトから GUI アプリケーションを実行すると、デフォルトの表示が使用されます。Apache Web サーバーに組み込まれている php を使用して実行すると、プログラムは gui アプリケーションを表示する場所を認識できない場合があります。

これを機能させるには2つのことがあります。

  1. GUI アプリケーションを実行するプログラムには、display を使用する権限が必要です。
  2. どのディスプレイを使用するかをプログラムに指示する必要があります。

PHPスクリプトで次を使用しました

<?php
$cmd = `export DISPLAY=:0; gedit`;
shell_exec($cmd);
?>

そして、ターミナルから php -f test.php を使用してスクリプトを実行しました。gedit を起動して実行しました。

apache のスクリプトでも同じことをテストできます。ディスプレイ サーバーにアクセスする権限を持つ apache ユーザーを追加してください

更新: /etc/apache2/apache2.conf に以下を追加しました (ubuntu を使用しています)

User poomalai
Group poomalai

そしてWebサーバーsudo service apache2 restartを再起動しました

今、localhost/test.php と Presto にアクセスしました!! 私はgeditを手に入れました:)

お役に立てれば

于 2012-03-20T09:52:53.423 に答える