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

1
自己三个月前在圈子发的文章,保存一下

最近D盾更新了,在某司某圈也看到了不少免杀d盾免杀狗的一句话帖子

但是基本上只要放出来不到两天时间就加入查杀全家桶.最近一直在造各种车轮子

就想着其实可以写个脚本利用异或来fuzz出指定的字符

然后拼接出assert或者create_function等函数,来对抗waf的检测.

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

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

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

举个例子

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

img

是大写字母K

img

然后把大写K跟*异或

img

img

就出来了我们想要的a

那么也就是

1
a=K^*

但是在写的过程中问题来了

很多时候异或出来的字符是不可见的小方块

img

img

就需要把它编码

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

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

那就开开心心上hex吧

最终成功拼接出来了assert

img

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

img

把它封装成函数

可以设置需要异或的字符串长度

img

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

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

img

哈,看来可以使用啦

img

接着是调用的问题,其实到了这个地步

不管你什么d盾安全狗已经认不出来函数里面写的什么意思了

但是他会根据函数的调用来检测拦截

如果这个时候直接调用的话会爆一级可疑函数.

img

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

放到类里面再调用就好了

img

img

接下来就是造轮子了

在脚本中为了增大waf识别的难度 类名方法名也随机化了.

img

img

右键查看生成的源码

img

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

img

生成了十几个

附上过D截图

img

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

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

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

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

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

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

https://github.com/yzddmr6

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

如果有什么讲的不对的地方还请大佬们多多包涵.

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

相关内容