bolubey/CVE-2026-50751

GitHub: bolubey/CVE-2026-50751

针对 Check Point IKEv1 VPN 证书身份验证绕过漏洞(CVE-2026-50751)的多目标批量检测扫描器,用于判断目标网关是否接受伪造的自签名证书。

Stars: 0 | Forks: 0

# CVE-2026-50751 扫描器 用于 [CVE-2026-50751](https://www.cvedetails.com/cve/CVE-2026-50751) 的多目标检测扫描器 —— Check Point IKEv1 Remote Access VPN 证书身份验证绕过。 ## 漏洞概述 **CVE-2026-50751** 是已弃用的 IKEv1 密钥交换中 VPN Remote Access 和 Mobile Access 的身份验证绕过漏洞。 | 字段 | 值 | |---|---| | **CVSS Score** | 9.3 (严重) | | **CVSS Vector** | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H | | **是否已被野外利用** | 是 | | **Check Point SK** | [sk185033](https://support.checkpoint.com/results/sk/sk185033) | ### 受影响的产品 - Mobile Access / SSL VPN - Remote Access VPN - Spark Firewall ### 受影响的版本 | 版本 | 状态 | |---|---| | R80.20.X | 停止支持 | | R80.40 | 停止支持 | | R81 | 停止支持 | | R81.10 | 停止支持 | | R81.10.X | | | R81.20 | | | R82 | | | R82.00.X | | | R82.10 | | ### 技术细节 CVE-2026-50751 利用了 IKEv1 证书验证中的逻辑流缺陷。存在漏洞的 `iked` 进程会从 `VPNExtFeatures` Vendor ID(位 0x4)读取受攻击者控制的标志,导致 `verify_peer_auth` 跳过 `verifyMessagePhase1` 检查。这意味着: - 证书签名(所有权证明)**未被验证**。 - 证书的信任链**未被验证**。 - 仅根据已配置的 Remote Access 用户检查 subject DN(用户名)。 攻击者可以使用目标用户名伪造自签名证书,并在没有私钥、密码或有效证书的情况下建立 VPN 会话。 ## 扫描器 此工具是一个**安全的多目标扫描器**,可并发对多个主机执行原始检测逻辑。除了原始检测行为外,它不添加任何利用操作。 ### 功能 - 发送带有伪造自签名证书的 IKEv1 Main Mode 消息。 - 报告目标是否接受伪造的证书流。 - 支持 UDP (500/4500) 和 TCP/TCPT (443 Visitor Mode)。 - 从网关 443 端口上的公共 TLS 证书自动提取 ICA 组织。 - 输出文本、JSON 和日志文件格式的结果。 ### 不执行的操作 - 无 Phase 2 VPN 协商。 - 无 XAUTH 密码尝试。 - 无凭据猜测或暴力破解。 - 无隐蔽、规避或速率限制绕过。 - 无数据包泛洪。 - 无身份验证后操作或隧道传输。 ### 安全控制 | 控制 | 默认值 | 说明 | |---|---|---| | 并发数 | 1 | 未使用 `--force-high-concurrency` 时最大为 5 | | 重试次数 | 0 | 最大为 2 | | 延迟 | 2.0s | 目标提交之间的间隔 | | 超时 | 8.0s | 每个目标 | ## FOFA Dork 用于在互联网上发现 Check Point SSL Network Extender 网关: ``` app="Check_Point-SSL-Network-Extender" ``` ## 前置条件 - Python 3.10+ - `cryptography` 库 ``` pip install cryptography ``` ## 用法 ### 基本用法 ``` # 单个目标(向后兼容) python exploit_poc.py -rh vpn.company.com -u oracle --json-out results.json --log-file scan.log # 多个目标 python exploit_poc.py --target vpn1.company.com --target 10.1.2.3 -u oracle # 从文件读取(每行一个目标) python exploit_poc.py --targets-file targets.txt -u oracle ``` ### 空运行 (Dry Run) (不发送数据包) ``` python exploit_poc.py --targets-file targets.txt -u oracle --dry-run ``` ### 输出选项 ``` # JSON 结果 + 文本日志 python exploit_poc.py --targets-file targets.txt -u oracle \ --json-out results.json --log-file scan.log ``` ### Visitor Mode (TCP/443 TCPT) ``` python exploit_poc.py --target vpn.company.com -u oracle --tcpt # 或 python exploit_poc.py --target vpn.company.com -u oracle -rp 443 ``` ### 高并发 (需要显式标志) ``` python exploit_poc.py --targets-file targets.txt -u oracle \ --concurrency 10 --force-high-concurrency --delay 1 ``` ### 自定义组织 (跳过 TLS 自动提取) ``` python exploit_poc.py --target vpn.company.com -u oracle --org "MyCompany" ``` ## 目标输入 目标可以通过以下方式指定: | 选项 | 说明 | |---|---| | `--target HOST` | 单个目标 (可重复) | | `-rh HOST` | 单个目标 (向后兼容的别名) | | `--targets-file FILE` | 每行一个目标的文件 | **目标文件格式:** - 每行一个目标。 - 以 `#` 开头的行是注释。 - 空行将被忽略。 ## 结果状态 | 扫描器状态 | 含义 | |---|---| | `possibly_vulnerable` | 网关接受了伪造的证书 (可能存在 CVE-2026-50751) | | `not_vulnerable_or_patched` | 网关拒绝了伪造的证书 (已修补或用户名未配置) | | `not_ike_or_no_cert_realm` | 无 IKE 服务或网关未处于证书身份验证模式 | | `not_reachable` | DNS 解析失败或连接被拒绝 | | `inconclusive` | 无决定性响应 (受限速或丢弃影响) | | `error` | 发生意外的异常 | ### 退出代码 | 代码 | 含义 | |---|---| | 0 | 扫描完成,未发现漏洞 | | 1 | 扫描完成,存在一个或多个 `possibly_vulnerable` 结果 | | 2 | 参数/安全错误 | | 3 | 致命错误 | ## 命令行选项 ### 目标选项 | 选项 | 类型 | 默认值 | 说明 | |---|---|---|---| | `-rh`, `--rhost` | string | None | 单个远程主机 (向后兼容) | | `--target` | string | None | 目标主机 (可重复) | | `--targets-file` | string | None | 每行一个目标的文件 | ### 连接选项 | 选项 | 类型 | 默认值 | 说明 | |---|---|---|---| | `-rp`, `--rport` | int | 500 | 远程端口 (用于 Visitor Mode 的 UDP 500/4500,TCP 443) | | `-t`, `--timeout` | float | 8.0 | 超时时间 (秒) | | `--tcpt` | flag | False | 使用 Check Point Visitor-Mode TCPT 隧道 | ### 身份验证选项 | 选项 | 类型 | 默认值 | 说明 | |---|---|---|---| | `-u`, `--username` | string | **必填** | 要模拟的 Remote Access 用户名 | | `--org` | string | 自动提取 | ICA 组织 (O=) DN 后缀 | | `--ou` | string | users | 用户 DN 的 OU= 组件 | | `-r`, `--retries` | int | 0 | msg1 重试次数 (最大: 2) | ### 扫描器安全选项 | 选项 | 类型 | 默认值 | 说明 | |---|---|---|---| | `--dry-run` | flag | False | 打印目标并退出而不进行扫描 | | `--concurrency` | int | 1 | 最大并发目标数 (未使用 `--force-high-concurrency` 时最大为 5) | | `--force-high-concurrency` | flag | False | 允许 6-20 的并发数 | | `--delay` | float | 2.0 | 目标提交之间的间隔秒数 | ### 输出选项 | 选项 | 类型 | 默认值 | 说明 | |---|---|---|---| | `--json-out` | string | None | 将 JSON 结果写入文件 | | `--log-file` | string | None | 将文本日志行追加到文件 | | `-v`, `--verbose` | flag | False | 详细输出 | ## 输出示例 ``` [*] CVE-2026-50751 Check Point IKEv1 RA VPN Multi-Target Scanner [*] Detection only -- no exploitation beyond original detection logic. [!] Only scan assets you own or are authorized to test. [*] Targets: 3 | Port: 500 | Transport: udp [*] Concurrency: 1 | Delay: 2.0s | Timeout: 8.0s | Retries: 0 [possibly_vulnerable] vpn1.company.com udp/500 3.42s [not_vulnerable_or_patched] vpn2.company.com udp/500 2.18s [not_reachable] 10.1.2.3 udp/500 1.05s Connection failed: [Errno 111] Connection refused [*] [*] Summary: [*] possibly_vulnerable: 1 [*] not_vulnerable_or_patched: 1 [*] not_ike_or_no_cert_realm: 0 [*] not_reachable: 1 [*] inconclusive: 0 [*] error: 0 ``` ## JSON 输出格式 ``` [ { "target": "vpn.company.com", "resolved_ip": "203.0.113.10", "port": 500, "transport": "udp", "tcpt": false, "username": "oracle", "status": "possibly_vulnerable", "runner_status": "BYPASSED", "started_at": "2026-06-16T12:34:56Z", "finished_at": "2026-06-16T12:35:01Z", "duration_seconds": 5.1, "error": null } ] ``` ## 日志文件格式 ``` 2026-06-16T12:34:56Z target=vpn.company.com ip=203.0.113.10 transport=udp port=500 status=possibly_vulnerable duration=5.1 error= ``` ## 安全注意事项 ### 授权 - 仅扫描您拥有或获得明确书面授权进行测试的资产。 - Check Point 观察到 CVE-2026-50751 在野外被积极利用。 - 存在漏洞的系统可能正在被威胁行为者主动攻击。 ## 缓解措施 应用 [sk185033](https://support.checkpoint.com/results/sk/sk185033) 中描述的 Check Point 热修复。 此外: - 如果不需要,请禁用 IKEv1;改用 IKEv2。 - 通过防火墙规则将 IKE 访问限制在受信任的管理网络内。 - 监控主动利用的指标。 ## 许可证 此工具仅用于防御性安全测试和授权漏洞检测。 ## 致谢 基于 [watchTowrlabs](https://github.com/watchtowrlabs/watchTowr-vs-Check-Point-CVE-2026-50751) 的原始检测脚本。
标签:Check Point, CISA项目, IKEv1, StruQ, VPN安全, 加密, 漏洞扫描器, 身份验证绕过, 逆向工具