CVE-2023-20198 Cisco IOS-XE ZeroDay - Ou comment créer son réseau de botnet ?
🧟 Cisco CVE-2023-20198 - Ou comment créer son réseau de botnet ?
Introduction
Le 16 octobre 2023, Cisco a communiqué sur une vulnérabilité critique d’élevation de privilèges via l’interface Web sous l’identifiant CVE-2023-20198 au score CVSS de 10.
Cisco affirme que la vulnérabilité est largement exploitée. La vulnérabilité permet à un attaquant non authentifié de créer un compte aux privilèges maximales. Il n’existe pas de correctif pour cette vulnérabilité pour le moment.
Détails de l’exploitation
L’exploitation est relativement simple. Il n’existe pas de PoC clef en main pour cette vulnérabilité. Cependant, un exploit est disponible sur GitHub à l’heure où cet article est rédigé (vendredi 20 octobre 2023 à 12h00). Lien : https://github.com/Tounsi007/CVE-2023-20198
Contenu du PoC :
|
|
Trackflaw n’est pas en mesure de le tester pour le moment. Ce PoC est à usage éducatif uniquement.
1. Création de l’administrateur
Le PoC indique cette information pour la création de l’administrateur :
|
|
Comme indiqué par Cisco, cela semble correspondre à la création d’un administrateur de facçon non authentifié. L’attaquant ici effectue une requête POST
vers la route /webui/create_user
afin d’essayer de créer l’utilisateur privilégié.
2. Ajout de l’implant
Les attaquants, après avoir créée un compte administrateur, déposent un implant similaire à celui ci-dessous :
Ce code agit comme une porte dérobée pour revenir plus facilement :
- La première condition
if(params["menu"])
traite le paramètremenu
dans l’url. Elle renvoie une chaîne de chiffres surement indiquant la version de la backdoor. - La deuxième condition en dessous traite le paramètre
logon_hash
devant être égal à1
. Ce paramètre renvoie une chaîne hexadécimale de 18 caractères écrite dans l’implant. - La troisième condition utilise aussi le paramètre
logon_hash
et vérifie que le paramètre correspond bien à une chaîne hexadécimale de 40 caractères écrite en dur dans l’implant (mot de passe). Si cette condition est validée, l’implant vérifie qu’un argumentcommon_type=subsystem
est bien présent dans l’url.
Ici l’implant est en mesure d’exécuter du code de deux manières :
- D’une première façon avec les privilèges systèmes actuels de l’implant avec l’argument
common_type=subsystem
. - D’une deuxième façon avec les privilèges administrateurs 15 avec l’argument
common_type=iox
.
Pour résumé, l’appel à l’implant s’effectue avec la requête POST
suivante :
|
|
Selon plusieurs sources, l’installation de l’implant reste encore incompris. Il existe plusieurs pistes comme nottament l’utilisation de la vulnérabilité CVE-2021-1435
décrite dans le PoC.
|
|
Cette vulnérabilité est corrigée et indépendante de la vulnérabilité CVE-2023-20198
: https://www.cisco.com/c/en/us/support/docs/csa/cisco-sa-iosxe-webcmdinjsh-UFJxTgZD.html
Il est probable que les attaquants déposent leur implant à l’aide du compte administrateur créée.
3. Redémarrage du service
Selon le PoC, il serait nécessaire de redémarrer le service pour enregistrer la configuration de l’implant.
|
|
4. Vérifier la présence de l’implant
Une fois l’implant déposé, vous pouvez vérifier son exécution. Changez la route en fonction de la configuration de l’implant (ci-dessous exemple de l’implant récupéré).
|
|
5. Suppression des traces
Après avoir déposé l’implant, les attaquants suppriment leurs traces avec les commandes suivantes :
|
|
Il est aussi possible de le faire à travers l’interface web :
|
|
Localisation des hôtes vulnérables
Il est possible d’effectuer une recherche sur le moteur Censy
avec le mot clef services.labels=cisco-xe-webui
pour localiser des appareils fonctionant avec XE Webui.
Protection
La recommandation faite par Cisco est de désactiver la fonction de serveur HTTP/S sur les systèmes accessibles sur Internet. Il n’existe pour le moment pas de correctifs.
Selon Shodan
, il y aurait plus de 140 000 appareils vulnérables dans le monde (recherche : http.html_hash:1076109428
)
Résumé
Voici un résumé de l’exploitation à travers une animation :
Sources
- https://censys.com/cve-2023-20198-cisco-ios-xe-zeroday/
- https://www.darkreading.com/vulnerabilities-threats/critical-unpatched-cisco-zero-day-bug-active-exploit
- https://www.greynoise.io/blog/unpacking-cve-2023-20198-a-critical-weakness-in-cisco-ios-xe?utm_source=substack&utm_medium=email
- https://github.com/JoyGhoshs/CVE-2023-20198
- https://github.com/Atea-Redteam/CVE-2023-20198
- https://blog.talosintelligence.com/active-exploitation-of-cisco-ios-xe-software/