Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
pentest_teamcity — Pentest TeamCity mit Metasploit | Kitploit
Tools/GitHubGitHub/kacperszurek/pentest_teamcity
Exploit-FrameworksPayload-GenerierungWebanwendungs-ExploitationPost-ExploitationPenetrationstestsRed Teaming
GitHubkacperszurek/pentest_teamcity

pentest_teamcity

Pentest TeamCity mit Metasploit

Repository anzeigen
45813vor 8 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Pentest TeamCity mit Metasploit

TL;DR: Passwörter aus JetBrains IDE (wie IntelliJ oder PyCharm) abrufen und diese Anmeldedaten innerhalb des TeamCity Continuous Integration Servers verwenden, um mit Metasploit von Kacper Szurek eine Meterpreter-Sitzung auf dem Server und den Build-Agents zu erhalten.

Jetbrains.rb module

Shell on server

Shell on agents

Shell on Windows agents

JetBrains-Kommentar

Dies ist ein Kommentar des Herstellers (JetBrains TeamCity-Team) von Yegor Yarko:

Der Großteil des Artikelinhalts beschreibt, wie böswillige Benutzer TeamCity missbrauchen können, wenn sie zu Recht entsprechende Berechtigungen erhalten haben. Beispielsweise kann ein Benutzer mit der Rolle „Systemadministrator“ (gewährt vollständige Kontrolle über den Server) ein böswilliges TeamCity-Plugin installieren oder einen Token für den „Superuser“-Zugriff auf den Server erhalten. Auch ein Benutzer mit der Rolle „Projektadministrator“ kann beliebigen Code auf dem Agenten ausführen oder die hinterlegten Repository-Zugangspasswörter abrufen. Dieses Verhalten ist Teil der Funktionalität, die TeamCity als Produkt bereitstellt. Diese Überlegungen werden im entsprechenden Abschnitt der TeamCity-Dokumentation beschrieben.

Die beschriebenen Probleme verdeutlichen, wie gefährlich es sein kann, einem böswilligen Akteur hohe Berechtigungen zu gewähren. TeamCity-Server-Administratoren sollten die Benutzerberechtigungen regelmäßig überprüfen, um potenziell böswilligen Benutzern keine Berechtigungen zu gewähren, die sie missbrauchen könnten; ebenso sollten sie die Gästebetechtigungen überprüfen, falls aktiviert. Ein weiterer Punkt ist, Terminals nicht unbeaufsichtigt zu lassen, während man irgendwo mit nicht-trivialen Berechtigungen angemeldet ist.

Zwei tatsächliche Sicherheitsbedenken werden im Artikel erwähnt: Einerseits die Veröffentlichung eines böswilligen Build-Artefakts, das einen Administrator dazu verleitet, es im Browser anzusehen, und andererseits die Eskalation einer Berechtigung zur Ausführung eines benutzerdefinierten Builds hin zur Ausführung von beliebigem Code auf einem TeamCity-Agenten. Letzteres hat nur geringe Auswirkungen auf die meisten TeamCity-Installationen, da Benutzer mit dieser Berechtigung ohnehin regelmäßig bereits die Fähigkeit haben, beliebigen Code auf dem Agenten auszuführen.

Dennoch werden wir die oben genannten Bedenken in einem der nächsten TeamCity-Releases adressieren und danken Ihnen für die Meldung.

Einleitung

Angenommen, Sie führen einen Penetrationstest in einem Softwareunternehmen durch, das den JetBrains-Stack verwendet. Sie nutzen Metasploit und erhalten eine Meterpreter-Sitzung auf dem Entwicklercomputer.

Was können Sie als Nächstes tun? Es gibt einen Artikel über TeamCity-Pentesting von Nikhil SamratAshok Mittal aus dem Jahr 2015.

In diesem Beitrag kombiniere ich mehrere Techniken aus den Security Notes und dem BugTrack und fasse sie in einem Metasploit-Modul zusammen.

Hinweis: Ich verwende hier keine 0-Day-Exploits. Für jede Aktion sind gültige TeamCity-Anmeldedaten erforderlich. Siehe JetBrains-Kommentar.

Ich bin nicht verantwortlich für Schäden, die durch dieses Skript verursacht werden. Verwenden Sie zur Datensicherheit set CLEANUP false.

Getestet auf TeamCity 2017.2.1 (build 50732).

Inhaltsverzeichnis

  • JetBrains-Kommentar
  • Installation
  • Passwörter aus JetBrains IDE abrufen
    • JetBrains Metasploit-Modul
  • Pentest TeamCity-Server
    • Shell auf dem Server
    • Shell auf Build-Agents
    • Shell auf Windows-Build-Agents
    • Superuser
    • Gespeicherte Anmeldedaten
    • Administratorkonto mittels XSS
    • Gastbenutzer
    • TeamCity Metasploit-Modul
  • Fehlerbehebung

Installation

Zum Entschlüsseln der KeePass-Datenbank benötigen wir die kdbx-Ruby-Bibliothek.

  1. Gem-Datei finden: find / -name "metasploit-framework.gemspec"
  2. Bearbeiten, für Kali Linux: vim /usr/share/metasploit-framework/metasploit-framework.gemspec
  3. Hinzufügen: spec.add_runtime_dependency 'kdbx', '0.2.0'
  4. cd /usr/share/metasploit-framework/ && bundle install

Jetzt können Sie:

  1. mkdir ~/.msf4/modules/exploits && mkdir ~/.msf4/modules/post
  2. teamcity.rb und serverplugin.zip nach ~/.msf4/modules/exploits kopieren
  3. jetbrains.rb nach ~/.msf4/modules/post kopieren
  4. Metasploit-Konsole starten: msfconsole
  5. Plugins neu laden: reload_all

Passwörter aus JetBrains IDE abrufen

TeamCity kann mit allen JetBrains-IDEs über ein Plugin integriert werden.

TeamCity integration - login window

Wenn die Option Remember me verwendet wird, werden die Passwörter mit der IntelliJ Platform Credentials Store API gespeichert. Den Quellcode finden Sie hier.

Die Entschlüsselungsroutine unter Windows sieht so aus:

Passwords Schema

  1. Die Datei pdb.pw wird mit der Windows-Funktion CryptUnprotectData entschlüsselt. Das bedeutet, dass nur der Benutzer, der die Daten verschlüsselt hat, sie entschlüsseln kann.
  2. Der Blob wird mit AES-128-CBC und einem statischen Passwort entschlüsselt. Dieses Passwort ändert sich nicht und ist für jedes Produkt und jede Installation gleich.
  3. Die KeePass-Datenbank c.kdbx kann nun mit dem Master-Passwort aus Schritt 2 entschlüsselt werden.
  4. Passwörter werden mit 0xDFAA xor-verknüpft.

Standardmäßig ist das Master-Passwort zufällig. Es kann in den Optionen geändert werden:

Tool herunterladen