weblogic漏洞cve-2024-21006分析

2024-05-18 515 0

概述

Oracle发布了安全公告,weblogic server存在远程代码执行漏洞(CVE-2024-21006),利用该漏洞,攻击者可以通过T3/IIOP协议向目标服务器发送恶意请求,获取敏感信息。涉及的版本包括WebLogic Server 12.2.1.4.0和WebLogic Server 14.1.1.0.0。

原理

通过绑定指向恶意ldap服务器的weblogic.application.naming.MessageDestinationReference实例,在调用Context.lookup对JNDI上下文的对象实例进行查找时,触发指向ldap服务器的恶意代码的执行。

环境搭建

  1. weblogic漏洞vmware环境
    • windows7
    • java的jdk版本小于等于1.8.191
    • weblogic server版本12.2.1.4.0或14.1.1.0.0
    • Oracle\Middleware\Oracle_Home\user_projects\domains\base_domain\bin\setDomainEnv.cmd文件中,在if "%debugFlag%"=="true"语句前增加两行set debugFlag=true和set DEBUG_PORT=9999
  2. idea攻击项目主机环境
    • windows10系统
    • 生成wlfullclient.jar
      1. 在安装目录Oracle\Middleware\Oracle_Home\wlserver\server\lib下,执行cmd命令,java -jar ../../../modules/com.bea.core.jarbuilder.jar
      2. 生成wlfullclient.jar
    • 在idea中加载wlfullclient.jar

weblogic漏洞cve-2024-21006分析插图

weblogic漏洞cve-2024-21006分析插图1

在第二步选择jdk

weblogic漏洞cve-2024-21006分析插图2

在第三步选择生成的wlfullclient.jar文件

  1. idea调试项目主机环境
    • windows10
    • 将weblogic server安装目录下的wlserver目录,全部复制到一个单独目录,并用idea加载,作为调试项目
    • 利用everything或totalcommand等工具,找到安装目录下的全部jar包,并复制到一个单独目录
    • 配置jar包环境

weblogic漏洞cve-2024-21006分析插图3

weblogic漏洞cve-2024-21006分析插图4

在第二步中选择生成的全部jar包所在目录

  1. 下载LDAP服务器工具
  2. 在虚拟机vmware上启动weblogic
    • Oracle\Middleware\Oracle_Home\user_projects\domains\base_domain\startWebLogic.cmd
  3. 在idea调试项目中配置远程调试服务

weblogic漏洞cve-2024-21006分析插图5

weblogic漏洞cve-2024-21006分析插图6

weblogic漏洞cve-2024-21006分析插图7

在第三步中,输入虚拟机的IP地址和在weblogic中配置的调试端口号

  1. 运行攻击项目

weblogic漏洞cve-2024-21006分析插图8

圈1是ldap服务器IP地址,即虚拟机的主机网关,圈2是"calc.exe"字符串的base64编码,在目标weblogic服务器上远程运行的程序。单独执行攻击项目,会在虚拟器上弹出windows计算器程序。

调试
  1. 在虚拟机上启动weblogic
  2. 在主机上启动ldap服务
  3. 在主机上启动idea的远程调试项目,按两次shift键,调出搜索框,输入MessageDestinationReference,双击找到的类,在该类的lookupMessageDestination函数的最后return ic.lookup(this.jndiName)加断点

weblogic漏洞cve-2024-21006分析插图9

weblogic漏洞cve-2024-21006分析插图10

weblogic漏洞cve-2024-21006分析插图11

点击调试按钮,当显示如下所示连接信息时,表示调试项目连接weblogic server成功,等待攻击项目运行。

weblogic漏洞cve-2024-21006分析插图12

  1. 启动idea的攻击项目

查看调用栈

<init>:62, AbstractTranslet (com.sun.org.apache.xalan.internal.xsltc.runtime)
<init>:-1, ExploitleOPGM9Rhd
newInstance0:-1, NativeConstructorAccessorImpl (sun.reflect)
newInstance:62, NativeConstructorAccessorImpl (sun.reflect)
newInstance:45, DelegatingConstructorAccessorImpl (sun.reflect)
newInstance:423, Constructor (java.lang.reflect)
newInstance:442, Class (java.lang)
getObjectFactoryFromReference:163, NamingManager (javax.naming.spi)
getObjectInstance:189, DirectoryManager (javax.naming.spi)
c_lookup:1085, LdapCtx (com.sun.jndi.ldap)
p_lookup:542, ComponentContext (com.sun.jndi.toolkit.ctx)
lookup:177, PartialCompositeContext (com.sun.jndi.toolkit.ctx)
lookup:205, GenericURLContext (com.sun.jndi.toolkit.url)
lookup:94, ldapURLContext (com.sun.jndi.url.ldap)
lookup:417, InitialContext (javax.naming)
lookupMessageDestination:62, MessageDestinationReference (weblogic.application.naming)
getObjectInstance:20, MessageDestinationObjectFactory (weblogic.application.naming)
getObjectInstance:321, NamingManager (javax.naming.spi)
lookup:308, WLEventContextImpl (weblogic.jndi.internal)
lookup:435, WLContextImpl (weblogic.jndi.internal)
lookup:417, InitialContext (javax.naming)
resolveObject:460, NamingContextImpl (weblogic.corba.cos.naming)
resolve_any:367, NamingContextImpl (weblogic.corba.cos.naming)
_invoke:114, _NamingContextAnyImplBase (weblogic.corba.cos.naming)
invoke:249, CorbaServerRef (weblogic.corba.idl)
invoke:246, ClusterableServerRef (weblogic.rmi.cluster)
run:534, BasicServerRef$2 (weblogic.rmi.internal)
doAs:386, AuthenticatedSubject (weblogic.security.acl.internal)
runAs:163, SecurityManager (weblogic.security.service)
handleRequest:531, BasicServerRef (weblogic.rmi.internal)
run:138, WLSExecuteRequest (weblogic.rmi.internal.wls)
_runAs:352, ComponentInvocationContextManager (weblogic.invocation)
runAs:337, ComponentInvocationContextManager (weblogic.invocation)
doRunWorkUnderContext:57, LivePartitionUtility (weblogic.work)
runWorkUnderContext:41, PartitionUtility (weblogic.work)
runWorkUnderContext:655, SelfTuningWorkManagerImpl (weblogic.work)
execute:420, ExecuteThread (weblogic.work)
run:360, ExecuteThread (weblogic.work)

在lookupMessageDestination函数中的断点处,就进入java原生模块的上下文资源查找逻辑中。利用jndi和ldap机制的漏洞,基本最终都是进入到这里。比如fastjson的系列漏洞。

流程图

weblogic漏洞cve-2024-21006分析插图13

解决方法

  1. 关闭iiop和t3协议
  2. 升级weblogic补丁程序

4A评测 - 免责申明

本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。

不得将上述内容用于商业或者非法用途,否则一切后果请用户自负。

本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。

如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。敬请谅解!

程序来源网络,不确保不包含木马病毒等危险内容,请在确保安全的情况下或使用虚拟机使用。

侵权违规投诉邮箱:4ablog168#gmail.com(#换成@)

相关文章

办事处网络安全监控与事件响应;国外员工终端安全性怎么保障 | FB甲方群话题讨论
拿不下总统之位,那就用热加载拿下验证码识别与爆破好了!
Sooty:一款SoC分析一体化与自动化CLI工具
shiro CVE-2016-6802 路径绕过(越权)
Apache Solr 身份验证绕过漏洞(CVE-2024-45216)详解
llama_index的CVE-2024-4181漏洞根因分析

发布评论