第78天 WAF攻防-荚刀&冰蝎&哥斯拉&流量通讯&特征绕过&检测反制&感知
知识点:
1、菜刀-流量&通讯&检测8绕过
2、冰竭-流量&通计8检测&绕过
3、哥斯拉-流量&通讯&检测&绕过
代码块&传参数据&工具指纹等表面&行为)
1、代码表面层免杀-ASP&PHP&JSP&ASPX等
2、工具行为层免杀菜刀&蚁剑&冰蝎&哥斯拉等
章节点:
WAF绕过主要集中在信息收集,漏洞发现,漏洞利用,权限控制四个阶段。
可以分为下面三种检测的,即WAF、入侵检测平台、威胁感知平台。检测的技术可以分为正则匹配、机器语言、行为分析。一般那种开源的就是用的正则匹配,或者说一些比较垃圾的项目,因为用正则匹配的话比较容易绕过,使用加密、编码、分段等操作即可绕过。这个分段就是把一些特征流量分段发送,比如他检测POST这个东西,你可以中间加点,然后分成几个去表示。而行为分析则不看你过滤的函数,而是看这个代码的最终行为是什么,然后进行分析,如果过探测到行为比较危险就会拦截,而这个机器语言也是比较高级的东西,小迪也没解释清。一般商业的都是行为分析和机器语言去检测,开源的是正则。最终的发展方向呢也是往机器语言和行为分析发展。
正则表达式是 WAF 中最常用的技术之一,可用于实现基于模式匹配的规则和策略。
机器语言是计算机能够理解和执行的指令集,与高级编程语言不同,它使用二进制代码来表示操作和数据。在 WAF
中,机器语言可能用于处理和分析网络流量,以及执行特定的安全策略和行为分析。
行为分析是一种安全技术,旨在识别恶意活动和攻击,例如 SQL 注入、跨站脚本攻击等。在 WAF 中,行为分析可以通过检查 Web
请求的属性、参数、来源 IP 等信息,从而确定该请求是否是合法和安全的
演示案例:
菜刀-流量&绕过&特征&检测
waf告警日志中显示策略匹配到eval post
通过wireshark抓包也可以看到数据包内容
传入的值中xx变量经过php运行结果为base_64decode
把post改为request即绕过检测,然后使用proxifier发送到burp修改菜刀的流量特征
1、版本
python
2014$P0ST=$REQUEST2016可以
2、特征:
数据包流量特征:
1,请求包,中:ua头为百度爬虫
2,请求体中存在eval,base64等特征字符
3,请求体中传递的payload为base64编码,并且存在面定的
QGluaV9zZXQolmRpc3BsYXIfZXJyb3JzliwiMClpO0BzZXRfdGItZV9saW1pdCgwKTtpZih
QSFBfVkVSUOIPTjwnNS4zLjAnKXtAc2V0X21hZ2ljX3F1b3Rlc19ydW50aW1IKDApO307
ZWNobygiWEBZlik7J
冰蝎-流量&绕过&特征&检测
哥斯拉-流量&绕过&特征&检测
冰竭流量&绕过&特征&检测
请求正文全部为AES加密(AES加密的特则含有///,大小写混杂,base64加密含有=)AES加密需要知道密匙、偏移量、加密模式等
0、介绍
冰蝎利用了服务器端的脚本语言加产功能,通讯的过程中,
消息体内容采用AES加密,基于特征值检测的安全产品无法查出。
1、通讯
以代码Key为密匙的AES加密解密过程
2、
特征:
0、User-agent:代码中定义
1、Pragma:no-cache
2.Content-Type:application/x-www-form-urlencoded
3、Accept
text/html,application/xhtml+xml.application/xml:q=0.9,image/webp,image/apng.*/;q=0.8.a
4.Accept-Encoding:gzip,deflate,br
5 Accept-Language:zh-CN,zh;q=0.9,en-US:q=0.8,en;q=0.7
哥斯拉流量&绕过&特征&检测
1、通讯加密见图
2、特征:
1.User-Agent Mozilla/5.0 (Windows NT 10.0;Win64;x64:rv:84.0)Gecko/20100101
Firefox/84.0
2.Accept text/html,application/xhtml+xml,application/xml:q=0.9,image/webp,/:q=0.8
3.Accept-Language:zh-CN,zh;q=0.8,zh-TW:q=0.7,zh-HK:q=0.5,en-US;q=0.3,en;q=0.2
4、Cookie:PHPSESSID=ut2a51prs0470jvfe2q502o44 cookiet最后面存在-个","
拓展 冰蝎流量特征
冰蝎
冰蝎其最大特点就是对交互流量进行AES对称加密,且加密秘钥是由随机数函数动态生成,因此该客户端的流量几乎无法检测
1、通过密钥协商的过程中的一些特征来检测其他
老版冰蝎工具在连接Webshell的时候会存在一个密钥协商的过程,这个过程是纯明文的数据交换,冰蝎存在这样的特征:发起一共两次的密钥协商,通过比较两次密钥协商的返回包中内容的不同部分来获取其中的密钥。
在这个协商过程中,防护设备可以结合URL、请求包和返回包的内容以及头部信息来综合进行判断,这种类型检测的优势是这部分的流程是冰蝎内置的实现,攻击者不太好进行修改绕过。而劣势是在大流量的环境下很容易引起大量的误报。
2、通过Shell交互过程中的HTTP请求特征来检测
冰蝎在发送HTTP请求时存在一些特征,例如其工具中内置了17个User-Agent头,在用户没有自定义的情况下会随机选择一个发送。但是这些User-Agent头大部分是一些老版本的浏览器或设备。这个类型检测的优势是检测方式比较简单,但是在大流量的环境下很容易引起误报,一般使用多个特征相结合的方法来改善误报的情况,并且这部分的特征通常是一些弱特征,攻击者可以通过定制请求头、使用代理等方式修改冰蝎的请求包很轻易的来绕过这类的检测。
3、通过Webshell上传时的流量特征来检测
在真实的攻击场景下,攻击者通常是通过文件上传、文件写入等方式来写入冰蝎的Webshell,所以流量设备也可以通过检测攻击场景的数据包来发现冰蝎的存在。这部分的流量形式主要取决于Web应用,是攻击者不好控制的,而且通常都是以明文形式进行传输,所以比较易于检测。
但是这种检测方式在遇到非文件上传等漏洞时,有可能无法捕捉到Webshell的特征。
冰蝎3.0
从防守方的角度看,这些改动中对防御设备影响最大的是第1点,也就是说,3.0版本的冰蝎不在有密钥协商的过程,从原理上直接绕过了大量流量检测设备(大部分设备是通过握手的行为来检测冰蝎的流量)
蚁剑
1、编码器改造 蚁剑在数据包中实际上是将解码函数一同发送到服务端,那几个解码函数是没法加密的,所以产生一个很明显 的流量特征,蚁剑也支持使用者自定义编码器和解码器
2、请求头修改 蚁剑默认的数据包里都携带了特别明显的请求头信息:User-Agent: antSword/v2.1,对WAF来说这简直 是自报家门
总结
冰蝎改造将动态的AES密钥写死在webshell里,可以减少很多特征。
蚁剑就是将解码函数写死在webshell 里,也可以有效绕过WAF检测