CVE-2025-26147:Denodo Scheduler 中经过身份验证的 RCE

admin 2025年5月24日05:12:23评论4 views字数 2120阅读7分4秒阅读模式
CVE-2025-26147:Denodo Scheduler 中经过身份验证的 RCE

介绍

受影响产品摘要

Denodo提供一系列逻辑数据管理软件。

本博客重点介绍一款名为“Scheduler”的软件。Denodo Scheduler 可以调度和执行数据提取和集成作业。

受影响产品摘要

供应商:Denodo

产品:Denodo Scheduler

已确认易受攻击的版本:  v8.0.202309140

修复版本:Denodo 8.0:denodo-v80-update-20240307

Denodo Scheduler:基于时间的作业调度程序

Denodo Scheduler 是一个用 Java 编写的 Web 应用程序。该 Web 应用程序包含管理功能,允许管理员配置服务器、数据库并指定身份验证形式。

在 Scheduler 的身份验证设置中,管理员可以配置通过 Kerberos 进行身份验证。Kerberos 是一种网络身份验证协议,它使用票证和对称密钥加密技术,允许在不安全的网络上进行安全身份验证。Web 应用程序允许管理员上传“Keytab”文件。Kerberos中的Keytab (密钥表)文件用于存储服务主体凭据(加密密钥),无需密码即可进行身份验证。 

当使用 HTTP 代理拦截时,上传“Keytab”文件的 HTTP 请求是一个多部分表单数据 POST 请求。在“Content-Depsoition”HTTP 标头中,Web 应用程序分别发送表单名称“keyTabFile”和文件名“filename”。在“filename”属性的值中发现了路径遍历攻击漏洞。路径遍历攻击(也称为目录遍历)旨在访问存储在 Web 根文件夹之外的文件和目录。 

通过操纵引用带有“点-点-斜杠 (../)”序列及其变体的文件的变量,或使用绝对文件路径,攻击者可能能够访问存储在文件系统中的任意文件和目录。具体来说,对于 CVE-2025-26147 漏洞,Kerberos“Keytab”文件上传请求中的有效载荷允许恶意用户将文件上传到服务器文件系统中的(几乎)任何位置:

filename=”../../../../opt/denodo/malicious.file.txt”

然而,文件上传时,时间戳会被附加到文件名中。例如,如果上传了之前的“文件名”,则会在系统上创建以下文件:

malicious.file-1711156561716.txt

带有时间戳的文件名已通过 HTTP 响应提供给用户,无需猜测时间戳。但是,需要找到另一条远程代码执行路径。

CVE-2025-26147:Denodo Scheduler 中经过身份验证的 RCE

带有时间戳的文件名。

升级到远程代码执行

有了将任意文件写入文件系统的能力,现在是时候枚举文件系统来确定恶意文件在哪里影响最大,并希望导致代码执行。

如前所述,该应用程序和部署环境均采用 Java 编写。具体来说,Web 服务器是 Apache Tomcat。 

Apache Tomcat (简称“Tomcat”)是一个免费开源的“纯Java”HTTP Web服务器环境实现,其中Java代码也可以运行。

使用 Linux 命令行程序“find”和“grep”,在文件系统上发现了 Apache Tomcat Web 根目录。

/path/to/webroot/resources/apache-tomcat/webapps/ROOT/

下一步是创建 Java Web Shell。Java Web Shell(基于 JSP)是一种恶意或管理脚本,允许在运行 JavaServer Pages(JSP)的 Web 服务器上执行远程代码。

下面是一个 Java Web Shell 的示例,执行时将运行提供给 GET HTTP 请求 URL 查询参数“cmd”的命令。

< % String cmd = request.getParameter ( " cmd " ) ; if ( cmd ! = null ) { Process p = Runtime.getRuntime ( ) . exec ( cmd ) ;     java.io.InputStream is = p.getInputStream ( ) ; java.util.Scanner s = new java.util.Scanner ( is ) .useDelimiter ( " \ A " ) ; String output = s.hasNext ( ) ? s.next ( ) : " " ; respond.getWriter ( ) . println ( output ) ; }     % >
CVE-2025-26147:Denodo Scheduler 中经过身份验证的 RCE

Java Web Shell 的示例。

上传 Java Web Shell 后,用户可以通过访问该 Web Shell 来远程执行命令。下图显示了执行“id”命令的结果。

CVE-2025-26147:Denodo Scheduler 中经过身份验证的 RCE

执行“id”命令的示例。

结论

本博客重点介绍了如何利用一个看似简单的漏洞升级实现远程代码执行,并强调了在所有软件开发中采用防御性编码方法的重要性,以确保最终用户服务的机密性、完整性和可用性。此漏洞由 John De Armas 和 Morgan Backus 发现。

当我们向 Denodo 反映这些问题后,我们非常感谢他们迅速做出反应并进行处理。

漏洞披露时间表

2024年4月9日        Rhino 向 Denodo 披露了该漏洞。

2024年4月23日 Denodo 收到并承认了该漏洞。

2024年4月23日 Denodo 发布了针对该漏洞的补丁。

原文始发于微信公众号(Ots安全):CVE-2025-26147:Denodo Scheduler 中经过身份验证的 RCE

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年5月24日05:12:23
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   CVE-2025-26147:Denodo Scheduler 中经过身份验证的 RCEhttp://cn-sec.com/archives/4093229.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息