AWD 流量混淆之道
题目取得有点标题党,其实只是自己当时的一个想法,去实现了一遍,只有简单的一个混淆的脚本,水平比较有限,所以很多地方实现的并不是比较合理,望各位师傅们,勿喷,写这篇文章的目的主要是提供思路的参考
0x01 混淆原理
原理非常简单,利用了和算法
将正常的payload编码成类似的模样
然后在在一句话木马处设置解码函数
进行解码
循环遍历Web目录下所有的php文件,匹配所有的请求的函数名,然后随机发送经过编码后的混淆数据,以达到流量混淆的目的
效果图
标红的位置是利用webshell的流量,其余的全是混淆流量
利用webshell的流量包内容如下
0x02 编码与解码
核心为攻击流量的编码和webshell端的解码部分
encode.py
使用encode对payload进行编码
在webshell端进行解码
解码效果
0x03 流量混淆
流量混淆的思路,首先遍历Web目录下的所有php文件,将其添加到列表php_path中
然后对php_path中的文件进行正则匹配,匹配出所有的GET、POST、REQUEST 的变量名,将其去重后添加到request_list列表中
随机生成混淆的字符串
发送混淆流量
调用发送混淆流量
0x04 混淆马
对木马也进行混淆,这里参考ph牛的变形WebShell的方法
但是只适用于php5.5版本以上,5.5以下会报错
这里当然可以采用内存马来不断的写入,来达到不死混淆马的目的
其中的注释部分用于检测,完整性是否被破坏
0x05 完整代码
之前的代码是拆分成一个一个功能模块来实现的,在最后的时候,我把它改成了面向对象的形式来实现
贴上最终版代码
confusion.py
encode.py
attack.py
领取专属 10元无门槛券
私享最新 技术干货