学习干货|手把手玩转雷池WAF!建议收藏(文末抽奖)

admin 2024年12月6日15:02:58评论11 views字数 4207阅读14分1秒阅读模式

0x01 前言
   对于安服来说,WAF等安全设备是必备知识,尤其是每年的HVV在后面会频次更高,在前两年的一些网络安全圈发生的HVV意外事件,后面对于人力技术筛选会加重,所以学习的脚步一定不要停下来

   本次以长亭雷池WAF为核心进行讲解,在最前面会先对WAF的核心运行原理进行讲解,以对标人群(非安全相关工作人员及安全相关工作人员(新人/老师傅))进行视频文章讲解,然后讲解流量导向、运行原理和数据库存储拓展

第二部分会讲解雷池WAF安装的配置(手把手)从所需环境到安装测试

第三部分会讲雷池维护站点配置及测试误报和拦截率,期间根据拓扑图进行讲解原理以及日常维护的思路

学习干货|手把手玩转雷池WAF!建议收藏(文末抽奖)

* 本视频及文章仅为学习参考,文中所使用的工具会在学习后删除

* 如您认为本文章帮助了你,麻烦点赞转发让更多人看到

0x02 WAF的知识学习讲解

WAF的底层原理

非安全相关工作为什么要了解WAF?

1.假如你是一位个人网站运营维护者或企业运维,需要为所有资产进行防护,需要以低成本或限定预算的情况下去购买设备防护,肯定需要了解是否合适划算合理,否则是否有打水漂,不会配置,无法写总结的情况

安全从业人员为什么要了解WAF?

1.新手或学生:在面试时极大可能性的问到你用过哪些设备(可以看我之前写的面试文章),流量走向甚至拓扑图(视频会解释)

2.已经就业的相关人员:在日常进行巡检的时候,可能会遇到流量走向不正常的情况,则需要进行排查流量是否为设备问题或确实是安全事件(视频中进行举例)

WAF的工作原理

以简单拓扑为例,以下图片为正常流量走向,互联网防火墙未对IP进行加黑,此时流量经过WAF和其它安全设备,未检测到攻击行为

学习干货|手把手玩转雷池WAF!建议收藏(文末抽奖)

以下图为例:1(红线为防火墙已加黑IP,防火墙直接拒绝,不经过二层安全设备)

2(绿线为防火墙未加黑IP,流量经过防火墙进行转发,由WAF等安全设备进行检测然后处理)

学习干货|手把手玩转雷池WAF!建议收藏(文末抽奖)

下图为例(防火墙未加黑IP,攻击者发送攻击请求,WAF等安全设备在数据库中匹配到相关的事件直接拒绝,不转发到相关服务器)

学习干货|手把手玩转雷池WAF!建议收藏(文末抽奖)

在此之前,我搭建DVWA靶场和雷池WAF联动分析流量和阻断观察,可以详细的进行分析行为,对小白比较友好

学习干货|小白女友看完这篇文章后,面试工作和护网蓝队初级竟然秒通过!建议收藏

WAF的工作原理

下图示例:某WAF在2024.1.1日初次安装后,没有更新事件库,攻击者发送0DAY或1Day攻击成功(视频进行了详细描述)

学习干货|手把手玩转雷池WAF!建议收藏(文末抽奖)

为了防止相关事件发生,厂商会在自家建立事件库,然后开放API进行远程更新客户WAF事件库,以防止1DAY或NDAY攻击,以下为事件库POC来源(视频已详细介绍)

学习干货|手把手玩转雷池WAF!建议收藏(文末抽奖)

WAF的额外知识拓展

不局限于WAF,这个只是只是拓展,关于数据库存储相关知识

下图为例:当攻击者使用大量的代理IP进行漏洞扫描时,此时是高并发状态,如果此时设备使用的是MySQL这种关系型数据库,可能会面临崩溃的情况,应如何解决(视频详细说明自己看法)

学习干货|手把手玩转雷池WAF!建议收藏(文末抽奖)

下图为例:可以在MySQL等关系型数据库中间放一个redis中间件,每次请求时先在redis查询是否有这个事件,没有的话再由redis向MySQL等数据库进行查询,redis记录在本地然后转发给WAF,下次在匹配相关事件时,不再向MySQL发送请求,即可解决高并发海量查询

学习干货|手把手玩转雷池WAF!建议收藏(文末抽奖)

当然现在技术相当成熟,雷池WAF使用的PostgreSQL,也是关系型数据库,所以此处我们当是知识拓展

WAF的安装

以本次主角长亭雷池WAF为例,官网为

https://waf-ce.chaitin.cn/

   硬性要求如下,需要根据后面给的命令进行确定并安装docker及docker-compose

学习干货|手把手玩转雷池WAF!建议收藏(文末抽奖)

此外,我们本次文章及视频复现使用的是服务器,更为了体验真实性

在服务器安装docker所需前置条件程序

apt install apt-transport-https ca-certificates curl software-properties-common

学习干货|手把手玩转雷池WAF!建议收藏(文末抽奖)

载入官方gpg密钥和docker官方源载入确保安全性

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

学习干货|手把手玩转雷池WAF!建议收藏(文末抽奖)

使用apt安装docker和docker-compose(ubuntu为例,视频已说明)

apt install docker-ceapt install docker-compose

学习干货|手把手玩转雷池WAF!建议收藏(文末抽奖)

接着根据官方给的安装方式进行安装

自动安装直接复制下面的命令,会调用curl去保存shell脚本到本地,然后bash去执行自动安装

手动安装需自己对于Linux或docker比较熟悉

离线环境为设备不出网,比如学校机房/内网机器等,用于学习和防护,则下载安装包自行安装即可

在雷池官方的文档中已经给出了每个安装方式的教程学习干货|手把手玩转雷池WAF!建议收藏(文末抽奖)

此处我使用的服务器可以出网,所以我直接服务器安装

学习干货|手把手玩转雷池WAF!建议收藏(文末抽奖)学习干货|手把手玩转雷池WAF!建议收藏(文末抽奖)

安装成功后会给我们登录地址和端口,如果你是服务器安装,切记要将此端口进行安全组加白放行,以及关闭防火墙或防火墙加白名单,否则会访问不到(视频已详细说明)

学习干货|手把手玩转雷池WAF!建议收藏(文末抽奖)

安装成功后,登录成功,可以看到我们是免费版本,这个对于个人用户比较友好,可以满足日常的需求,所以雷池在国内排名最前不是没有道理的

学习干货|手把手玩转雷池WAF!建议收藏(文末抽奖)

WAF功能解析

通过防护日志我们可以看到所保护站点的日志

学习干货|手把手玩转雷池WAF!建议收藏(文末抽奖)

我们可以通过防护站点添加所保护的站点,在第三步中会进行介绍使用和测试

学习干货|手把手玩转雷池WAF!建议收藏(文末抽奖)

证书管理针对的是我们网站为HTTPS协议,可以上传SSL证书

学习干货|手把手玩转雷池WAF!建议收藏(文末抽奖)

频率限制主要是防护了CC攻击,在之前文章中也进行了详细的说明CC攻击,比如漏洞扫描,短时间内请求次数过多时,则会触发此防护策略

学习干货|手把手玩转雷池WAF!建议收藏(文末抽奖)

防护配置默认是平衡防护:禁用表示不使用此策略,仅观察表示为使用策略但不拦截,在防护日志可以看到攻击请求,平衡防护则表示进行拦截但不这么严格,高强度防护表示的是匹配即拦截,当然这种情况可能误报比较多,根据个人情况优化选择

学习干货|手把手玩转雷池WAF!建议收藏(文末抽奖)

WAF的使用和操作

测试未防护站点

首先我们先测试WAF未防护站点,使用命令执行和SQL注入

学习干货|手把手玩转雷池WAF!建议收藏(文末抽奖)

学习干货|手把手玩转雷池WAF!建议收藏(文末抽奖)

其中,在前端请求的SQL注入payload被提示不安全内容,这是由于在CMS中定义了SQL注入检测,俗称软WAF,我们的请求还是可以被记录到WEB日志中的

学习干货|手把手玩转雷池WAF!建议收藏(文末抽奖)

然后使用漏扫工具进行扫描80端口,并且在宝塔自带功能中检测WEB日志攻击行为

学习干货|手把手玩转雷池WAF!建议收藏(文末抽奖)

学习干货|手把手玩转雷池WAF!建议收藏(文末抽奖)

配置防护站点

在上面我们对防护站点的检测,虽然在CMS中会对一些攻击进行前端拦截和宝塔日志可以检测,但并不会拦截以及日志只会对GET包检出攻击流量,所以这时候我们开始配置雷池防护站点

学习干货|手把手玩转雷池WAF!建议收藏(文末抽奖)

以上截图中,*表示通配符,如你想映射到哪个子域名中,则自定义

上游服务器为我要保护的站点,而图中的80端口,则表示我想把我要保护的站点映射到80端口

学习干货|手把手玩转雷池WAF!建议收藏(文末抽奖)

图中配置意为我要将我80端口的互联网地址映射到9999端口

学习干货|手把手玩转雷池WAF!建议收藏(文末抽奖)

此时我们访问9999端口的install路径会发现可以访问成功,它和80端口返回是一样的

学习干货|手把手玩转雷池WAF!建议收藏(文末抽奖)

学习干货|手把手玩转雷池WAF!建议收藏(文末抽奖)

返回到宝塔日志查看一下,可以看到访问两次install的IP都不一样

学习干货|手把手玩转雷池WAF!建议收藏(文末抽奖)

这是什么原因呢?因为我们在防护站点配置的是要防护互联网地址的80端口,所以我们请求9999端口后,雷池WAF会将流量通过互联网口转发请求解析80端口

这时候我将防护模块改为高强度防护,并请求攻击漏扫等

学习干货|手把手玩转雷池WAF!建议收藏(文末抽奖)

学习干货|手把手玩转雷池WAF!建议收藏(文末抽奖)

可以看到上图,所有疑似和确认请求都被拦截成功,且短时间内正常访问也不行,被进行了暂时加黑(相关步骤视频讲解)

学习干货|手把手玩转雷池WAF!建议收藏(文末抽奖)

将防护模块改为平衡防护后,WAF会智能选择性拦截,此时误报率会降低

学习干货|手把手玩转雷池WAF!建议收藏(文末抽奖)

学习干货|手把手玩转雷池WAF!建议收藏(文末抽奖)

假如将模块改为仅观察,则所有告警都不拦截,只将攻击请求记录

学习干货|手把手玩转雷池WAF!建议收藏(文末抽奖)

关闭被防护端口对外访问策略

这时候肯定会有很多师傅有疑问,我80端口和9999端口都开着,所以为什么攻击者不扫描端口后直接访问80端口,不经过9999端口呢,这个问题非常好,我们可以在防火墙和安全组规则将80端口不对外放行

学习干货|手把手玩转雷池WAF!建议收藏(文末抽奖)

此时我们的80端口将无法访问,不过我们的9999端口也无法访问了

学习干货|手把手玩转雷池WAF!建议收藏(文末抽奖)

为什么9999端口无法访问了呢?我们在第二部分配置防护站点时是以互联网地址进行保护的,它转发流量也是通过互联网出口进行转发的,我们给的规则是0.0.0.0/0拒绝,所以它无法访问了

学习干货|手把手玩转雷池WAF!建议收藏(文末抽奖)

怎么办?如果我要本机保护本机,在配置防护站点时,直接填本机地址即可

学习干货|手把手玩转雷池WAF!建议收藏(文末抽奖)

此时再次访问可以访问成功,我们回到宝塔查看WEB日志,看到请求地址是127.0.0.1

学习干货|手把手玩转雷池WAF!建议收藏(文末抽奖)

学习干货|手把手玩转雷池WAF!建议收藏(文末抽奖)

有些师傅又有疑问了,如果我是A保护B呢?我们可以直接在B安全策略配置A的服务器地址为白名单就行了呀

学习干货|手把手玩转雷池WAF!建议收藏(文末抽奖)

这样用户和攻击者只能通过WAF映射端访问,如果访问原站点则超时,完成实时保护的目的

学习干货|手把手玩转雷池WAF!建议收藏(文末抽奖)

CC或暴力破解测试

在之前文章中我写了一下关于DDOS和CC攻击的区别,以故事性进行描述

实战测试|浅谈CC攻击-CDN

我们本次进行测试,首先在雷池WAF后台进行频率防护配置

学习干货|手把手玩转雷池WAF!建议收藏(文末抽奖)

然后打开burp suite进行扫描等或爆破操作

学习干货|手把手玩转雷池WAF!建议收藏(文末抽奖)

可以正常访问,然后使用intruder模块进行fuzz

学习干货|手把手玩转雷池WAF!建议收藏(文末抽奖)

我模拟了路径fuzz测试,请求123次,在60次左右的时候进行了状态码的回显异常

学习干货|手把手玩转雷池WAF!建议收藏(文末抽奖)

此时表示WAF拦截成功,再次访问站点看到我们已经被短暂加黑,被判定异常

学习干货|手把手玩转雷池WAF!建议收藏(文末抽奖)

为什么我配置的30次,那边是60次请求后才加黑?因为这个东西类似于条件竞争,不会百分百达到阈值立马封,基本上会有个范围

这里小tips:如果你的站点在访问时加载的js或css或其它文件比较多,每次刷新都加载,建议将阈值调高一些

一些日常操作思路

如果我们在使用时,发现误报比较多的选项,如此处反序列化,明明是正常请求,为什么判定了,我猜测大概是请求包中,系统默认的请求头中,可能判定有一些字段为反序列化了

学习干货|手把手玩转雷池WAF!建议收藏(文末抽奖)

学习干货|手把手玩转雷池WAF!建议收藏(文末抽奖)

这个时候大概率是误报,确认后进行优化,比如在自定义规则中自定义,或者在反序列化模块中仅观察

学习干货|手把手玩转雷池WAF!建议收藏(文末抽奖)

还有一种思路就是捕捉一些攻击,运气好的话可能是1DAY之类的,充足自己的POC库

0x03 结语

最后就是关于雷池WAF的使用和安装问题,包括说后期的一些问题,可以直接进官方群咨询的,这个不收费的,当然有交流技术问题欢迎来共同学习

学习干货|手把手玩转雷池WAF!建议收藏(文末抽奖)

   最后就是我们熟悉的抽奖环节,本次抽奖由北京长亭科技有限公司赞助,限量版手办5份,抽到尽快兑奖,还有选择款式的机会

学习干货|手把手玩转雷池WAF!建议收藏(文末抽奖)

* 为了控制一人多号,请转发至朋友圈或百人群聊,中奖前不删除不撤回即可兑奖哦

学习干货|手把手玩转雷池WAF!建议收藏(文末抽奖)

原文始发于微信公众号(州弟学安全):学习干货|手把手玩转雷池WAF!建议收藏(文末抽奖)

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年12月6日15:02:58
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   学习干货|手把手玩转雷池WAF!建议收藏(文末抽奖)http://cn-sec.com/archives/3475587.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息