2012-03-19 56 views
2

到目前为止,我一直在尝试编写一个PHP脚本,该脚本将在打开页面时运行并启动metasploit!启动应用程序的服务器端脚本

我试过shell_exec和exec和所有其他的替代品,但尽管我可以让它做简单的事情(即LS,CD等),如果我尝试msfconsole它不会做任何事情!

我也尝试了一个不同的脚本,启动Firefox并再次没有任何反应!

现在我知道php运行在服务器上,我不希望在客户端计算机上看到控制台或Firefox打开!相反,为了检查它是否工作,我试图回显出shell_exec的输出!但无论如何,因为即时通讯托管我的机器上的文件(即这是服务器和虚拟机是客户端),如果它实际上可以启动Firefox应该能够以相同的方式看到应用程序在这里打开,只需从命令行执行此操作即可!

我错过了什么?

是否有任何其他方式做到这一点

注意?(即启动Metasploit的每次用户打开了我的网页。):我试过指定为msfconsole的完整路径,但没有工作要么!

继承人是我到目前为止有:

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

的“秀”位是为了用于实际使其运行的东西,打印一些东西,但没有任何区别!

回答

1

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

有2件事情可以使这项工作。

  1. 执行GUI应用程序必须使用显示
  2. 你需要告诉程序要使用哪个显示许可程序。

我用我的PHP脚本

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

以下和使用PHP -f test.php的 运行脚本从终端我在gedit启动和运行。

你也可以用apache中的脚本测试。 请加入Apache用户具有访问权限的显示服务器

更新:我只是说(我使用Ubuntu)

User poomalai 
Group poomalai 

在/etc/apache2/apache2.conf中以下并重新启动Web服务器 sudo服务apache2重启

现在我访问了localhost/test.php 和Presto !!我得到了gedit :)

希望这会有所帮助