2

到目前为止,我一直在尝试编写一个 php 脚本,该脚本将在打开页面时运行并启动 metasploit!

我已经尝试过 shell_exec 和 exec 以及所有其他替代方案,但是如果我尝试 msfconsole,我可以让它做一些简单的事情(即 ls、cds 等),但它什么也没做!

我还尝试了一个启动 Firefox 的不同脚本,但又没有任何反应!

现在我知道 php 在服务器上运行,我不希望在客户端机器上看到控制台或 firefox !相反,为了检查它是否有效,我试图回显 shell_exec 的输出!但无论如何,因为我将文件托管在我的机器上(即这是服务器,VM 是客户端),如果它真的可以启动 firefox 我应该能够以与从命令行执行此操作相同的方式看到应用程序在此处打开!

我错过了什么?

有没有其他方法可以做到这一点?(即每次用户打开我的页面时启动 metasploit)

注意:我尝试为 msfconsole 指定完整路径,但这也不起作用!

继承人我到目前为止:

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

使用“;show”位是为了让它真正运行一些东西并打印一些东西,但没有任何区别!

4

1 回答 1

1

当您在 X 窗口系统中从命令提示符运行 gui 应用程序时,它将使用默认显示。当您使用嵌入在 apache 网络服务器中的 php 运行它时,程序可能不知道在哪里显示 gui 应用程序。

有两件事可以完成这项工作。

  1. 执行 gui 应用程序的程序必须有使用显示的权限
  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 回答