zsxen/CVE-2025-1974

GitHub: zsxen/CVE-2025-1974

面向Windows 11的CVE-2025-1974漏洞攻击防御教学实验室,通过模拟攻击流程和真实集群检测帮助安全研究和教育训练。

Stars: 0 | Forks: 0

# cve-2025-1974-win11-攻击防御实验室 Windows 11 优先的教育仓库,用于在安全、非武器化的 ATTACK + DEFENSE 实验室中研究 CVE-2025-1974。该项目专为大学课程、团队演示和报告级截图而设计。强调清洁室实现、仅本地验证,以及永远不会成为真实漏洞的红队风格攻击模拟。 本实验室遵循官方基线:CVE-2025-1974 影响 `ingress-nginx`,受影响版本为 `< 1.11.0`、`1.11.0` 至 `1.11.4` 和 `1.12.0`;修复版本为 `1.11.5`、`1.12.1` 及更高版本。它还反映了官方临时缓解措施:在完成升级之前禁用 Validating Admission Controller。 ## 为什么本项目使用攻击模拟 本仓库有意不实现、移植或运行漏洞利用代码。相反,它提供了一个安全的攻击流程模拟器,展示防御者会推理的各个阶段: - 环境指纹识别 - 攻击路径推理 - 无害的请求流模拟 - 缓解措施比较 - 证据打包 攻击路径仅通过消毒的 fixture、本地状态和模拟器阶段标记来表示。不包含恶意的 AdmissionReview 有效载荷、代码执行有效载荷、shell、配置注入或漏洞利用传递机制。 ## 架构 ``` flowchart LR A["PowerShell Wrappers
Windows 11-first UX"] --> B["Python CLI
app.main"] B --> C["Preflight Checks
Windows, Docker, kubectl, kind, Python 3.11"] B --> D["Cluster Assessment
kind + kubectl on localhost"] B --> E["Attack Simulator
sanitized fixtures only"] B --> F["Mitigation Checks
version + admission state"] B --> G["Detections
lab-specific simulated indicators"] E --> H["reports/attack_simulation.log"] F --> I["reports/defense_scan.json"] G --> J["reports/timeline.csv + timeline.json"] H --> K["Markdown Report Writer"] I --> K J --> K K --> L["reports/latest-report.md"] ``` ## 项目概述 - `Track A: 攻击模拟` 运行一个截图友好的模拟器,其行为类似攻击者工作流程,但不执行漏洞利用。 - `Track B: 防御验证` 对可丢弃的实验室集群执行真实的本地检查,并评估版本和缓解态势。 - `Windows 11 优先` 每个主要工作流程都有 PowerShell 包装器和 Python 3.11 CLI 等效版本。 - `报告生成` 生成 Markdown、JSON、CSV 和控制台记录,适用于课堂提交和演示。 ## Windows 11 设置 ### 假设条件 - Windows 11 主机 - PowerShell 7+ - Python 3.11 - Docker Desktop - `kubectl` - `kind` ### 推荐设置流程 ``` pwsh ./scripts/setup-win11.ps1 pwsh ./scripts/start-lab.ps1 pwsh ./scripts/run-defend-scan.ps1 pwsh ./scripts/run-attack-sim.ps1 pwsh ./scripts/generate-report.ps1 ``` ## 快速开始 ### Python CLI ``` python -m app.main preflight python -m app.main defend-scan python -m app.main attack-sim python -m app.main report python -m app.main cleanup ``` ### PowerShell 包装器 ``` pwsh ./scripts/setup-win11.ps1 pwsh ./scripts/start-lab.ps1 pwsh ./scripts/run-attack-sim.ps1 pwsh ./scripts/run-defend-scan.ps1 pwsh ./scripts/generate-report.ps1 pwsh ./scripts/cleanup.ps1 ``` ## 示例控制台输出 ``` ============================================================ CVE-2025-1974 Windows 11 Attack + Defense Lab ============================================================ [PRECHECK] Windows 11 assumptions .............. PASS [PRECHECK] Docker Desktop ...................... PASS [PRECHECK] kubectl ............................. PASS [PRECHECK] kind ................................ PASS [PRECHECK] Python 3.11 ......................... PASS [SCAN] Cluster name: cve-2025-1974-lab [SCAN] ingress-nginx detected .................. YES [SCAN] Controller version ...................... 1.11.4 [SCAN] Validating Admission Controller ......... ENABLED [SCAN] Version assessment ...................... AFFECTED [SCAN] Risk summary ............................ Upgrade to 1.11.5+ or 1.12.1+ and disable admission until upgraded. [SIM] ATTACK_PATH_IDENTIFIED [SIM] VALIDATION_PATH_REACHED [SIM] DEFENSE_MISSING [SIM] SIMULATED_RISK_CONFIRMED [REPORT] Markdown report written to reports/latest-report.md ``` ## 攻击流程演示 攻击模拟流程有意保持非武器化: 1. 实验室对本地可丢弃集群进行指纹识别,并检查是否存在 `ingress-nginx`。 2. 模拟器解释风险路径在概念上涉及 Validating Admission Controller。 3. 消毒的 fixture 仅重放到本地模拟器,该模拟器发出阶段标记,如 `ATTACK_PATH_IDENTIFIED` 和 `SIMULATED_RISK_CONFIRMED`。 4. 当实验室状态中激活了缓解措施时,模拟器会发出 `MITIGATION_PRESENT`、`ATTACK_PATH_BLOCKED` 和 `UPGRADE_REQUIRED`。 5. 运行会将日志和摘要工件保存到 `reports/` 目录下。 ## 防御流程 防御验证流程允许执行真实的本地检查: 1. 验证 Windows 11 前置条件。 2. 创建或检查名为 `cve-2025-1974-lab` 的本地 `kind` 集群。 3. 检测是否存在 `ingress-nginx`,并尝试从部署镜像推断版本。 4. 根据官方指南评估版本是否受影响或已修复。 5. 确定 Validating Admission Controller 是否已启用。 6. 生成简洁的风险摘要和模拟器活动的实验室特定分析。 ## 清理 ``` pwsh ./scripts/cleanup.ps1 ``` 这将删除可丢弃的 `kind` 集群(如果存在)并清除生成的报告工件,同时保留仓库结构。 ## 局限性 - 攻击轨道是模拟器,不是真实的漏洞利用。 - 该项目不测试公共、共享或非本地系统。 - 真实集群评估受限于 `kubectl` 和本地集群状态提供的可见性。 - 如果镜像标签或 admission 配置被隐藏或自定义,调查结果可能不确定。 - 实验室检测是综合性的,不能被视为权威的真实世界 IOC。 - 官方 Kubernetes 问题指出没有已知的权威入侵指标。 ## 参考资料 - [官方 Kubernetes 公告](https://kubernetes.io/blog/2025/03/24/ingress-nginx-cve-2025-1974/) - [官方 Kubernetes 问题](https://github.com/kubernetes/kubernetes/issues/131009) - [原始公开 PoC 参考](https://github.com/zulloper/CVE-2025-1974) ## 致谢 本项目在概念上参考了 GitHub 用户 `@zulloper` 的公开仓库 `zulloper/CVE-2025-1974`,仅用于历史/上下文研究。本仓库未复制任何攻击性代码。 感谢 Nir Ohfeld、Ronen Shustin、Sagi Tzadik 和 Hillai Ben-Sasson(来自 Wiz)负责任地披露了这些漏洞,如官方 Kubernetes 材料中所承认的。 本仓库是 Windows 11 的独立清洁室教育实验室,与 `@zulloper`、Wiz、Kubernetes 或 ingress-nginx 维护者无关,也不受其认可。
标签:admission controller, AI合规, CVE, Docker, ingress-nginx, IPv6, kind, kubectl, Pandas, PE 加载器, PowerShell, Python, Web安全, Web截图, Windows 11, 子域名突变, 安全培训, 安全防御评估, 容器安全, 库, 应急响应, 插件系统, 攻击模拟, 数字签名, 数据展示, 无后门, 无线安全, 漏洞分析, 漏洞复现, 红队, 网络安全, 蓝队分析, 请求拦截, 路径探测, 逆向工具, 防御实验室, 隐私保护, 驱动签名利用