2023 年 5月31 日,Progress 发布了有关其 MOVEit Transfer 和云软件 Web 应用程序中的关键 SQL 注入漏洞的安全公告。此漏洞可能允许攻击者获得管理访问权限、窃取数据并执行任意代码。此漏洞CVE-2023-34362已被广泛利用,CLOP 勒索软件组织已针对知名政府、金融、媒体、航空和医疗机构发起了多次攻击。
MOVEit Transfer 是一款商业安全托管文件传输软件解决方案,支持使用 SFTP、SCP 和基于 HTTP 的上传在组织及其客户之间安全传输文件。
我们发现了该漏洞的公开利用代码。在本博客中,我们将了解此代码如何滥用 SQL 注入来获取 sysadmin API 访问令牌,然后使用此令牌滥用反序列化调用,从而在目标计算机上执行远程代码执行。
由于 MOVEitISAPI.dll 中的错误,在处理 HTTP 请求中的标头时,它会错误地提取以 X-siLock-Transaction 结尾的标头。通过提供两个 X-siLock-Transaction 标头(一个带前缀,一个不带前缀),可以指定将请求转发到 guestacces.aspx 所需的任何值。
-
XX-siLock-Transaction:folder_add_by_path 标头将匹配 MOVEitISAPI.dll 的条件并将请求传递给 machine2.aspx。
-
X-siLock-Transaction:session_setvars只会由machine2.aspx执行,并将请求转发到guestaccess.aspx。session_setvars 包含将请求转发到 guestaccess.aspx 所需的会话变量集。
图 1:向 guestaccess.aspx 发出 HTTP 请求的代码
图 2:会话变量(来源:https ://www.horizon3.ai/moveit-transfer-cve-2023-34362-deep-dive-and-indicators-of-compromise/ )
POST 请求发送到 guestaccess.aspx,并设置“MyUsername”、“MyPkgAccessCode”和“MyGuestEmailAddr”等标头,以便生成创建会话所需的 CSRF 令牌。
使用此 CSRF 令牌,我们可以在 guestaccess.aspx 上触发 SQL 注入,执行 SQL 语句列表。
MOVEit 应用程序将包含注入漏洞的 session_vars 标头视为电子邮件地址列表。然后,MOVEit 应用程序使用逗号作为分隔符分割列表,然后将其传递给 SQL 引擎。
然后,我们可以创建一个 JSON Web 令牌,并使用它来获取 sysadmin API 访问令牌。
图 6:生成 sysadmin API 访问令牌的代码
通过系统管理员访问权限,我们可以通过检索/上传/更新数据和删除文件来操作数据库。
在此 PoC 中,脚本将文件写入 C:WindowsTempmessage.txt。使用各种方法,我们可以将替代有效负载上传到目标机器。
为了实现远程代码执行,我们需要数据库中的 State 值来包含编码的序列化负载。正如我们在图 7 中看到的,有效负载位于“注释”字段中。通过使用 SQL 注入,我们可以将“Comment”的值复制到“State”字段,并通过滥用反序列化调用,我们可以实现远程代码执行。
我们知道,该漏洞据称被 CLOP 勒索软件组织利用,通过在 C:MOVEitTransferwwwroot 目录中部署一个 Web shell 后门(通常名为human2.aspx) 。由于攻击媒介允许他们立即执行勒索软件,因此他们部署此 Web shell 只是为了保持持久性。
通过分析 Web shell 后门,我们了解到发送到后门的所有命令都是通过额外的 HTTP 标头发送的,这些标头的名称为:
它要求输入密码才能连接到通过 X-siLock-Comment 标头发送的后门。如果密码无效,服务器会返回404状态码,假装后门不存在。
如果“-2”与 X-siLock-Step1 标头一起发送,后门将从数据库中删除“健康检查服务”用户。
如果“-1”与 X-siLock-Step1 标头一起发送,后门将返回所有文件列表的 GZIP 流,包括数据库中存在的文件 ID、名称、大小、位置和所有者。
如果使用 X-siLock-Step1 标头发送任意数字,后门会在数据库中添加一个新的“健康检查服务”管理员用户,并为该帐户创建一个活动会话。仅当“健康检查服务”用户不存在时才能执行此操作。
如果设置了 3 个标头,设置了带有 X-siLock-Step1 的机构 id、带有 X-siLock-Step2 的文件夹 id、带有 X-siLock-Step3 标头的文件 id,则后门会尝试下载文件。机构ID、文件夹ID、文件ID,可以通过攻击流程中的步骤2攻击成功获得。
有报告称组织受到此漏洞的影响。随着该漏洞获得越来越多的关注以及概念验证的公开,我们怀疑该漏洞的利用可能会增加。我们建议客户通过安装“ K7 Total Security”等信誉良好的安全产品来保护他们的设备,并保持产品更新。还应尽快实施供应商提供的缓解措施以保持保护。
5b566de1aa4b2f79f579cdac6283b33e98fdc8c1cfa6211a787f8156848d67ff
6015fed13c5510bbb89b0a5302c8b95a5b811982ff6de9930725c4630ec4011d
4359aead416b1b2df8ad9e53c497806403a2253b7e13c03317fc08ad3b0b95bf
7c39499dd3b0b283b242f7b7996205a9b3cf8bd5c943ef6766992204d46ec5f1
cf23ea0d63b4c4c348865cefd70c35727ea8c82ba86d56635e488d816e60ea45
供应商的安全公告 – https://community.progress.com/s/article/MOVEit-Transfer-Critical-Vulnerability-31May2023
概念验证 – https://github.com/horizon3ai /CVE-2023-34362/blob/master/CVE-2023-34362.py
女猎手的报告 – https://www.huntress.com/blog/moveit-transfer-ritic-vulnerability-rapid-response
Assetnote 的报告 – https://blog.assetnote.io/2023/06/07/moveit-transfer-patch-diff-adventure/ 和 https://blog.assetnote.io/2023/06/13/moveit-transfer-第二部分/
原文始发于微信公众号(Ots安全):CVE-2023-34362:MOVEit 传输利用分析