freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

一次编码WebShell bypass D盾的分析尝试
2018-11-15 08:00:13

*本文作者:si1ence,本文属 FreeBuf 原创奖励计划,未经许可禁止转载。

前言

webshell是获得网站的控制权后方便进行之后的入侵行为的重要工具,一个好的webshell应该具备较好的隐蔽性能绕过检测,最近偶然间捕获到了一个webshell的样本经过了4次编码来绕过检测感觉功能还挺强大的,于是就简单分析一下然后再简单的优化了一下发现更nice。

0x1 功能

本地访问了一下主要功能也就3个主要包括读取系统信息与当前用户、命令执行和文件上传,感觉还是常规的操作访问界面如下:

操作访问界面

主要代码如下:

主要代码

0x2 解码

主要是用了eval函数配合base64进行简单的绕过,base_decode函数进行了简单的大小写混淆都是很常规的操作。

对base64编码的字符串进行解码后得到如下字符串,得到如下字符串又是一串代码。

解码

出于直觉对base64的字符串再一次进行解码,得到一串乱码,看来也不是这么容易。

进行解码

关键点定位在了str_rot13 和gzinflate二个函数上面,就顺便查了一下这二个函数的用途,都是属于一种编码类感觉这操作很nice。

二个函数的用途

二个函数的用途

然后通过修改一下webshell的内容,将解码后的源码就直接输出了,算了一个2次base64、1次str_rot13、1次gzinflate就4次编码了,这个几个编码都是标准库里的函数。

解码后的代码一共只有60+行,短小精悍。

只有60+行

0x3 详细代码

感觉还是很6的操作,先收集了网站系统的信息IP、路径、权限一类的数据通过邮件的方式先发送到了已经设定好的邮箱setoran.target26@gmail.com,这个操作不错。

同时检测本的一个bajak的session值,确保邮件不会重复发送。

检测本的一个bajak的session值

在本地创建一个副本放在指定的目录下 images/stories/food/footer.php:

在本地创建一个副本

后续就是一个命令执行和文件上传的操作,还有一个读取配置的文件的代码上二级目录的configuration.php,说实话并不是很理解。

执行和文件上传的操作

0x4 监测

简单抓包看了一下流量层面执行了一个ipconfig,没有捕获到比较有用的信息,命令主要是以cmd的参数进行传递。

以cmd的参数进行传递

感觉操作很牛逼的webshell,应该不会被查杀出来的,毕竟解码还是比较复杂的。

然后用D盾进行查杀,报警提示为4级,这好不科学只有给Orz了。看看提示的是什么,主要依据是eval函数跟了一个base64的字符串,总觉得有什么不对,按理说不应该D盾应该是没有解码的!!!迷之自信!!

按照这个猜想,我自己创建了一个hello world的字符,按照通用的方式进行编码,然后使用D盾进行查杀,果然查杀出来了!!!

查杀出来了

查杀出来了

2个文件、2个可疑。D盾的确是通过这二个特征进行识别的,主要特征就是如下,那想想办法绕过呢。

想办法绕过

首先测试一下注释绕过base64的检测,的确成功绕过了base64的特征,但是仍然识别出了eval的后门还是4级有点upset了。

成功绕过了base64

既然是这样的话,那就再换一种方式。

用函数的方法输出eval居然成功了,级别直接就降低到了2级!!!

降低到了2级

0x5 总结

1. 问题到底是还出在eval这个函数,后面陆陆续续尝试了字符串拼接、大小写混淆、逆序等方式居然都没有绕过。最近又要忙着搬砖就没有继续深入下去了,欢迎各位大佬们尝试顺便给点思路指点一二。

2. 通过一些编码和变化去绕过检测规则对于技术的总结提高还是很有帮助的,日常还是需要多练习尝试。

3. 上次偶然间看到有一些通过特征提取使用朴素贝叶斯做机器学习检测webshell的,攻防对抗越来越有意思以后的绕过技巧也许会更加丰富。

4. 用别人的的过狗大马小马一句话的时候,也要多留心别人留一个后门瞬间就尴尬了。

*本文作者:si1ence,本文属 FreeBuf 原创奖励计划,未经许可禁止转载。

# webshell # bypass # D盾
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录