WAF 这几年进化得很快,早年那套改改 payload、换换请求头的把戏,现在基本走不通了。EvilWAF 换了个思路——它不碰攻击载荷,直接从传输层下手:轮换 TCP 配置、伪造 TLS 指纹,必要时还能帮你挖出 WAF 后面的真实源站 IP。顺便它还能反过来当 WAF 扫描器用,一次探十层防御。

一、EvilWAF 是什么
防护侧近几年已经不满足于简单特征匹配,开始上行为分析。结果就是,你精心藏起来的 payload 往往还没摸到应用逻辑就被拦下来。
EvilWAF 就是为这个局面出现的。它是个开源渗透测试工具,工作方式是透明中间人(MITM)代理加 WAF 漏洞扫描器。
关键区别在这:sqlmap 那类工具改 payload、改 header;EvilWAF 对攻击数据碰都不碰,直接在传输层做文章。这样既能绕开 WAF 的行为检测,还能顺手检查防火墙本身的弱点。
它有两种工作模式:代理模式,以及独立的 WAF 扫描器。
代理模式下,你在本地跑起 EvilWAF,让攻击工具把流量发过来。这条链路上没有任何载荷篡改——sqlmap 发出的 SQL 注入语句、HTTP body、应用头,EvilWAF 都原样放行。sqlmap 负责找应用层漏洞,EvilWAF 负责处理连接:轮换 TCP 配置、TLS 指纹(比如 JA3、JA4),让 WAF 既不拦你也不限速。
更狠的是 auto-hunt 选项。开启之后,EvilWAF 会想办法找出 WAF 背后的真实后端 IP,然后把 sqlmap 流量直接送到源站——WAF 干脆被绕过去。
独立扫描模式下它也能单干。加 scan-only 参数启动,目标就变成防火墙本身:横跨十个防御层做一轮完整体检,规则引擎有没有缺口、限流配置对不对、已知规避手法能不能钻空子、HTTP 方法行为是否正常、TLS 设置有没有松的地方,全查一遍。
二、安装
在 Kali Linux 上安装,用 Python 虚拟环境就行:
kali> git clone https://github.com/matrixleons/evilwaf.git
kali> cd evilwaf
kali> python3 -m venv myenv
kali> source myenv/bin/activate
kali> pip3 install -r requirements.txt
kali> python3 evilwaf.py -h

因为 EvilWAF 是个完整的 HTTPS 中间人代理,它必须能看到加密流量。第一次运行时会自动生成一套本地 CA 证书,你需要在 Kali 上信任这套证书,否则代理工具用起来会报 SSL 错误。
先生成证书,跑一次就行:
kali> python3 evilwaf.py -t https://example.com
然后导入证书并设置为系统级信任:
kali> sudo cp /tmp/evilwaf_ca_*/evilwaf-ca.pem /usr/local/share/ca-certificates/evilwaf-ca.crt
kali> sudo update-ca-certificates

三、跑起来
3.1 代理模式
指定审计目标启动,默认会开一个实时终端界面,监听 127.0.0.1:8080:
kali> python3 evilwaf.py -t https://target.com
EvilWAF 跑起来之后,让攻击工具走这个代理。比如 sqlmap:
kali> sqlmap -u "https://target.com/page?id=1" --proxy=http://127.0.0.1:8080
这时候 EvilWAF 的界面就会动起来。

你可以实时看流量,更关键的是它会显示:哪些传输层操纵技术生效了、用了什么指纹配置、往出站请求里注入了哪些头。调绕过策略时,这些信息非常有用。
auto-hunt 是另一个值钱的功能。它并行跑 10 个扫描器来找源站 IP,手段包括 DNS 历史记录、SSL 证书分析、子域名枚举等:
kali> python3 evilwaf.py -t https://target.com --auto-hunt
找到高置信度的 IP 之后,它会问你要不要把流量直接路由到真实服务器。

如果你已经知道源站 IP,也可以手动指定:
kali> python3 evilwaf.py -t https://target.com --server-ip 1.2.3.4
3.2 独立 WAF 扫描模式
不跑任何第三方工具,EvilWAF 自己就能给防火墙做配置体检:
kali> python3 evilwaf.py -t https://target.com --scan-only
十个防御层同时开探。


四、说说 Cloudflare
得单独拎出来讲一句:Cloudflare。
今天的 Cloudflare 算得上一线 WAF,它不是一堆规则,而是一整套多层防御体系。全球几百个数据中心协同,让它能在所有受保护的站点上快速识别并缓解新出现的攻击模式。
它判断一个请求的信号很多:TCP/IP 与 TLS 指纹、HTTP/2 结构、行为模式,然后把这些因素关联起来,给每个请求打一个风险分。跟那种依赖已知攻击特征的传统 WAF 不同,Cloudflare 用的是在海量真实攻击流量上训练出来的机器学习模型,专门识别与正常浏览器流量的偏离。
这就让它很难打。规则型 WAF 上好用的招,落到它身上基本失效。它的行为指纹甚至在检查载荷之前就先给你拦了——光凭传输层特征就能判定你是个工具。限流也做得细,它会追踪会话模式并逐级加挑战,阈值很难被有效利用。
所以 EvilWAF 只是“绕过 WAF 可能长什么样”的一个例子,绝对不是穿甲弹。
五、小结
EvilWAF 算是防火墙绕过进入新阶段的一个标志。载荷混淆、简单编码这些东西,在现代 WAF 面前基本没用了。真正需要关注的是 EvilWAF 这类在传输层做文章的思路。
素材出处
本文为编译报道,内容整理自以下原始资料: