Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
RCity-CVE-2024-27198 — CVE-2024-27198 & CVE-2024-27199 PoC - RCE, Création de compte administrateur, Énumération des utilisateurs, Informations sur le serveur | Kitploit
Outils/GitHubGitHub/stuub/rcity-cve-2024-27198
Authentification et AutorisationAnalyse des VulnérabilitésExploitationExploitation d'Applications WebTests d'IntrusionApprentissage et ÉducationRed Teaming
GitHubstuub/rcity-cve-2024-27198

RCity-CVE-2024-27198

CVE-2024-27198 & CVE-2024-27199 PoC - RCE, Création de compte administrateur, Énumération des utilisateurs, Informations sur le serveur

Voir le dépôt
3635il y a 2 ansVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

RCity - CVE-2024-27198 (RCE & Création de compte admin) & CVE-2024-27199 (Contournement d'authentification)

Exploitation de CVE-2024-27198 & CVE-2024-27199

RCity est un script Python qui interagit avec un serveur TeamCity vulnérable. La CVE permet la création non autorisée de comptes administrateur, en contournant les erreurs 403 sur le domaine. Elle permet également d'obtenir une exécution de code à distance (RCE) via la route Debug/Processes.

Usage

Pour utiliser le script, vous devez fournir l'URL du serveur TeamCity cible en argument de ligne de commande avec l'option -t ou --target :

root@kitploit:~
python3 RCity.py -t http://teamcity.com:8111

Vous pouvez augmenter la verbosité de la sortie avec l'option -v ou --verbose :

root@kitploit:~
python3 RCity.py -t http://teamcity.com:8111 --verbose

Vous pouvez envoyer des commandes ponctuelles directement via l'option -c ou --command. Si vous voulez un shell interactif, N'UTILISEZ PAS cette option. Elle n'est pas adaptée aux shells inversés car la connexion se ferme après l'envoi de la commande :

root@kitploit:~
python3 RCity.py -t http://teamcity.com:8111 -c id

Vous pouvez garantir qu'aucune requête POST n'est envoyée au serveur TeamCity en utilisant l'option -s ou --stealth.

root@kitploit:~
python3 RCity.py -t http://teamcity.com:8111 -s

Désactive la fonction RCE - Tout le reste reste identique

root@kitploit:~
python3 RCity.py -t http://teamcity.com:8111 --no-rce

Empêche la collecte de la liste des utilisateurs, peut être long sur de grandes listes. Passez directement au RCE avec cette option !

root@kitploit:~
python3 RCity.py -t http://teamcity.com:8111 --no-enum

Features

  • Création de compte administrateur

  • Exécution de code à distance

  • Génération de jetons d'autorisation

  • Énumération des utilisateurs

  • Récupération de tous les jetons d'authentification privés des utilisateurs

  • Récupération des détails du serveur

Example

image

RCE

image

Token Generation

image

Documentation

Ici, je vais parcourir les fonctions utilisées dans ce projet, dans l'espoir de vous donner une meilleure compréhension de cet exploit et des vulnérabilités associées.

Background

La nature de la vulnérabilité est liée à la fois à CVE-2024-27198 et 99, car le problème provient du même contournement d'authentification pour les routes de l'API REST des serveurs JetBrains TeamCity. Cependant, l'impact de cette vulnérabilité change et devient intéressant... CVE-2024-27198, le plus gros impact sur le papier, en raison de son effet RCE divulgué, exploite le point de terminaison /app/rest/debug/processes, UNIQUEMENT avec les autorisations nécessaires pour faire les requêtes à ce point de terminaison via un jeton d'authentification. Cet appel à ce point de terminaison diffère entre les hôtes Unix et Windows, mais est manipulé de manière similaire, la seule différence étant le shell natif invoqué pour une requête.

Linux - processes?exePath=/bin/sh&params=-c&params={yourRCE_HTMLEncoded}

Windows - processes?exePath=cmd.exe&params=/c&params={yourRCE_HTMLEncoded}

Auth Bypass

Maintenant, comme mentionné précédemment - cela n'est pas possible sans authentification, ça devrait être sûr... pas vrai ? C'est là que le contournement d'authentification entre en jeu.

Contourner la politique du build TeamCity ouvre l'opportunité de faire des requêtes contre le serveur et d'y déposer notre jeton d'authentification, sans même avoir techniquement besoin de notre propre compte.

Le contournement lui-même consiste à créer un chemin alternatif vers les routes REST, ce qui, sans entrer dans trop de détails, nécessite le contrôle du contenu d'une classe dont le travail est de gérer les requêtes, spécifiquement celles qui ne sont pas des 302 (redirections), ce qui nous permet de la contrôler en ajoutant 3 parties nécessaires à notre URL.

  1. Un point de terminaison non authentifié qui ne déclenchera pas de 302, dans notre cas /hax

  2. Un paramètre de requête URL nommé jsp pour interroger les routes de l'API, par exemple le chemin users ?jsp=/app/rest/users

  3. Un chemin URI arbitraire se terminant par .jsp. Cela peut être réalisé en ajoutant un segment de paramètre de chemin HTTP ;.jsp

Ce qui signifie que la charge utile finale pour faire des requêtes non autorisées au point de terminaison users est : /hax?jsp=/app/rest/users;.jsp

Maintenant, nous pouvons faire des requêtes contre le point de terminaison users et ajouter nos propres utilisateurs, même des administrateurs !

Cependant, avant de pouvoir passer au RCE, nous avons besoin d'un jeton d'authentification, comme porteur pour nos requêtes RCE contre leur API REST. Pas de problème maintenant que nous avons notre contournement, nous allons en créer un !

REST API Token Generation --> RCE

Le point de terminaison des jetons suivait la même arborescence de chemins que l'exemple précédent, il se trouve à /app/rest/users/id:{user_id}/tokens/{token_name}. Alors, créons une autre charge utile pour contourner l'authentification et créer un jeton !

(Nous fournissons notre propre nom de jeton pour cela, pour ce script il s'agit d'une génération aléatoire de caractères alphanumériques ascii).

/hax?jsp=/app/rest/users/id:{user_id}/tokens/{token_name};.jsp

Après avoir fait notre requête POST pour ajouter notre jeton à notre utilisateur nouvellement créé, nous pouvons maintenant commencer à faire des requêtes contre la route /app/rest/debug/processes !

Rien de spécial dans la confection de nos charges utiles RCE, il suffit d'encoder en HTML vos charges utiles dans l'argument params !

Bon hack !

References

https://www.rapid7.com/blog/post/2024/03/04/etr-cve-2024-27198-and-cve-2024-27199-jetbrains-teamcity-multiple-authentication-bypass-vulnerabilities-fixed/

https://nvd.nist.gov/vuln/detail/CVE-2024-27198

https://github.com/W01fh4cker/CVE-2024-27198-RCE

Disclaimer

Ce script est uniquement à des fins éducatives. Utilisez-le de manière responsable et uniquement sur des systèmes pour lesquels vous avez l'autorisation d'accès.

Télécharger l’outil