本仓库记录了针对 CVE-2026-42945(影响 NGINX ngx_http_rewrite_module)的防御实验室。
该项目的目标是从蓝队视角处理该 CVE,通过使用 Wazuh 安全配置评估(SCA,Security Configuration Assessment) 来集中评估 NGINX 的暴露情况。
实验室检查两种暴露条件:
最终成果是一个集中的 Wazuh SCA 策略,可通过 Wazuh 集中式代理配置部署到受监控的 NGINX 服务器上。
实验室采用分段网络架构构建。
互联网 / 广域网
|
|
pfSense 防火墙
|
|-----------------------------
| |
LAN DMZ
| |
Wazuh Manager Ubuntu NGINX 服务器
Wazuh Dashboard Wazuh Agent
NGINX
| 组件 | 角色 |
|---|---|
| pfSense | 防火墙及 LAN/DMZ 分段 |
| Ubuntu DMZ 服务器 | 受 Wazuh 监控的 NGINX 服务器 |
| NGINX | 接受 CVE 暴露评估的目标服务 |
| Wazuh Agent | 安装在 Ubuntu DMZ 服务器上 |
| Wazuh Manager | 运行于 Docker 中的中央监控服务器 |
| Wazuh Dashboard | 用于查看 SCA 结果 |
目标是构建一个安全且可重复的防御工作流:
Wazuh Manager
|
| 集中式 SCA 策略
v
DMZ NGINX 服务器上的 Wazuh Agent
|
| 检查软件包版本和 NGINX 配置
v
Wazuh Dashboard
|
| 显示通过 / 未通过检查
v
修复验证
这种方法可以在不运行漏洞利用代码的情况下评估 CVE 暴露情况。
自定义的 Wazuh SCA 策略执行两项检查。
策略检查已安装的 Ubuntu NGINX 软件包是否与实验室中观察到的未修补版本匹配。
初始的易受攻击软件包版本:
nginx 1.28.3-2ubuntu1
nginx-common 1.28.3-2ubuntu1
修复后的软件包版本:
nginx 1.28.3-2ubuntu1.1
nginx-common 1.28.3-2ubuntu1.1
策略文件:
sca-policy/nginx-cve-2026-42945.yml
策略还检查与 CVE-2026-42945 相关的高风险 rewrite 模式。
高风险测试配置存储在此处:
nginx-config/vulnerable-example.conf
修复后的配置存储在此处:
nginx-config/remediated-example.conf
实验室中测试的高风险条件包括:
rewrite 指令
未命名的捕获(如 $1)
包含 ? 的替换
后续指令(如 set)
wazuh-nginx-cve-2026-42945-sca-lab/
├── README.md
├── sca-policy/
│ └── nginx-cve-2026-42945.yml
├── wazuh-config/
│ └── agent.conf
├── nginx-config/
│ ├── vulnerable-example.conf
│ └── remediated-example.conf
├── commands/
│ ├── 01-agent-validation.md
│ ├── 02-nginx-version-check.md
│ ├── 03-sca-policy-deployment.md
│ └── 04-remediation.md
├── screenshots/
│ ├── 01-lab-architecture.png
│ ├── 02-agent-active.png
│ ├── 03-sca-policy-failed.png
│ ├── 04-nginx-package-before.png
│ ├── 05-risky-rewrite-config.png
│ ├── 06-sca-partial-remediation.png
│ ├── 07-nginx-package-after.png
│ └── 08-sca-policy-passed.png
└── docs/
└── lab-notes.md
实验室使用 pfSense 将环境划分为:
LAN:
- Wazuh Manager
- Wazuh Dashboard
DMZ:
- Ubuntu NGINX 服务器
- Wazuh Agent
Ubuntu NGINX 服务器放置在 DMZ 中。
Wazuh Manager 放置在 LAN 中。
仅允许从 DMZ 服务器到 Wazuh Manager 的必需 Wazuh 通信。
Ubuntu DMZ 服务器注册为 Wazuh agent。
从 Wazuh Manager 验证 agent 并确认为活跃状态。
验证命令记录在:
commands/01-agent-validation.md
预期状态:
Agent: ubuntu-dmz-nginx2
Status: Active
在 Ubuntu DMZ 服务器上检查已安装的 NGINX 软件包版本。
版本检查命令记录在:
commands/02-nginx-version-check.md
初始状态:
nginx 1.28.3-2ubuntu1
nginx-common 1.28.3-2ubuntu1
更新软件包索引后,修复候选项版本可用:
1.28.3-2ubuntu1.1
创建了一个测试 NGINX 配置来模拟高风险 rewrite 模式。
易受攻击的示例存储在:
nginx-config/vulnerable-example.conf
修复后的版本存储在:
nginx-config/remediated-example.conf
目的不是利用服务,而是验证 Wazuh SCA 是否能够识别高风险本地配置暴露。
在 Wazuh Manager 上创建了一个自定义 SCA 策略。
策略文件:
sca-policy/nginx-cve-2026-42945.yml
在实验室中,该策略通过 Wazuh Manager 共享目录部署:
/var/ossec/etc/shared/default/nginx-cve-2026-42945.yml
策略包含两项检查:
| 检查 ID | 目的 |
|---|---|
| 100449 | 检测易受攻击/未修补的 NGINX Ubuntu 软件包版本 |
| 100450 | 检测高风险 NGINX rewrite 配置模式 |
使用 Wazuh 集中式 agent 配置部署自定义 SCA 策略。
集中式配置文件存储在此仓库中:
wazuh-config/agent.conf
在实验室中,它部署在:
/var/ossec/etc/shared/default/agent.conf
Wazuh Manager 运行于 Docker 中:
single-node-wazuh.manager-1
部署命令记录在:
commands/03-sca-policy-deployment.md
重启 Wazuh agent 后,自定义 SCA 策略被 Ubuntu DMZ 服务器接收。
接收到的策略出现在:
/var/ossec/etc/shared/nginx-cve-2026-42945.yml
Wazuh agent 日志确认策略已加载并评估。
预期日志指示:
Loaded policy
Starting evaluation of policy
Evaluation finished for policy
当两种暴露条件都存在时,Wazuh Dashboard 显示:
Passed: 0
Failed: 2
Score: 0%
这意味着两项检查均失败:
| 检查 | 结果 |
|---|---|
| NGINX 软件包版本 | 失败 |
| 高风险 rewrite 配置 | 失败 |
截图:
screenshots/03-sca-policy-failed.png
高风险 NGINX rewrite 配置被替换为更安全的配置。
参考文件:
nginx-config/remediated-example.conf
配置修复并重新运行 Wazuh SCA 扫描后,预期结果为:
Passed: 1
Failed: 1
Score: 50%
此时:
| 检查 | 结果 |
|---|---|
| 高风险 rewrite 配置 | 通过 |
| NGINX 软件包版本 | 失败 |
截图:
screenshots/06-sca-partial-remediation.png
通过针对性软件包升级来升级 NGINX 软件包。
修复命令记录在:
commands/04-remediation.md
升级前:
Installed: 1.28.3-2ubuntu1
Candidate: 1.28.3-2ubuntu1.1
升级后:
nginx 1.28.3-2ubuntu1.1
nginx-common 1.28.3-2ubuntu1.1
截图:
screenshots/07-nginx-package-after.png
完成两个修复步骤后,Wazuh SCA 结果变为:
Passed: 2
Failed: 0
Score: 100%
这确认了:
截图:
screenshots/08-sca-policy-passed.png
| 阶段 |
|---|
建议的截图:
在实验室中,策略通过 Wazuh default 组部署。
在生产环境中,最好创建一个专用的 Wazuh agent 组,例如:
nginx-servers
只有运行 NGINX 的服务器才应分配到该组。
推荐的生产风格部署:
Wazuh Manager
|
| 集中式 SCA 策略
v
nginx-servers agent 组
|
| 仅应用于 NGINX 系统
v
Wazuh Dashboard
这避免了将 NGINX 特定的检查应用于无关系统。
本项目有意避免使用漏洞利用代码。
实验室的目的是展示防御性安全工程,而非漏洞利用。
评估基于:
软件包版本暴露
配置暴露
集中式 Wazuh SCA 验证
修复验证
本仓库仅用于教育和防御性安全目的。
不包含漏洞利用代码。
这些检查是针对受控实验室环境设计的,在生产环境中使用前应进行审查。
| 软件包检查 |
|---|
| 配置检查 |
|---|
| Wazuh 结果 |
|---|
| 初始状态 | 失败 | 失败 | 0% |
| 配置修复后 | 失败 | 通过 | 50% |
| 软件包升级后 | 通过 | 通过 | 100% |
| 文件 | 描述 |
|---|
01-lab-architecture.png | pfSense LAN/DMZ 架构 |
02-agent-active.png | Wazuh agent 活跃状态 |
03-sca-policy-failed.png | 初始失败的 SCA 结果 |
04-nginx-package-before.png | NGINX 易受攻击软件包版本 |
05-risky-rewrite-config.png | 高风险 rewrite 配置证据 |
06-sca-partial-remediation.png | 部分修复结果 |
07-nginx-package-after.png | NGINX 升级后的软件包版本 |
08-sca-policy-passed.png | 最终通过的 SCA 结果 |