那些强悍的PHP一句话后门

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

trojan

强悍的PHP一句话后门

这类后门让网站、服务器管理员很是头疼,经常要换着方法进行各种检测,而很多新出现的编写技术,用普通的检测方法是没法发现并处理的。今天我们细数一些有意思的PHP一句话木马。

利用404页面隐藏PHP小马

404页面是网站常用的文件,一般建议好后很少有人会去对它进行检查修改,这时我们可以利用这一点进行隐藏后门。

无特征隐藏PHP一句话

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

超级隐蔽的PHP后门

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

利用方法:

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

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

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

文件2

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

PHP后门生成工具weevely

weevely是一款针对PHP的webshell的自由软件,可用于模拟一个类似于telnet的连接shell,weevely通常用于web程序的漏洞利用,隐藏后门或者使用类似telnet的方式来代替web 页面式的管理,weevely生成的服务器端php代码是经过了base64编码的,所以可以骗过主流的杀毒软件和IDS,上传服务器端代码后通常可以通过weevely直接运行。

weevely所生成的PHP后门所使用的方法是现在比较主流的base64加密结合字符串变形技术,后门中所使用的函数均是常用的字符串处理函数,被作为检查规则的eval,system等函数都不会直接出现在代码中,从而可以致使后门文件绕过后门查找工具的检查。使用暗组的Web后门查杀工具进行扫描,结果显示该文件无任何威胁。

以上是大概介绍下边是截图,相关使用方法体验盒子就不在这介绍了,简单的科普一下。

三个变形的一句话PHP木马
第一个

在菜刀里写http://site/1.php?2=assert密码是1

第二个

在菜刀里写http://site/2.php?_=assert&__=eval($_POST['pass']) 密码是pass。
如果你用菜刀的附加数据的话更隐蔽,或者用其它注射工具也可以,因为是post提交的。

第三个

str_rot13('riny')即编码后的eval,完全避开了关键字,又不失效果,让人吐血!

过狗免杀PHP一句话一枚

.htaccess做PHP后门

这个其实在2007年的时候作者GaRY就爆出了,只是后边没人关注,这个利用关键点在于一句话:

toby57解析加密PHP一句话木马

此段后门使用方法会与其它方法不太一样,具体看下面
Client:

Server:

对服务端与客户端指令对比,如一致则执行后门指令。

几个President分享的PHP一句话

最后列几个高级的PHP一句话木马后门

一款萎缩的动态生成远端大马后门

Webshell代码如下:

其实这款后门在某地,还有Tools上先前已经被破,但没有被拿出来公开分析分享,而今天看到360卫士对该SHELL进行了公开分析……,在360公开后,作者blackbin也进行了小幅更新,新版本不在使用高危函数例如 preg_replace e修饰符同时php5.5已经去掉e 不再使用 eval 不在使用assert采用新的匿名方式回调。
代码如下:

关于这款后门的使用方法,首先要有远端大马,然后后门页其实是一个404伪装页,需要按键盘p键,就会显示登录页,关于此后门的最新代码方法可访问上边作者页获取!

替换特征PHP一句话

命令执行PHP后门

几个变形PHP一句话

一般的安全软件可能会将eval+GET或POST判定为后门程序,因此这种变形将eval和GET或者POST分开,能够绕过这种情况。


请求参数

还原出的命令

利用assert来执行命令,并且用字符串隐藏assert方法,并且利用它加上动态传入参数的方式构造后门。


请求参数

完全利用动态参数传入的方式构造后门,将敏感函数和执行的命令动态传入,效果与变形二是一致的。


改进的地方:
首先,将eval函数用str_rot13(‘riny’)隐藏。
然后,利用 e 修饰符,在preg_replace完成字符串替换后,使得引擎将结果字符串作为php代码使用eval方式进行评估并将返回值作为最终参与替换的字符串。


改进的地方:
由于include方法可以直接编译任何格式的文件为php格式运行,因此可以上传一个txt格式的php文件,将真正的后门写在文本当中。

上传.user.ini,并且写入auto_prepend_file=code.gif
将一句话隐藏在code.gif中,并且将它上传到同一目录下。

改进的地方:
将一句话木马隐藏在图形文件中,并且利用用户配置文件将其自动加载到同目录的php文件下,使得所有正常php文件都毫不知情的中招。


改进的地方:

  1. 通过pack函数得到URL
  2. 利用file_get_contents获得make.jpg
  3. 利用substr截取3649字节以后的内容
  4. 利用gzuncompress方法将3649字节以后的内容解压出来
  5. 用preg_replace方法的e操作符将代码执行

还有很多后续操作……


过狗过盾PHP一句话

过狗过盾无特征无动态函数PHP一句话

分享些不需要动态函数、不用eval、不含敏感函数、免杀免拦截的一句话。(少部分一句话需要php5.4.8+、或sqlite/pdo/yaml/memcached扩展等)

非常规的pHp一句话木马

bypass-safedog再送一枚

综上,这些PHP一句话后门可谓五脏俱全,一不小心您肯定中招了,而我们今天这篇文章的重中之重在哪呢?重点就在下边的总结!

如何应对PHP一句话后门

我们强调几个关键点,看这文章的你相信不是门外汉,我也就不啰嗦了:

  • 对PHP程序编写要有安全意识
  • 服务器日志文件要经常看,经常备份
  • 对每个站点进行严格的权限分配
  • 对动态文件及目录经常批量安全审查
  • 学会如何进行手工杀毒《即行为判断查杀》
  • 时刻关注,或渗入活跃的网络安全营地
  • 对服务器环境层级化处理,哪怕一个函数也可做规则

体验盒子认为当管理的站点多了,数据量大时,我们应合理应用一些辅助工具,但不应完全依赖这些工具,技术是时刻在更新进步的,最为重要的是你应学会和理解,编写这些强悍后门的人所处思维,角色上的换位可为你带来更大的进步。

文中所列后门中如涉及版权问题,要强调的是这类后门无从查找原始出处,也无唯一性,如果你非要和我说某某是你原创的,请联系我,我会验证后在文中特别强调。我非常看重网络知识产权问题。

参考


2013-05-10更新:.htaccess做PHP后门
2013-05-12更新:toby57解析加密型一句话木马
2013-07-05更新:更新President分享变异PHP一句话五枚
2014-03-20更新:一款萎缩的动态生成远端大马后门
2016-08-10更新:添加好的参考文献
2016-08-11更新:添加三枚PHP一句话后门
2016-08-15更新:添加PHP-backdoors参考
2016-08-19更新:添加参考,并增加几个变形PHP一句话、过狗过盾PHP一句话、过狗过盾无特征无动态函数PHP一句话
2016-10-06更新:添加两枚非常规的pHp一句话木马,再更一枚过狗PHP一句话


原“亦家网络”域名到期被抢注,导致关停,现在转至体验盒子并继续更新,作者是同人!

持续更新,为保证资料完整性,转载务必说明本文原地址!




评论 (3)

  1. 沙发
    套利团 2013-05-29 08:51

    学习了,回头自我检测一下。

  2. 板凳
    山东免烧砖托板 2013-05-13 06:44

    大部分看不懂 呵呵