Sage的主要服务对象是大中型企业,在全球大概有600万客户。Sage在英文中是英明睿智的意思,致力于为企业提供全线管理软件解决方案。 Sage ERP X3是一套完全集成的管理解决方案,在易用性方面做了很大的改进,帮助企业快速享受到IT带来的诸多利益。
Rapid7 研究人员 Jonathan Peterson、Cale Black、Aaron Herndon、Ryan Villarreal 和 William Vu 发现了四个涉及 Sage X3 的漏洞。这些漏洞根据 Rapid7 的常规漏洞披露流程报告给 Sage,并在 Sage X3 第 9 版(Syracuse 9.22.7.2 随附的那些组件)、Sage X3 HR 和 Payroll 版本 9(Syracuse 随附的那些组件)的最新版本中修复9.24.1.3、Sage X3 版本 11 (Syracuse v11.25.2.6) 和 Sage X3 版本 12 (Syracuse v12.10.2.8)。请注意,Sage X3 没有商业可用的第 10 版。
这些漏洞如下表所示:前两个是涉及Sage X3远程管理的协议相关漏洞,后两个是Web应用程序漏洞。一般来说,Sage X3 安装不应直接暴露在互联网上,而应在需要时通过安全的 VPN 连接提供。遵循此操作建议可有效缓解所有四个漏洞,但仍敦促客户根据其通常的补丁周期时间表进行更新。
产品描述
Sage X3 是一个企业资源计划 (ERP) 应用程序,主要用于大中型企业的供应链管理。该产品在英国和其他欧洲市场特别受欢迎。有关 Sage X3 的更多信息,请访问其官网。
这些漏洞是由 Rapid7 研究人员 Jonathan Peterson (@deadjakk )、Aaron Herndon (@ac3lives )、Cale Black、Ryan Villarreal (@XjCrazy09 ) 和 William Vu 发现的。它们是根据 Rapid7 的漏洞披露政策披露的。
CVE-2020-7390 之前由 Cobalt Labs 的 Vivek Srivastav 于 2021 年 1 月向供应商报告。
漏洞利用
对于每一个确定的漏洞,下面是对漏洞和利用它的技术的简要描述。
CVE-2020-7388:Sage X3 未经身份验证的远程命令执行 (RCE) 作为 AdxDSrv.exe 组件中的 SYSTEM
Sage X3 在 AdxAdmin 组件的进程“AdxDSrv.exe”下的端口 TCP/1818(默认值,但可更改)上公开管理服务。该服务用于通过 Sage X3 控制台远程管理 Sage ERP 解决方案。服务中的漏洞允许恶意攻击者向暴露的服务发出请求,以“NT AUTHORITY/SYSTEM”用户身份在服务器上执行命令。
AdxDSrv.exe认证和执行过程
Sage X3 使用自定义协议在 Sage X3 控制台客户端和 AdxDSrv.exe 之间进行交互。查看协议,Sage X3 控制台使用字节序列制作一个请求以进行身份验证,如下所示:
Sage X3 使用自定义的加密机制对密码进行加密,但为简洁起见,这里不再赘述加密方式。示例消息如下所示,向用户“admin”发送密码“password”:
AdxDSrv.exe发送4个字节表示验证成功,这些字节总是以 \x00\x00 为前缀,然后是两个明显随机的字节,如下所示:
收到这个成功的认证响应后,可以发送消息执行远程命令。首先,临时目录由客户端以要写入服务器的“cmd”文件的名称指定。
具有提供的“cmd”文件名的批处理文件被写入磁盘,其中包含“whoami”命令。
在 AdxDSrv.exe 服务将临时批处理文件写入指定文件夹后,它将通过Windows API调用CreateProcessAsUserAs,在提供的用户凭证的安全上下文中执行该文件。这可以在 Windows 事件日志中作为使用“CreateProcess(AsUser)”的 Windows 事件登录被观察到。最终导致将命令写入文件、执行然后读取输出的消息序列。
在AdxSrv.exe中调用CreateProcessAsUserA的代码片段,AdxSrv.exe是一个从AdxDSrv.exe产生的线程。
在没有有效身份验证的情况下执行,作为 NT AUTHORITY\SYSTEM
发送要执行的命令需要两个组件。首先要知道AdxAdmin服务的安装目录,这样我们就可以向服务提供要写入的完整路径位置,以便将要执行的“.cmd”文件写入其中。第二个组件是“授权序列”,如上所示,它包括发送一个用户名和密码,该用户名和密码是用AdxDSrv.exe服务使用的加密协议加密的,以便通过Windows API调用CreateProcessAsUserA来执行.cmd文件。
获取安装目录可以通过事先的知识、有根据的猜测,或者通过以下CVE-2020-7387所述的未经身份验证的远程信息泄露漏洞来完成。
第二步可以通过重新创建 AdxDSrv.exe 身份验证和命令协议的一系列数据包来回避,但有一个关键修改:攻击者可以简单地交换一个字节并导致服务忽略提供的用户凭据,而是在当前AdxDSrv.exe进程安全上下文下执行,该进程安全上下文作为NT AUTHORITY\SYSTEM运行。一些模糊测试表明,在授权序列开始期间使用“0x06”而不是“0x6a”允许序列继续,并允许命令作为NT AUTHORITY\SYSTEM帐户运行。
换句话说,客户端似乎能够完全退出身份验证。在这种模式下,请求的命令以 SYSTEM 身份执行,而不是模拟提供的用户帐户。
在一个实际的概念证明漏洞,它发送了整个序列来执行“whoami”,而没有像之前要求的那样提供加密的用户凭证。
该漏洞在AdxAdmin 93.2.53版本中被修复,该版本在 X3 V9、V11 和 V12 中很常见,并分别随 Syracuse 9.22.7.2、11.25.2.6 和 12.10.2.8 提供。
CVE-2020-7387:Sage X3 安装路径名泄露
在对 CVE-2020-7388 中描述的 AdxAdmin.exe 使用的身份验证和命令协议进行模糊测试时,发现发送第一个字节为“0x09”而不是“0x6a”,尾随三个空字节,返回的安装目录时不需要任何身份验证。
比如正在发送的消息示例,以及来自服务器的包含目录路径信息的响应。
当涉及到大多数企业软件时,安装路径名称往往是相当可预测的,几乎所有用户都安装到少数几个驱动器号中的一个默认目录中,这个漏洞确实为攻击者提供了利用上述CVE-2020-7388所需的信息。
CVE-2020-7389:系统链变量脚本命令注入
一些允许使用 'System' 函数的 Web 应用程序脚本可以与“CHAINE”变量配对,以执行任意命令,包括来自远程 SMB 共享的命令。 该页面可以通过菜单提示 Development -> Script dictionary -> Scripts 到达。 根据供应商的说法,此功能应仅在开发环境中可用,而不是在生产环境中可用。
漏洞命令模式为:
演示过程如下所示:
下面的屏幕截图演示了一个提供“a.bat”的 Impacket SMB 服务器,该服务器又调用“b.exe”,并尝试连接和评估在 CHAINE 变量中指定的有效负载:
CVE-2020-7390:用户配置文件的“编辑”页面上存储的 XSS 漏洞
“Edit User”页面中的“First name”、“Last name”和“Email”字段容易受到存储的XSS序列的影响。示例 XSS 字符串如下图所示:
XSS 字符串在 `mouseOver` Javascript 上执行的事件如下图所示:
威胁影响
结合CVE-2020-7387和CVE-2020-7388,攻击者可以首先了解受影响软件的安装路径,然后利用该信息将命令传递给在system上下文中运行的主机系统。这可以让攻击者运行任意操作系统命令来创建管理员级别的用户,安装恶意软件,或者出于任何目的完全控制系统。
CVE-2020-7389 描述了一种颠覆 Sage X3 开发环境的机制,并最终以“x3run”用户身份运行操作系统命令。但是,此功能 a) 仅限于 Sage X3 的经过身份验证的用户,并且 b) 不应在运行环境中公开。
最后,CVE-2020-7390 描述了一个持久的跨站点脚本漏洞,该漏洞只能由经过身份验证的用户触发,并且需要用户交互才能完成攻击。但是,如果成功,此漏洞可能允许 Sage X3 的普通用户以当前登录的管理员身份执行特权功能,或捕获管理员会话 cookie 以供以后冒充为当前登录的管理员。请注意,与其他漏洞不同,此漏洞仅存在于 Sage X3 的未修补版本 12 实例中(而不是版本 9 或版本 10)。
供应商声明
Sage 非常重视其客户解决方案的安全性,并定期对其产品进行主动测试,以识别潜在漏洞并提供修复。供应商非常感谢 Rapid7, Sage 及其合作伙伴已针对该漏洞发布了修复程序,联系了所有适用的客户并就后续流程向他们提供了安全建议。
缓解方案
Sage X3 第 9 版、第 11 版和第 12 版的最新本地版本解决了这些漏洞,并敦促 Sage X3 的用户尽早更新其 Sage 基础架构。如果无法立即应用更新,客户应考虑采取以下补救措施:
1.对于 CVE-2020-7388 和 CVE-2020-7387,不要将任何运行 Sage X3 的主机上的 AdxDSrv.exe TCP 端口暴露给网络或其他不受信任的网络。作为进一步的预防措施,应在运行过程中完全停止 adxadmin 服务。
2.对于 CVE-2020-7389,一般来说,用户不应将此 webapp 接口暴露给网络或其他不受信任的网络。此外,Sage X3 的用户应确保开发功能在运行环境中不可用。
3.如果由于业务关键功能而导致网络分段无法执行,则只有对主机Sage X3进行系统管理的受信任的用户才应该被授予登录访问web应用程序的权限。
本文翻译自:https://www.rapid7.com/blog/post/2021/07/07/cve-2020-7387-7390-multiple-sage-x3-vulnerabilities/如若转载,请注明原文地址