Skip to content
KitploitKITPLOIT
StrumentiBlog
Log in
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
pentest_teamcity — Pentest di TeamCity con Metasploit | Kitploit
Strumenti/GitHubGitHub/kacperszurek/pentest_teamcity
Framework di ExploitGenerazione di PayloadSfruttamento di Applicazioni WebPost-ExploitPenetration TestingRed Teaming
GitHubkacperszurek/pentest_teamcity

pentest_teamcity

Pentest di TeamCity con Metasploit

Vedi Repository
458138 anni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Pentest di TeamCity usando Metasploit

TL;DR: Ottieni password da JetBrains IDE (come IntelliJ o PyCharm) e usa quelle credenziali all'interno di TeamCity Continuous Integration Server per ottenere una sessione meterpreter sul server e sugli agenti di build usando metasploit di Kacper Szurek.

Jetbrains.rb module

Shell on server

Shell on agents

Shell on Windows agents

Commento di JetBrains

Questo è un commento del fornitore (JetBrains TeamCity team) di Yegor Yarko:

La maggior parte del contenuto dell'articolo descrive come utenti malintenzionati possano abusare di TeamCity se gli vengono concesse le autorizzazioni appropriate per farlo. Ad esempio, un utente con il ruolo di Amministratore di Sistema (che concede il controllo completo sul server) può installare un plugin TeamCity malevolo o ottenere un token per l'accesso "super user" al server. Inoltre, uno con il ruolo di Amministratore di Progetto può eseguire codice arbitrario sull'agente o recuperare le password di accesso al repository configurate. Questo comportamento fa parte delle funzionalità fornite da TeamCity come prodotto. Queste considerazioni sono descritte nella sezione correlata della documentazione di TeamCity.

I problemi descritti indicano quanto pericoloso possa essere fornire privilegi elevati a un attore malintenzionato. I manutentori del server TeamCity dovrebbero rivedere regolarmente le autorizzazioni degli utenti per non concedere a utenti potenzialmente malevoli autorizzazioni che potrebbero abusare; rivedere le autorizzazioni degli utenti guest, se abilitate. Un altro punto è non lasciare i terminali incustoditi mentre si è connessi con autorizzazioni non banali.

Tuttavia, due reali problemi di sicurezza sono menzionati nell'articolo: uno riguarda la pubblicazione di un artefatto di build malevolo e indurre un utente amministratore a visualizzarlo nel browser, e l'altro è l'escalation di un'autorizzazione per eseguire una build personalizzata in esecuzione di codice arbitrario su un agente TeamCity. Quest'ultimo ha solo effetti minori sulla maggior parte delle installazioni TeamCity poiché coloro che hanno questa autorizzazione hanno già regolarmente la capacità di eseguire qualsiasi codice sull'agente.

Tuttavia, intendiamo affrontare i problemi sopra menzionati in una delle prossime release di TeamCity, e vi ringraziamo per averli portati alla nostra attenzione.

Introduzione

Supponiamo che tu stia eseguendo un penetration test all'interno di un'azienda di software che utilizza lo stack Jetbrains. Stai usando metasploit e ottieni una sessione meterpreter sul computer dello sviluppatore.

Cosa puoi fare dopo? C'è un articolo sul pentesting di TeamCity di Nikhil SamratAshok Mittal del 2015.

In questo post combino diverse tecniche da Security Notes e BugTrack e le inserisco in un modulo Metasploit.

Nota: Non uso alcun 0 day qui. Per ogni azione sono necessarie credenziali TeamCity valide. Vedi Commento di JetBrains.

Non sono responsabile per eventuali danni causati da questo script. Per la sicurezza dei dati usa set CLEANUP false.

Testato su TeamCity 2017.2.1 (build 50732).

Indice

  • Commento di JetBrains
  • Installazione
  • Ottenere password da JetBrains IDE
    • Modulo metasploit di JetBrains
  • Pentest del server TeamCity
    • Shell sul server
    • Shell sugli agenti di build
    • Shell sugli agenti di build Windows
    • Super user
    • Credenziali salvate
    • Account amministratore tramite XSS
    • Utente guest
    • Modulo metasploit di TeamCity
  • Risoluzione dei problemi

Installazione

Per decodificare il database KeePass abbiamo bisogno della libreria Ruby kdbx.

  1. Trova il file gem: find / -name "metasploit-framework.gemspec"
  2. Modificalo, per Kali Linux è: vim /usr/share/metasploit-framework/metasploit-framework.gemspec
  3. Aggiungi: spec.add_runtime_dependency 'kdbx', '0.2.0'
  4. cd /usr/share/metasploit-framework/ && bundle install

Ora puoi:

  1. mkdir ~/.msf4/modules/exploits && mkdir ~/.msf4/modules/post
  2. Copia teamcity.rb e serverplugin.zip in ~/.msf4/modules/exploits
  3. Copia jetbrains.rb in ~/.msf4/modules/post
  4. Esegui la console Metasploit msfconsole
  5. Ricarica i plugin reload_all

Ottenere password da JetBrains IDE

TeamCity può essere facilmente integrato con tutti gli IDE JetBrains utilizzando il plugin.

TeamCity integration - login window

Se l'opzione Remember me viene utilizzata, le password vengono memorizzate tramite IntelliJ Platform Credentials Store API. Puoi trovare il codice sorgente qui.

La routine di decodifica su Windows funziona così:

Passwords Schema

  1. Il file pdb.pw viene decifrato utilizzando Windows CryptUnprotectData. Ciò significa che solo l'utente che ha crittografato i dati può decodificarli.
  2. Il blob viene decifrato usando AES-128-CBC con password statica. Questa password non cambia ed è la stessa per ogni prodotto e installazione.
  3. Il database KeePass c.kdbx può ora essere decifrato usando la Master Password del punto 2
  4. Le password vengono xorate usando 0xDFAA

Per impostazione predefinita, la Master Password è casuale. Può essere modificata nelle opzioni:

Change Master Password

Ma questo non cambia nulla.

Significa solo che il database KeePass c.kdbx sarà crittografato con una password diversa. L'utente locale può comunque ottenere facilmente questa password dal file pdb.pw.

Scarica lo strumento