Скрипт на стороне сервера для запуска приложения


До сих пор я безуспешно пытался написать php-скрипт, который будет запускаться при открытии страницы и который запустит metasploit!

Я пробовал shell_exec и exec и все другие альтернативы, но, хотя я могу заставить его делать простые вещи (например, ls, компакт-диски и т. Д.), Если я попробую msfconsole, он ничего не сделает!

Я также попробовал другой скрипт, который запускает firefox, и снова ничего не происходит!

Теперь я знаю, что php работает на сервере, и я не ожидаю, что посмотрите, как открывается консоль или firefox на клиентской машине! Вместо этого, чтобы проверить, работает ли это, я пытаюсь воспроизвести вывод shell_exec!Но в любом случае, поскольку я размещаю файлы на своей машине (т. Е. Это сервер, а виртуальная машина - клиент), если бы она действительно могла запустить firefox, я мог бы увидеть, как приложение открывается здесь так же, как просто делая это из командной строки!

Чего мне не хватает?

Есть ли какой-либо другой способ сделать это? (т.Е. Запустить metasploit каждый раз, когда пользователь открывает мою страницу)

ПРИМЕЧАНИЕ: Я пытался указать полный путь для msfconsole, но это тоже не сработало!

Вот что у меня есть до сих пор:

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

Бит ";показать" использовался для того, чтобы на самом деле заставить его что-то запускать и печатать, но это не имело никакого значения!

Author: mixkat, 2012-03-19

1 answers

Когда вы запускаете приложение с графическим интерфейсом из командной строки в системе X window, оно будет использовать отображение по умолчанию. Когда вы запускаете его с помощью php, встроенного в веб-сервер apache, программа может не знать, где отображать приложение с графическим интерфейсом.

Есть 2 вещи, чтобы это сработало.

  1. Программа, выполняющая приложение с графическим интерфейсом, должна иметь разрешение на использование дисплея
  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

И перезапустил веб-сервер перезапуск службы sudo apache2

Теперь я получил доступ localhost/test.php и Вуаля!! У меня есть гедит:)

Надеюсь, это поможет

 1
Author: pooamlairaj, 2012-03-20 10:05:08