Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
pentest_teamcity — Pentest TeamCity usando Metasploit | Kitploit
Herramientas/GitHubGitHub/kacperszurek/pentest_teamcity
Frameworks de ExploitsGeneración de PayloadsExplotación de Aplicaciones WebPost-ExplotaciónPruebas de PenetraciónRed Teaming
GitHubkacperszurek/pentest_teamcity

pentest_teamcity

Pentest TeamCity usando Metasploit

Ver Repositorio
45819hace 8 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Pentest TeamCity usando Metasploit

TL;DR: Obtener contraseñas de JetBrains IDE (como IntelliJ o PyCharm) y usar esas credenciales dentro de TeamCity Continuous Integration Server para obtener una sesión de meterpreter en el servidor y agentes de compilación usando metasploit por Kacper Szurek.

Módulo Jetbrains.rb

Shell en el servidor

Shell en agentes

Shell en agentes Windows

Comentario de JetBrains

Este es un comentario del proveedor (Equipo TeamCity de JetBrains) por Yegor Yarko:

La mayor parte del contenido del artículo describe cómo usuarios malintencionados pueden abusar de TeamCity si se les conceden los permisos adecuados para hacerlo. Por ejemplo, un usuario con rol de Administrador del Sistema (otorga control total sobre el servidor) puede instalar un plugin malicioso de TeamCity u obtener un token para acceso de "superusuario" al servidor. También alguien con rol de Administrador de Proyecto puede ejecutar código arbitrario en el agente o recuperar contraseñas de acceso a repositorios configuradas. Este comportamiento es parte de la funcionalidad proporcionada por TeamCity como producto. Estas consideraciones están descritas en la sección relacionada de la documentación de TeamCity.

Los problemas descritos indican lo peligroso que puede ser proporcionar a un actor malintencionado altos privilegios. Los administradores del servidor TeamCity deben revisar los permisos de los usuarios regularmente para no otorgar a usuarios potencialmente malintencionados permisos que puedan malutilizar; revisar los permisos de usuario invitado, si está habilitado. Otro punto es no dejar sus terminales desatendidas mientras están conectados en cualquier lugar con permisos no triviales.

Sin embargo, se señalan dos problemas de seguridad reales en el artículo: uno está relacionado con la publicación de un artefacto de compilación malicioso y hacer que un administrador lo vea en el navegador, y el otro es la escalada de un permiso para ejecutar una compilación personalizada en ejecución de código arbitrario en un agente de TeamCity. Esto último solo tiene efectos menores en la mayoría de las instalaciones de TeamCity, ya que aquellos con este permiso regularmente ya tienen la capacidad de ejecutar cualquier código en el agente.

No obstante, vamos a abordar los problemas anteriores en una de las próximas versiones de TeamCity, y les agradecemos por traerlos a nuestra atención.

Introducción

Supongamos que está realizando una prueba de penetración dentro de una empresa de software que utiliza el stack de Jetbrains. Está usando metasploit y obtiene una sesión de meterpreter en la computadora del desarrollador.

¿Qué puede hacer a continuación? Hay un artículo sobre pruebas de penetración en TeamCity de Nikhil SamratAshok Mittal de 2015.

En esta publicación combino múltiples técnicas de Security Notes y BugTrack y las integro en un módulo de Metasploit.

Nota: No utilizo ningún 0 day aquí. Para cada acción se necesitan credenciales válidas de TeamCity. Ver Comentario de JetBrains.

No soy responsable de ningún daño causado por este script. Para seguridad de datos, use set CLEANUP false.

Probado en TeamCity 2017.2.1 (build 50732).

Tabla de contenidos

  • Comentario de JetBrains
  • Instalación
  • Obtener contraseñas desde JetBrains IDE
    • Módulo de metasploit para JetBrains
  • Pruebas de penetración en TeamCity Server
    • Shell en el servidor
    • Shell en agentes de compilación
    • Shell en agentes de compilación Windows
    • Superusuario
    • Credenciales guardadas
    • Cuenta de administrador usando XSS
    • Usuario invitado
    • Módulo de metasploit para TeamCity
  • Solución de problemas

Instalación

Para decodificar la base de datos KeePass necesitamos la librería Ruby kdbx.

  1. Encontrar el archivo gem: find / -name "metasploit-framework.gemspec"
  2. Editar, para Kali Linux es: vim /usr/share/metasploit-framework/metasploit-framework.gemspec
  3. Agregar: spec.add_runtime_dependency 'kdbx', '0.2.0'
  4. cd /usr/share/metasploit-framework/ && bundle install

Ahora puede:

  1. mkdir ~/.msf4/modules/exploits && mkdir ~/.msf4/modules/post
  2. Copiar teamcity.rb y serverplugin.zip a ~/.msf4/modules/exploits
  3. Copiar jetbrains.rb a ~/.msf4/modules/post
  4. Ejecutar la consola de Metasploit msfconsole
  5. Recargar plugins reload_all

Obtener contraseñas desde JetBrains IDE

TeamCity puede integrarse fácilmente con todos los IDE de JetBrains usando el plugin.

Integración de TeamCity - ventana de inicio de sesión

Si se usa la opción Recordar, las contraseñas se almacenan usando IntelliJ Platform Credentials Store API. Puede encontrar el código fuente aquí.

La rutina de descifrado en Windows se ve así:

Esquema de contraseñas

  1. El archivo pdb.pw se descifra usando Windows CryptUnprotectData. Esto significa que solo el usuario cuyos datos cifran puede decodificarlos.
  2. El blob se descifra usando AES-128-CBC con una contraseña estática. Esta contraseña no cambia y es la misma para cada producto e instalación.
  3. La base de datos KeePass c.kdbx ahora se puede descifrar usando la Contraseña maestra del punto 2
  4. Las contraseñas se xorean usando 0xDFAA

Por defecto, la Contraseña maestra es aleatoria. Se puede cambiar dentro de las opciones:

Descargar herramienta