Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
wafaray — 使用 WAF + YARA (WAFARAY) 增强你的恶意软件检测 | Kitploit
工具/GitHubGitHub/alt3kx/wafaray
防御工具WAF绕过Web安全恶意软件分析渗透测试威胁情报实验室与实践
GitHubalt3kx/wafaray

wafaray

使用 WAF + YARA (WAFARAY) 增强你的恶意软件检测

查看仓库
10714184年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

使用 WAF + YARA 增强恶意软件检测能力(WAFARAY)

wafaray

WAFARAY 是一个基于 Debian 11.3.0 (稳定版) x64 搭建的实验室部署,融合了两大核心组件 WAF + YARA,用于检测通过 Web 功能(如文件上传)传播的恶意文件(例如 webshell、病毒、恶意软件、二进制文件)。

made-with-python made-with-bash GitHub Linux

目的

核心理念是:在 WAF 将文件转发到后端之前,在 WAF 层面使用 WAF + YARA(YARA 从右到左读写作 ARAY)检测恶意文件,例如通过 Web 功能上传的文件(参见:https://owasp.org/www-community/vulnerabilities/Unrestricted_File_Upload)。

当网页允许上传文件时,大多数 WAF 在将文件发送到后端之前不会检查文件内容。集成 WAF + YARA 可以在 WAF 转发文件到后端之前实现恶意软件检测。

通过 WAF 进行恶意软件检测?

是的,一种解决方案是使用 ModSecurity + ClamAV。多数页面将 ClamAV 视为进程而非守护进程调用,在此情况下,分析单个文件可能需要超过 50 秒。参见此资源:https://kifarunix.com/intercept-malicious-file-upload-with-modsecurity-and-clamav/

通过 WAF + YARA 进行恶意软件检测?

:-( 在 Black Hat Asia 2019 有少许线索,请继续阅读并查看下方我们快速搭建的实验室环境。

WAFARAY 的工作原理是什么?

简单来说,它是一个快速部署方案:(1) 通过 ModSecurity (WAF) 使用自定义规则,加载预编译且立即可用的 YARA 规则;(2) 该自定义规则将检测可能包含恶意代码的文件;(3) 通常是通过 Web 功能(文件上传),若文件可疑,则被拒绝,并返回 ModSecurity 的 403 禁止访问状态码。

wafaray

✔️ YaraCompile.py 编译所有 YARA 规则。(Python3 代码)
✔️ test.conf 是一个包含 ModSecurity 规则的虚拟主机配置。(ModSecurity 代码)
✔️ ModSecurity 规则调用 modsec_yara.py 来检查尝试上传的文件。(Python3 代码)
✔️ YARA 返回两个结果:1(200 OK)或 0(403 禁止)

主要路径:

  • YARA 编译规则:/YaraRules/Compiled
  • YARA 默认规则:/YaraRules/rules
  • YARA 脚本:/YaraRules/YaraScripts
  • Apache 虚拟主机:/etc/apache2/sites-enabled
  • 临时文件:/temporal

适用对象

  • 蓝队人员:规则强制执行、最佳告警、对通过 Web 功能上传的文件进行恶意软件检测。
  • 红队/渗透测试人员:灰盒范围,上传恶意文件尝试绕过、规则强制执行。
  • 安全管理人员:持续告警、威胁追踪。
  • 安全运营中心(SOC):更好的恶意文件监控。
  • 计算机应急响应团队(CERT):恶意软件分析,确定新的 IOC。

搭建检测实验室

该概念验证基于 Debian 11.3.0 (稳定版) x64 系统、OWASP CRS v3.3.2 和 YARA 4.0.5。自动安装脚本位于 wafaray_install.sh,可选的手动安装指南位于 manual_instructions.txt。此外,还创建了一个 PHP 页面作为“模拟”,用于观察 WAF + YARA 对恶意文件的交互和检测。

安装 (推荐) 使用 Shell 脚本

✔️ 步骤 1:下载 Debian 11.3.0:https://cdimage.debian.org/debian-cd/current/amd64/iso-dvd/debian-11.3.0-amd64-DVD-1.iso
✔️ 步骤 2:使用 VMware 或 VirtualBox 部署
✔️ 步骤 3:安装完成后,请按照以下说明操作:

alex@waf-labs:~$ su root 
root@waf-labs:/home/alex#

# 记得将 YOUR_USER 替换为你的用户名(例如 waf)
root@waf-labs:/home/alex# sed -i 's/^\(# User privi.*\)/\1\nalex ALL=(ALL) NOPASSWD:ALL/g' /etc/sudoers
root@waf-labs:/home/alex# exit
alex@waf-labs:~$ sudo sed -i 's/^\(deb cdrom.*\)/#\1/g' /etc/apt/sources.list
alex@waf-labs:~$ sudo sed -i 's/^# \(deb\-src http.*\)/ \1/g' /etc/apt/sources.list
alex@waf-labs:~$ sudo sed -i 's/^# \(deb http.*\)/ \1/g' /etc/apt/sources.list
alex@waf-labs:~$ echo -ne "\n\ndeb http://deb.debian.org/debian/ bullseye main\ndeb-src http://deb.debian.org/debian/ bullseye main\n" | sudo tee -a  /etc/apt/sources.list
alex@waf-labs:~$ sudo apt-get update
alex@waf-labs:~$ sudo apt-get install sudo -y
alex@waf-labs:~$ sudo apt-get install git vim dos2unix net-tools -y
alex@waf-labs:~$ git clone https://github.com/alt3kx/wafaray
alex@waf-labs:~$ cd wafaray
alex@waf-labs:~$ dos2unix wafaray_install.sh
alex@waf-labs:~$ chmod +x wafaray_install.sh
alex@waf-labs:~$ sudo ./wafaray_install.sh >> log_install.log

# 测试你的实验室环境
alex@waf-labs:~$ firefox localhost:8080/upload.php

wafaray

YARA 规则

下载并编译 YARA 规则后。

这类似于部署 ModSecurity,你需要自定义要应用的规则类型。 以下日志是 Web 应用防火墙 + YARA 检测到恶意文件的示例,本例中检测到了 eicar。

Message: Access denied with code 403 (phase 2). File "/temporal/20220812-184146-YvbXKilOKdNkDfySME10ywAAAAA-file-Wx1hQA" rejected by 
the approver script "/YaraRules/YaraScripts/modsec_yara.py": 0 SUSPECTED [YaraSignature: eicar] 
[file "/etc/apache2/sites-enabled/test.conf"] [line "56"] [id "500002"] 
[msg "Suspected File Upload:eicar.com.txt -> /temporal/20220812-184146-YvbXKilOKdNkDfySME10ywAAAAA-file-Wx1hQA - URI: /upload.php"]

测试 WAFARAY……瞧……

停止 / 启动 ModSecurity

$ sudo service apache2 stop
$ sudo service apache2 start

Apache 日志

$ cd /var/log
$ sudo tail -f apache2/test_access.log apache2/test_audit.log apache2/test_error.log

演示

⚠️ 请注意测试安全。以下演示在隔离的虚拟机上运行。 ⚠️

演示 1 - EICAR

上传一个恶意文件,如果文件匹配至少一条 YARA 规则,ModSecurity 规则与 YARA 将拒绝将文件上传到后端。(恶意软件示例:https://secure.eicar.org/eicar.com.txt)请勿执行该文件。

wafaray

演示 2 - WebShell.php

本演示中,我们禁用了规则 933110 - PHP Inject Attack 以验证 YARA 规则。 上传一个恶意文件,如果文件匹配至少一条 YARA 规则,ModSecurity 规则与 YARA 将拒绝将文件上传到后端。(WebShell PHP 示例:https://github.com/drag0s/php-webshell)请勿执行该文件。

wafaray

演示 3 - Malware Bazaar (RecordBreaker) 发布:2022-08-13

上传一个恶意文件,如果文件匹配至少一条 YARA 规则,ModSecurity 规则与 YARA 将拒绝将文件上传到后端。(Malware Bazaar (RecordBreaker) 示例:https://bazaar.abuse.ch/sample/94ffc1624939c5eaa4ed32d19f82c369333b45afbbd9d053fa82fe8f05d91ac2/)请勿执行该文件。

wafaray

YARA 规则来源

如果你想下载更多 YARA 规则,可以参考以下仓库:

  • Yara Signatures Compiled - https://github.com/Yara-Rules/rules
  • YARAHub - https://yaraify.abuse.ch/
  • Awesome Yara Rules - https://github.com/InQuest/awesome-yara#rules
  • Advanced Threat Research Yara Rules - https://github.com/advanced-threat-research/Yara-Rules
  • Icewater - https://github.com/SupportIntelligence/Icewater
  • Open Source Yara Rules - https://github.com/mikesxrs/Open-Source-YARA-rules
  • Bartblaza Yara Rules - https://github.com/bartblaze/Yara-rules
  • Cobalstrike - https://github.com/Te-k/cobaltstrike
  • Yara Forensic - https://github.com/Xumeiquer/yara-forensics
  • Loki - https://github.com/Neo23x0/Loki
  • YarGen - https://github.com/Neo23x0/yarGen
  • YarAnalyzer - https://github.com/Neo23x0/yarAnalyzer/
  • Valhalla - https://www.nextron-systems.com/valhalla/, https://valhalla.nextron-systems.com/
  • AlienVault - https://otx.alienvault.com/(需创建账号)
下载工具