JSCAPE MFT安全托管文件传输产品中发现了 Java 反序列化漏洞。该漏洞后来被分配为 CVE-2023-4528。可以通过将 XML 编码的 Java 对象发送到 Manager Service 端口来利用它,默认情况下,该端口是 TCP 端口 10880(通过 SSL)。成功利用该漏洞可以以rootLinux 上的SYSTEM用户或 Windows 上的用户身份运行任意 Java 代码。如果攻击者对管理端口具有网络级访问权限并且启用了 Manager Service(默认设置),则 CVE-2023-4528 很容易被利用。我们强烈建议关闭服务器(或禁用管理器服务),直到可以对其进行修补。
产品描述
CVE-2023-4528 影响所有平台(Windows、Linux 和 MacOS)上版本 2023.1.9 之前的所有 JSCAPE MFT Server 版本。
影响
成功利用该漏洞可以以 Linuxroot或 WindowsSYSTEM用户身份执行任意 Java 代码。最有可能的攻击媒介将运行 Java 代码,例如
java.lang.Runtime.getRuntime().exec("...shell command...");
但也可以创建纯 Java 有效负载以避免执行另一个进程(因此不会那么容易检测到)。
一旦攻击者执行该级别的代码,他们就可以完全控制系统。他们可以窃取数据、攻击其他网络设备、删除入侵证据、建立持久性以及他们选择的任何其他内容。值得注意的是,似乎很少(如果有的话)JSCAPE MFT Server 实例的管理端口暴露在互联网上,这大大降低了攻击者访问受影响服务的能力。
成功的利用将在日志文件中显而易见。Windows 日志文件是C:program filesMFTServervarlogserver0.log,Linux 是/opt/mft_server/var/log/server0.log. 应调查任何引用“管理连接”的警告或错误消息 - 特别是类转换异常,例如:
08.22.2023 15:56:51 [WARNING] Management connection error: [10.0.0.77:10880 <-> 10.0.0.227:40085].
com.jscape.util.net.connection.Connection$ConnectionException: class java.lang.Runtime cannot be cast to class com.jscape.inet.mftserver.adapter.management.protocol.messages.Message (java.lang.Runtime is in module java.base of loader 'bootstrap'; com.jscape.inet.mftserver.adapter.management.protocol.messages.Message is in unnamed module of loader 'app')
at com.jscape.util.net.connection.Connection$ConnectionException.wrap(Unknown Source)
at com.jscape.util.net.connection.SyncMessageConnectionSyncRawBase.read(Unknown Source)
at com.jscape.util.net.connection.AsyncMessageConnectionSyncRawBase.readNextMessage(Unknown Source)
at com.jscape.util.net.connection.AsyncMessageConnectionSyncRawBase.run(Unknown Source)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: java.io.IOException: class java.lang.Runtime cannot be cast to class com.jscape.inet.mftserver.adapter.management.protocol.messages.Message (java.lang.Runtime is in module java.base of loader 'bootstrap'; com.jscape.inet.mftserver.adapter.management.protocol.messages.Message is in unnamed module of loader 'app')
at com.jscape.util.at.b(Unknown Source)
at com.jscape.util.az.a(Unknown Source)
at com.jscape.inet.mftserver.adapter.management.protocol.a.a(Unknown Source)
at com.jscape.inet.mftserver.adapter.management.protocol.a.read(Unknown Source)
... 8 more
Caused by: java.lang.ClassCastException: class java.lang.Runtime cannot be cast to class com.jscape.inet.mftserver.adapter.management.protocol.messages.Message (java.lang.Runtime is in module java.base of loader 'bootstrap'; com.jscape.inet.mftserver.adapter.management.protocol.messages.Message is in unnamed module of loader 'app')
... 10 more
服务器需要一个Message类,而漏洞利用程序会发送一个不同的类,例如java.lang.Runtime,该类会失败并创建错误消息。
请注意,编写得更巧妙的漏洞在日志文件中可能不会那么明显。
修复措施:
JSCAPE MFT 客户还应关闭公共互联网的端口 10880,确保阻止对 JSCAPE 命令行实用程序使用的二进制管理服务端口(通常为 10880)的外部/公共访问。该端口的设置可在管理界面的“设置”>“管理器服务”>“管理器服务”下找到。
作为应用补丁之前的临时缓解措施,管理员可以阻止对管理服务的访问。在配置页面 ( http://[server]:11880/settings/settings) 上,将Manager Service页面上的Host/IP选项更改为。或者,在“访问”选项卡下设置 IP 过滤器(或阻止所有 IP 地址)。Rapid7 验证了这两种选择都有效。127.0.0.1
原文始发于微信公众号(Ots安全):CVE-2023-4528:JSCAPE MFT 中的 Java 反序列化漏洞(已修复)
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论