利用随机异或无限免杀d盾 ——yzddMr6

前言

最近D盾更新了,在某司某圈也看到了不少免杀d盾免杀狗的一句话帖子
但是基本上只要放出来不到两天时间就加入查杀全家桶.最近一直在造各种车轮子
就想着其实可以写个脚本利用异或来fuzz出指定的字符
然后拼接出assert或者create_function等函数,来对抗waf的检测.

思路及实现

首先如何fuzz的问题

先讲一个离散数学中的概念叫可逆 ,异或的运算就是具有可逆性的.

具体什么意思呢,就是说若a^b=c,则有b^c=a

所以只要把需要拼凑出来的字符串a跟随机取出来的符号b异或,然后出来的结果c就是需要跟b异或的内容.

举个例子

我们来echo一下字符a跟符号*异或的结果

20017676-ed68a4f597640c2d.png
image

是大写字母K

20017676-d44ed90e1b815c87.png
image

然后把大写K跟*异或

20017676-55e318f85e83daad.png
image
20017676-74617bc0cf97a2a8.png
image

就出来了我们想要的a
那么也就是

a=K^*

但是在写的过程中问题来了
很多时候异或出来的字符是不可见的小方块

20017676-86cdcbed55c0d1b0.png
image
20017676-b7a48483cf2e9e7c.png
image

就需要把它编码

看了以前有一篇文章是用url编码

但是在实现过程中发现url编码也有一定概率出现不可表示的字符

那就开开心心上hex吧

最终成功拼接出来了assert

20017676-3332023077a8445d.png
image

接下来就是写个字符串池子,用来存特殊符号,然后随机取出来进行异或,拼接想要的字符.

20017676-6f72510b86c4edc8.png
image

把它封装成函数
可以设置需要异或的字符串长度

20017676-863a453196893ab5.png
image

其实也可以用中文甚至emoji表情来异或,但是考虑到乱码还有不同系统对表情的支持不同,就算了.

取出拼接好的assert,把get的数据传进去,就成了下面这样

20017676-dcbf205728bae37b.png
image

哈,看来可以使用啦

20017676-49b9e529ba77e1fc.png
image

接着是调用的问题,其实到了这个地步
不管你什么d盾安全狗已经认不出来函数里面写的什么意思了
但是他会根据函数的调用来检测拦截
如果这个时候直接调用的话会爆一级可疑函数.

20017676-eb26d3aad48c029b.png
image

既然做免杀肯定要0级了啦

放到类里面再调用就好了

20017676-e152b210c8edd02b.png
image
20017676-72971ba23aca95d4.png
image

接下来就是造轮子了
在脚本中为了增大waf识别的难度 类名方法名也随机化了.

使用方法

20017676-4bf66e683bbfa7ec.png
image
20017676-6fd258c6406927c2.png
image

右键查看生成的源码

20017676-58c4ce1f9a321d91.png
image

已经保存到同目录下1.php里面了

20017676-e96b2c89ca7b50f3.png
image

生成了十几个
附上过D截图

20017676-3684918bcbb3663f.png
image

最后

脚本特点有三个

一利用特殊符号异或达到迷惑waf的目的,并且因为每一次的拼接都是随机生成的,所以单单一个文件进了特征库也不用担心

二是利用类调用,类名函数名随机化,杀软分析起来可能跟普通的文件没有什么区别

三是没有assert eval create_function 等这些关键字,更为隐蔽.

因为是随手写的,所以代码比较糙,不过不要在意这些细节……

只是提供了一个思路,其实大马也可以像这样写个免杀模版,下一篇文章再讲吧

虽然都是随机化,也没有assert eval 这种关键字,但是用的人多了当然脚本的免杀性也失效了,可以关注我的github:

https://github.com/yzddmr6

以后更新的免杀脚本都会放在上面.

源码地址

https://github.com/yzddmr6/webshell-venom

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值