概述
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服务器的恶意代码的执行。
环境搭建
- 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
- idea攻击项目主机环境
- windows10系统
- 生成wlfullclient.jar
- 在安装目录Oracle\Middleware\Oracle_Home\wlserver\server\lib下,执行cmd命令,java -jar ../../../modules/com.bea.core.jarbuilder.jar
- 生成wlfullclient.jar
- 在idea中加载wlfullclient.jar
在第二步选择jdk
在第三步选择生成的wlfullclient.jar文件
- idea调试项目主机环境
- windows10
- 将weblogic server安装目录下的wlserver目录,全部复制到一个单独目录,并用idea加载,作为调试项目
- 利用everything或totalcommand等工具,找到安装目录下的全部jar包,并复制到一个单独目录
- 配置jar包环境
在第二步中选择生成的全部jar包所在目录
- 下载LDAP服务器工具
- 链接https://github.com/WhiteHSBG/JNDIExploit
- 在主机上运行工具 java -jar JNDIExploit-1.4-SNAPSHOT.jar -i <ip address>
- 在虚拟机vmware上启动weblogic
- Oracle\Middleware\Oracle_Home\user_projects\domains\base_domain\startWebLogic.cmd
- 在idea调试项目中配置远程调试服务
在第三步中,输入虚拟机的IP地址和在weblogic中配置的调试端口号
- 运行攻击项目
圈1是ldap服务器IP地址,即虚拟机的主机网关,圈2是"calc.exe"字符串的base64编码,在目标weblogic服务器上远程运行的程序。单独执行攻击项目,会在虚拟器上弹出windows计算器程序。
调试
- 在虚拟机上启动weblogic
- 在主机上启动ldap服务
- 在主机上启动idea的远程调试项目,按两次shift键,调出搜索框,输入MessageDestinationReference,双击找到的类,在该类的lookupMessageDestination函数的最后return ic.lookup(this.jndiName)加断点
点击调试按钮,当显示如下所示连接信息时,表示调试项目连接weblogic server成功,等待攻击项目运行。
- 启动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的系列漏洞。
流程图
解决方法
- 关闭iiop和t3协议
- 升级weblogic补丁程序
4A评测 - 免责申明
本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。
不得将上述内容用于商业或者非法用途,否则一切后果请用户自负。
本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。
如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。敬请谅解!
程序来源网络,不确保不包含木马病毒等危险内容,请在确保安全的情况下或使用虚拟机使用。
侵权违规投诉邮箱:4ablog168#gmail.com(#换成@)