cPanel em Produção: Mapeamento de URLs, Logs Críticos e Vetores de Upload
Ambiente: servidor Linux com cPanel/WHM, Apache, MariaDB, FTP (pure-ftpd) e Imunify360 ativo. Objetivo: mapear superfícies de acesso, entender composição de URLs internas e identificar vetores de upload para auditoria, hardening e resposta a incidentes.
Esse tipo de mapeamento é o que separa operação reativa de operação previsível. Sem visibilidade de rota e log, você só descobre o problema depois que o dano já foi feito.
---
1. Anatomia das URLs internas do cPanel
Toda interface autenticada do cPanel segue padrão estrutural bem definido. Se nos seus logs aparecer caminho fora desse padrão, trate como sinal de alerta.
https://domain.tld:2083/cpsessTOKEN/frontend/TEMA/APP/index.html
Componentes chave
- 2083: porta HTTPS padrão do cPanel.
- cpsessTOKEN: token único de sessão.
- frontend/jupiter/: tema padrão atual (em legados pode aparecer
paper_lantern).
- APP/: módulo funcional (por exemplo
filemanager,ssl,mysql).
Em campo, a leitura correta desse padrão facilita detectar:
- tentativa de fixação de sessão;
- scanner tentando endpoint inexistente;
- automação maliciosa navegando módulos críticos.
---
1.1 Mapa técnico de endpoints sensíveis
Core e arquivos
- Dashboard:
/cpsessXXXX/frontend/jupiter/index.html - Gerenciador:
/cpsessXXXX/frontend/jupiter/filemanager/index.html - Upload (AJAX):
/cpsessXXXX/frontend/jupiter/filemanager/upload-ajax.html
Nota de segurança: upload-ajax.html é endpoint-chave para escrita de arquivo via browser. Monitoramento contínuo aqui é obrigatório em ambiente com risco de insider threat ou conta comprometida.
E-mail e conectividade
- Webmail (Roundcube):
/cpsessXXXX/3rdparty/roundcube/ - Web Disk (DAV):
/cpsessXXXX/frontend/jupiter/webdisk/index.html - Contas FTP:
/cpsessXXXX/frontend/jupiter/ftpaccounts/index.html
---
2. Vetores de upload: superfície de ataque real
Na prática, upload acontece por múltiplos canais. Não existe "log único mágico". Se você olhar só uma fonte, vai operar com ponto cego.
2.1 File Manager (interface web)
- Log:
/usr/local/cpanel/logs/access_log - Filtro inicial:
grep 'filemanager/upload-ajax.html' /usr/local/cpanel/logs/access_log
2.2 FTP/SFTP
Não passa pela porta 2083 nem por endpoint web. O rastro está em log de transferência.
- Log:
/var/log/xferlog - Indicador crítico: comando
STOR(upload cliente -> servidor) - Comando:
grep "STOR" /var/log/xferlog
2.3 Webmail (anexos e drafts)
Muita gente esquece que Roundcube também grava arquivo em fluxo de anexos.
- Endpoint típico:
/cpsessXXXX/3rdparty/roundcube/?_task=mail&_action=upload
2.4 Aplicações (WordPress/CMS)
Aqui mora boa parte do risco: upload feito no app, sem passar por interface cPanel.
- Vetor comum:
POST /wp-admin/admin-ajax.php - Logs úteis:
/usr/local/apache/logs/access_log,
/usr/local/apache/logs/error_log, /var/log/imunify360/
---
3. Estrutura de log e triagem estratégica
O access_log do cPanel é fonte de verdade para auditoria da interface administrativa:
IP - usuario [Data] "METODO /cpsessTOKEN/URL HTTP/1.1" STATUS BYTES "REFERER" "USER_AGENT"
Monitoramento em tempo real durante incidente
tail -f /usr/local/cpanel/logs/access_log /var/log/xferlog /usr/local/apache/logs/access_log \
| grep -Ei "upload|STOR|admin-ajax"
Esse comando junta cPanel + FTP + Apache e filtra ações de escrita/upload.
Em cenário de crise, ele reduz tempo de triagem porque evita alternância manual entre logs desconectados.
---
4. Baseline de logs que todo sysadmin precisa saber de cabeça
| Serviço | Caminho do log | Importância |
|---|---|---|
| cPanel Access | /usr/local/cpanel/logs/access_log | Auditoria de login/navegação |
| cPanel API | /usr/local/cpanel/logs/api_log | Chamadas automatizadas e integrações |
| Apache Error | /usr/local/apache/logs/error_log | Falhas PHP/permissão/runtime |
| ModSecurity | /usr/local/apache/logs/modsec_audit.log | Bloqueios e assinaturas WAF |
| Exim Main | /var/log/exim_mainlog | Fluxo SMTP e possível abuso de envio |
| MySQL/MariaDB | /var/lib/mysql/hostname.err | Crash, corrupção, erros de engine |
Se você não conhece esse mapa sem consultar documentação, a resposta a incidente fica lenta.
---
5. Hardening operacional que aplico em produção
Além de observar logs, aplico baseline de contenção:
- alertas para picos anômalos em
upload-ajax.html,admin-ajax.phpeSTOR; - correlação de IP/usuário/UA entre cPanel, Apache e FTP;
- bloqueio automático de padrões abusivos via Imunify360/ModSecurity;
- revisão periódica de permissões em diretórios de upload;
- auditoria de tokens e sessões inválidas com origem geográfica incomum.
Verificação rápida de comportamento suspeito
grep -Ei 'upload-ajax\.html|/3rdparty/roundcube/.*_action=upload|admin-ajax\.php' \
/usr/local/cpanel/logs/access_log /usr/local/apache/logs/access_log | tail -n 100
awk '/STOR/ {print $0}' /var/log/xferlog | tail -n 100
---
6. Conclusão: visibilidade é segurança
Em anos de operação, a lição é direta: segurança não é só firewall, é visibilidade de trilha.
Se você não mapear todos os canais de escrita (File Manager, FTP, Webmail, CMS, API), você terá pontos cegos.
Minha abordagem estratégica:
- Conheça as URLs legítimas: diferencie uso normal de scanner.
- Centralize triagem: use grep/awk estruturado para auditoria recorrente.
- Monitore o inesperado: endpoints de API/upload costumam ser vetor favorito
de automação maliciosa.
Infra segura começa quando você domina os rastros que seu servidor deixa.
Este post está licenciado sob CC BY-NC.
Comentários
Participe da discussão abaixo.
Comentários ainda não configurados. Adicione as opções do Cusdis em /assets/json/config/blog-comments-config.json.