1 漏洞概述
CVE-2018-2628 是 Oracle WebLogic Server(WLS)核心组件中的一个反序列化命令执行漏洞。此漏洞允许未授权的用户通过 T3 协议在远程服务器上执行任意命令,从而可能完全控制受影响的服务器。
2 影响版本
该漏洞影响了以下版本的 Oracle WebLogic Server:
-
Oracle WebLogic Server 10.3.6.0
-
Oracle WebLogic Server 12.1.3.0
-
Oracle WebLogic Server 12.2.1.2
-
Oracle WebLogic Server 12.2.1.3
3 漏洞原理
此漏洞主要利用了两个技术点:Java 反射机制和 RMI(Remote Method Invocation,远程方法调用)。
-
Java 反射机制:Java 反射机制允许程序在运行时动态地获取类的信息,包括类的所有属性和方法,并且可以调用这些属性和方法。这种动态获取信息和调用方法的功能是 Java 反射机制的核心。
-
RMI:RMI 是 Java 的一部分,用于开发基于 Java 的分布式应用。RMI 在传输过程中使用序列化和反序列化。如果 RMI 服务端端口对外开放,并且服务端使用了像 Apache Commons Collections 这样的库,那么可能会导致远程命令执行。
攻击者可以通过发送精心构造的 T3 协议数据,绕过 WebLogic 的黑名单限制,利用 Java 反射机制和 RMI 的漏洞,在目标服务器上执行任意命令。
4 漏洞部署
进入目录 cd vulhub/weblogic/CVE-2018-2628 漏洞环境部署 docker-compose up -d 查看端口 docker-compose ps
访问 ,您将看到页面,表示环境正在成功运行。
5 漏洞复现
5.1 漏洞验证
工具地址:GitHub - Lighird/CVE-2018-2628: CVE-2018-2628漏洞工具包
我们将工具包放到kali中解压即可
我们可以先用nmap来检测一下目标的服务是否开启
nmap -n -v -p7001,7002 192.168.135.132 --script=weblogic-t3-info
这里可以看到目标开启了7001端口,t3服务开启
确认开启我们可以使用检测工具来检测目标,首先利用
这个工具来检测,cd到目录下,将目标地址填入url.txt中即可
然后我们启动python文件
python2 CVE-2018-2628-MultiThreading.py
我们可以看到成功,证明发出的payload成功,漏洞可以利用。
5.2 漏洞利用
这里我们使用工具:GitHub - jas502n/CVE-2018-2628: Weblogic 反序列化漏洞(CVE-2018-2628)
输入命令:
python CVE-2018-2628-Getshell.py 192.168.135.132 7001 shell1.jsp
这里就是shell的地址,复制之后打开就好了
我们可以看到是root权限了
这里我们需要执行什么命令将命令base64编码即可
比如我这里是ifconfig,将编码的接到=号后面即可
结果
6 漏洞修复建议
-
升级 WebLogic Server:对于受影响的版本,建议尽快升级到 Oracle 发布的修复了此漏洞的最新版本。
-
配置访问控制:如果无法立即升级,可以设置 weblogic.security.net.ConnectionFilterImpl 默认连接筛选器,对 T3/T3s 协议的访问权限进行配置,阻断漏洞利用。
-
关闭不必要的服务:关闭 WebLogic 控制台的 7001 端口(或其他自定义端口),这将自动关闭 T3 服务,从而降低漏洞被利用的风险。但请注意,这可能会影响 WebLogic 的正常功能。
-
网络安全措施:确保网络边界安全,使用防火墙等网络安全设备限制对 WebLogic 服务器的访问。
-
监控和日志记录:实施安全监控和日志记录策略,以便及时发现和响应任何可疑活动。
参考文章
Weblogic WLS Core Components 反序列化命令执行漏洞(CVE-2018-2628)-腾讯云开发者社区-腾讯云