YoussefMami/CVE2026_21509

GitHub: YoussefMami/CVE2026_21509

一个 Python 编写的 DOCX 安全测试文档生成器,用于验证 EDR/AV 对 OLE 对象嵌入的检测能力。

Stars: 0 | Forks: 0

# CVE2026_21509 📄 DOCX 安全测试生成器 https://img.shields.io/badge/python-3.7+-blue.svg https://img.shields.io/badge/license-MIT-green.svg https://img.shields.io/badge/purpose-EDR%2520Testing-orange.svg ⚠️ 警告:仅供专业使用的安全测试工具。请仅在受控和隔离的环境中使用。 📋 目录 描述 功能 技术架构 前置条件 安装 用法 生成文档结构 用例 局限性 安全注意事项 故障排除 许可证 描述 DOCX 安全测试生成器是一个 Python 工具,旨在生成包含安全测试工件 (artifacts) 的 Microsoft Word 文档 (DOCX)。这些工件允许安全专业人员评估安全解决方案(EDR, AV)针对 OLE 对象嵌入和 VBA 宏技术的检测能力。 该工具适用于需要在受控环境中验证检测规则的安全专业人员、SOC 团队和研究人员。 🎯 教育目标 理解 OOXML 文档结构 分析 OLE 对象嵌入机制 测试 EDR/AV 检测规则 模拟入侵指标 (IoCs) 而无需执行恶意代码 功能 功能 描述 📄 DOCX 生成 创建符合 OOXML 标准的有效 Word 文档 🔌 OLE 对象 嵌入具有可配置 CLSID 的虚拟 OLE 对象 🎨 VML 回退 为 OLE 对象添加视觉回退渲染 📝 嵌入说明 在文档中包含测试说明 ⚙️ 可配置 IP/端口 可自定义 reverse shell 测试参数 ✅ 自动验证 生成后验证包完整性 技术架构 生成的 OOXML 结构 text document.docx (ZIP 归档) ├── [Content_Types].xml # MIME 类型定义 ├── _rels/ │ └── .rels # 根关系 └── word/ ├── document.xml # 主文档内容 ├── _rels/ │ └── document.xml.rels # 文档关系 ├── embeddings/ │ └── oleDummy.bin # 虚拟 OLE 对象 ├── media/ │ └── icon.png # 回退图标 └── TEST_INSTRUCTIONS.txt # 嵌入的测试说明 技术组件 1. OLE 对象结构 python 生成的 OLE 二进制结构: - Header: 0x01050000 (OLE 对象标记) - Version: 0x02000000 - Flags: 0x0C000000 - CLSID: EAB22AC3-30C1-11CF-A7EB-0000C05BAE0B (Package Object) - Padding: 1024 bytes total 2. XML 关系 关系遵循 OOXML 标准格式: rIdOle1 → 链接到嵌入的 OLE 对象 rIdImage1 → 链接到回退图标图像 3. MIME 类型定义 扩展名 Content-Type .rels application/vnd.openxmlformats-package.relationships+xml .xml application/xml .png image/png .bin application/vnd.ms-office.oleObject 代码架构 text docx_generator.py ├── 配置 (LHOST, LPORT, TMP) ├── 结构函数 │ ├── prepare_structure() # 创建目录布局 │ └── generate_ole_dummy() # 创建虚拟 OLE 二进制 ├── XML 生成函数 │ ├── write_root_rels() # 包关系 │ ├── write_document_xml() # 主文档内容 │ ├── write_document_rels() # 文档关系 │ └── write_content_types() # MIME 类型定义 ├── 资产函数 │ ├── generate_icon() # 创建回退图标 │ └── create_test_instructions() # 嵌入测试说明 └── 打包函数 ├── build_docx() # ZIP 压缩 └── check_package() # 完整性验证 前置条件 操作系统 Windows 10/11 Linux (Ubuntu 20.04+) macOS 11+ Python 依赖 bash pip install -r requirements.txt requirements.txt: text lxml>=4.9.0 Pillow>=9.0.0 推荐的测试环境 text ┌─────────────────────────────────────────────────────────────┐ │ 安全测试环境 │ ├─────────────────────────────────────────────────────────────┤ │ │ │ 🔵 攻击机 🔴 目标机 │ │ (Kali Linux) (Windows 10/11 VM) │ │ │ │ │ │ ├── Netcat 监听器 ├── Microsoft Word │ │ └── Python 3.7+ └── 启用调试模式 │ │ │ │ └────── 隔离网络 (Host-Only) ──────┘ │ └─────────────────────────────────────────────────────────────┘ 安装 1. 克隆仓库 bash git clone https://github.com/yourusername/docx-security-test-generator.git cd docx-security-test-generator 2. 安装依赖 bash pip install -r requirements.txt 3. 验证安装 bash python docx_generator.py --help 用法 基本配置 根据您的测试环境修改脚本中的配置变量: python # 配置 LHOST = "192.168.1.100" # Your listening machine IP LPORT = "4444" # Netcat listening port 命令行执行 bash # 使用自定义文件名生成文档 python docx_generator.py my_test_document.docx # 使用默认文件名生成文档 # python docx_generator.py 示例会话 bash $ python docx_generator.py security_test.docx # DOCX 安全测试生成器 Test Configuration: LHOST: 192.168.1.100 LPORT: 4444 Output: security_test.docx ⚠️ SECURITY WARNING ⚠️ This document contains TEST INDICATORS No malicious code is included Use ONLY in isolated environments Continue? (yes/no): yes [+] Folder structure created [+] Test instructions added [+] Dummy OLE written: _pkg_docx/word/embeddings/oleDummy.bin [+] Icon created: _pkg_docx/word/media/icon.png [+] _rels/.rels written. [+] word/document.xml written. [+] word/_rels/document.xml.rels written. [+] [Content_Types].xml written. [+] DOCX generated: security_test.docx [+] DOCX size: 12345 bytes. ============================================================ [✓] Test document successfully created! File: security_test.docx 📋 TEST INSTRUCTIONS: 1. On attacker machine: nc -lnvp 4444 2. Open document in isolated Windows VM 3. Check embedded instructions in document 4. For actual testing, manually add VBA code # ⚠️ 注意:本文档不包含活动宏 It is a test artifact for validating EDR detection 完整测试流程 步骤 1:准备环境 bash # 测试前拍摄 VM 快照 # 确保网络隔离 (Host-Only 模式) # 验证 VM 之间的连通性 ping 192.168.1.100 步骤 2:生成测试文档 bash python docx_generator.py edr_test.docx 步骤 3:启动 Netcat 监听器(攻击机) bash nc -lnvp 4444 步骤 4:分析文档(目标机) bash # 解压并检查结构 unzip -d extracted_doc edr_test.docx tree extracted_doc/ # 分析 OLE 对象 olevba edr_test.docx 生成文档结构 OLE 对象详情 生成的 OLE 对象使用 CLSID EAB22AC3-30C1-11CF-A7EB-0000C05BAE0B,对应于 Package Object —— 一种良性的、不可执行的 OLE 类型。 python # OLE 二进制结构(hexdump 表示) 00000000 01 05 00 00 02 00 00 00 0C 00 00 00 C3 22 AC EA |............."..| 00000010 C1 30 CF 11 A7 EB 00 00 C0 5B AE 0B 00 00 00 00 |.0.......[......| ... VML 回退渲染 Vector Markup Language (VML) 用于跨版本兼容性: xml 用例 1. EDR 检测验证 测试安全解决方案是否检测: 具有可疑 CLSID 的嵌入 OLE 对象 DOCX 文件中的 OLE 对象结构 入侵指标 (IoC) 模式 2. 安全研究 分析 OOXML 结构解析 研究 OLE 对象嵌入技术 研究检测绕过方法 3. SOC 培训 为分析师提供真实的测试工件 培训 IoC 识别 练习事件响应流程 4. 蓝队演练 验证监控规则 测试告警机制 评估检测覆盖率 局限性 技术限制 局限性 描述 无活动宏 文档以纯文本形式包含宏代码,而非活动的 VBA 项目 仅限良性 CLSID 使用不可执行的 Package Object CLSID 手动宏激活 VBA 代码需要手动插入才能进行实际测试 无自动执行 无自动触发器或嵌入漏洞利用 环境限制 需要隔离的测试环境 不适用于生产系统 需要手动验证实际的 reverse shell 测试 安全注意事项 ⚠️ 重要安全提示 仅在隔离环境中使用 切勿在生产系统上打开生成的文档 使用带有快照的专用 VM 确保网络隔离(Host-Only 模式) 无恶意代码 此工具仅生成测试工件 不包含活动的漏洞利用或 payload 所有代码都是透明且可审计的 法律合规 测试前确保已获得授权 遵守组织安全策略 记录所有测试活动 负责任披露 通过正规渠道报告任何真实漏洞 请勿用于未经授权的测试 故障排除 常见问题及解决方案 问题 解决方案 ImportError: No module named lxml pip install lxml ImportError: No module named PIL pip install Pillow Windows 上权限被拒绝 以管理员身份运行或使用不同的输出目录 文档在 Word 中无法打开 验证文件扩展名是否为 .docx,检查 ZIP 完整性 OLE 对象不可见 Word 可能出于安全原因阻止 OLE 对象;启用编辑 调试模式 python # 通过修改 print 语句启用详细输出 # 添加日志记录以进行详细调试: import logging logging.basicConfig(level=logging.DEBUG) 文档验证 bash # 验证 ZIP 完整性 unzip -t generated_document.docx # 检查 OOXML 结构有效性 # 使用 Microsoft Office Open XML 验证器 许可证 本项目基于 MIT 许可证授权 - 详情请参阅 LICENSE 文件。 text MIT License Copyright (c) 2024 Security Research Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 贡献 欢迎贡献!请确保: 代码遵循 Python PEP 8 标准 文档已相应更新 测试在隔离环境中进行 保持安全注意事项 致谢 Microsoft 的 OOXML 规范 Python lxml 和 Pillow 库 安全社区的测试方法论 联系方式 如有问题、疑问或安全研究咨询: 在 GitHub 上开启 issue 联系:info@creasitetn.ovh 最后更新:2025 年 3 月 版本:1.0.0
标签:CVE-2026-21509, DNS 反向解析, DNS枚举, DOCX生成器, EDR测试, Maven, OLE对象嵌入, OOXML结构, PoC生成, Python, SOC分析, URL发现, VBA宏, 云资产清单, 威胁情报, 安全检测, 开发者工具, 攻击模拟, 无后门, 杀毒软件测试, 漏洞验证, 网络安全工具, 逆向工程, 驱动签名利用