Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
RCity-CVE-2024-27198 — CVE-2024-27198 和 CVE-2024-27199 概念验证 - 远程代码执行、管理员账户创建、用户枚举、服务器信息 | Kitploit
工具/GitHubGitHub/stuub/rcity-cve-2024-27198
身份验证与授权漏洞分析漏洞利用Web应用程序漏洞利用渗透测试学习与教育红队
GitHubstuub/rcity-cve-2024-27198

RCity-CVE-2024-27198

CVE-2024-27198 和 CVE-2024-27199 概念验证 - 远程代码执行、管理员账户创建、用户枚举、服务器信息

查看仓库
36352年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

RCity - CVE-2024-27198(远程代码执行与管理账户创建)及 CVE-2024-27199(认证绕过)

利用 CVE-2024-27198 和 CVE-2024-27199

RCity 是一个与易受攻击的 TeamCity 服务器交互的 Python 脚本。该 CVE 允许未经授权的管理员账户创建,绕过域上的 403 错误,同时还能通过 Debug/Processes 路径实现远程代码执行。

使用方法

要使用该脚本,你需要通过命令行参数 -t 或 --target 提供目标 TeamCity 服务器 URL:

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

你可以使用 -v 或 --verbose 选项增加输出详细程度:

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

你可以通过 -c 或 --command 选项直接发送一次性命令,如果你想要交互式 shell,请不要使用此选项。它不适用于反弹 shell,因为发送命令后连接会关闭:

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

你可以使用 -s 或 --stealth 选项确保不向 TeamCity 服务器发送任何 POST 请求:

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

禁用 RCE 功能 - 其他一切保持不变:

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

阻止收集用户列表,在大型用户列表上可能耗时。使用此选项可直接跳转到 RCE!

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

功能

  • 管理员账户创建
  • 远程代码执行
  • 生成授权令牌
  • 枚举用户
  • 收集所有用户的私有授权令牌
  • 获取服务器详细信息

示例

image

远程代码执行

image

令牌生成

image

文档

在这里我将介绍该项目中使用的函数,希望能帮助你更好地理解此漏洞及其相关的安全缺陷。

背景

该漏洞的性质在于 CVE-2024-27198 和 CVE-2024-27199 之间的关联,因为问题的根源都来自 JetBrains TeamCity 服务器中 REST API 路由的相同认证绕过。然而,该漏洞的影响正是在此处发生转变并变得有趣……CVE-2024-27198 是纸面上真正的重头戏,因为它披露了 RCE 影响,利用了 /app/rest/debug/processes 端点,仅 在拥有通过授权令牌发起必要请求权限的情况下。对此端点的调用在 Unix 和 Windows 主机之间有所不同,但操纵方式类似,唯一的区别是触发请求所使用的原生 shell。

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

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

认证绕过

如前所述——没有认证这是不可能的,应该安全……对吧?这就是认证绕过发挥作用的地方。

绕过 TeamCity 构建策略为我们提供了向服务器发起请求并在其中放置我们的授权令牌的机会,甚至无需技术上的自有账户。

绕过本身是创建一条通往 REST 路由的替代路径。简单来说,它需要控制一个负责处理请求的类中的内容,特别是那些不是 302(重定向)的请求,这使我们能够通过在 URL 中附加三个必要部分来控制它。

  1. 一个不会触发 302 的未验证端点,本例中为 /hax
  2. 一个名为 jsp 的 URL 查询参数,用于查询 API 路由,例如 users 路径:?jsp=/app/rest/users
  3. 一个以 .jsp 结尾的任意 URI 路径。这可以通过附加一个 HTTP 路径参数段 ;.jsp 来实现

因此,用于对用户端点进行未授权请求的最终载荷为:/hax?jsp=/app/rest/users;.jsp

现在我们可以对用户端点发起请求,并添加我们自己的用户,甚至是管理员!

然而,在进入 RCE 之前,我们需要一个授权令牌,作为针对其 REST API 的 RCE 请求的载体。现在有了绕过,没问题,我们去生成一个!

REST API 令牌生成 → 远程代码执行

令牌端点遵循与前一个示例相同的路径树,可以在 /app/rest/users/id:{user_id}/tokens/{token_name} 找到。让我们再构造一个绕过认证并创建令牌的载荷!

(我们为此提供自己的令牌名称,在本脚本中,这是一个由字母数字 ASCII 字符随机生成的名称。)

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

在向新创建的用户发送 POST 请求添加令牌后,我们现在可以开始向 /app/rest/debug/processes 路由发起请求了!

构造 RCE 载荷没什么特别的,只需要在 params 参数中 HTML 编码你的载荷即可!

祝黑客愉快!

参考资料

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

免责声明

此脚本仅供教育目的。请负责任地使用,并且仅在你拥有访问权限的系统上使用。

下载工具