Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
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
pentest_teamcity — Pentest de TeamCity avec Metasploit | Kitploit
Outils/GitHubGitHub/kacperszurek/pentest_teamcity
Frameworks d'ExploitationGénération de PayloadsExploitation d'Applications WebPost-ExploitationTests d'IntrusionRed Teaming
GitHubkacperszurek/pentest_teamcity

pentest_teamcity

Pentest de TeamCity avec Metasploit

Voir le dépôt
45813il y a 8 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

Test de pénétration de TeamCity avec Metasploit

TL;DR : Obtenez les mots de passe de l'IDE JetBrains (comme IntelliJ ou PyCharm) et utilisez ces identifiants dans TeamCity Continuous Integration Server afin d'obtenir une session meterpreter sur le serveur et les agents de build en utilisant metasploit par Kacper Szurek.

Module Jetbrains.rb

Shell sur le serveur

Shell sur les agents

Shell sur les agents Windows

Commentaire de JetBrains

Voici un commentaire de l'éditeur (équipe JetBrains TeamCity) par Yegor Yarko :

La majeure partie du contenu de l'article décrit comment des utilisateurs malveillants peuvent abuser de TeamCity s'ils ont légitimement obtenu les permissions nécessaires. Par exemple, un utilisateur avec le rôle d'administrateur système (qui donne un contrôle total sur le serveur) peut installer un plugin TeamCity malveillant ou obtenir un jeton pour l'accès "super utilisateur" au serveur. De même, un administrateur de projet peut exécuter du code arbitraire sur l'agent ou récupérer les mots de passe d'accès au dépôt configurés. Ce comportement fait partie des fonctionnalités offertes par TeamCity en tant que produit. Ces considérations sont décrites dans la section correspondante de la documentation de TeamCity.

Les problèmes décrits montrent à quel point il peut être dangereux d'accorder des privilèges élevés à un acteur malveillant. Les administrateurs du serveur TeamCity doivent vérifier régulièrement les permissions des utilisateurs afin de ne pas accorder à des utilisateurs potentiellement malveillants des permissions qu'ils pourraient détourner ; vérifier les permissions des utilisateurs invités, si cette fonction est activée. Un autre point est de ne pas laisser vos terminaux sans surveillance lorsque vous êtes connecté avec des permissions non triviales.

Deux problèmes de sécurité concrets sont cependant mentionnés dans l'article : l'un concerne la publication d'un artefact de build malveillant et le fait qu'un administrateur le visualise dans le navigateur, et l'autre est l'escalade d'une permission d'exécution d'un build personnalisé vers l'exécution de code arbitraire sur un agent TeamCity. Ce dernier n'a que des effets mineurs sur la majorité des installations TeamCity, car ceux qui ont cette permission ont déjà la capacité d'exécuter n'importe quel code sur l'agent.

Néanmoins, nous allons traiter les problèmes ci-dessus dans l'une des prochaines versions de TeamCity, et nous vous remercions de les avoir portés à notre attention.

Introduction

Supposons que vous effectuez un test de pénétration dans une société de logiciels qui utilise la pile JetBrains. Vous utilisez metasploit et obtenez une session meterpreter sur l'ordinateur du développeur.

Que pouvez-vous faire ensuite ? Il y a un article sur le pentest de TeamCity par Nikhil SamratAshok Mittal datant de 2015.

Dans cet article, je combine plusieurs techniques issues des Notes de sécurité et du BugTrack et les intègre dans un module Metasploit.

Remarque : Je n'utilise aucun 0-day ici. Pour chaque action, vous avez besoin d'identifiants TeamCity valides. Voir Commentaire de JetBrains.

Je ne suis pas responsable des dommages causés par ce script. Pour la sécurité des données, utilisez set CLEANUP false.

Testé sur TeamCity 2017.2.1 (build 50732).

Table des matières

  • Commentaire de JetBrains
  • Installation
  • Obtenir les mots de passe depuis l'IDE JetBrains
    • Module metasploit JetBrains
  • Test de pénétration du serveur TeamCity
    • Shell sur le serveur
    • Shell sur les agents de build
    • Shell sur les agents de build Windows
    • Super utilisateur
    • Identifiants sauvegardés
    • Compte administrateur via XSS
    • Utilisateur invité
    • Module metasploit TeamCity
  • Dépannage

Installation

Pour décoder la base de données KeePass, nous avons besoin de la bibliothèque Ruby kdbx.

  1. Trouvez le fichier gem : find / -name "metasploit-framework.gemspec"
  2. Éditez-le, pour Kali Linux c'est : vim /usr/share/metasploit-framework/metasploit-framework.gemspec
  3. Ajoutez : spec.add_runtime_dependency 'kdbx', '0.2.0'
  4. cd /usr/share/metasploit-framework/ && bundle install

Maintenant vous pouvez :

  1. mkdir ~/.msf4/modules/exploits && mkdir ~/.msf4/modules/post
  2. Copiez teamcity.rb et serverplugin.zip dans ~/.msf4/modules/exploits
  3. Copiez jetbrains.rb dans ~/.msf4/modules/post
  4. Lancez la console Metasploit msfconsole
  5. Rechargez les plugins reload_all

Obtenir les mots de passe depuis l'IDE JetBrains

TeamCity peut être facilement intégré à tous les IDE JetBrains à l'aide d'un plugin.

Intégration TeamCity - fenêtre de connexion

Si l'option Remember me est utilisée, les mots de passe sont stockés via l'API IntelliJ Platform Credentials Store. Vous pouvez trouver le code source ici.

La routine de déchiffrement sous Windows ressemble à ceci :

Schéma des mots de passe

  1. Le fichier pdb.pw est déchiffré en utilisant Windows CryptUnprotectData. Cela signifie que seul l'utilisateur dont les données sont chiffrées peut les décoder.
  2. Le blob est déchiffré en utilisant AES-128-CBC avec un mot de passe statique. Ce mot de passe ne change pas et est le même pour chaque produit et chaque installation.
  3. La base de données KeePass c.kdbx peut maintenant être déchiffrée en utilisant le Master Password du point 2.
  4. Les mots de passe sont xored avec 0xDFAA.
Télécharger l’outil