经过上一期的学习,我们对Weblogic的相关漏洞有了概括的认识,那么这些漏洞是如何利用的呢?下面揭晓~
CVE-2018-2628
1. 测试说明
服务端的IP为:192.xx.xx.136(centos6.9部署weblogic10.3.6)
console访问方式:http://192.xx.xx.136:7001/console/
客户端的IP为:192.xx.xx.128(linux-parrot系统)
利用工具:ysoserial-0.0.6
2. nc反弹过程
查看目标站点是否可以正常访问,测试可正常访问。
在客户端本地进行监听端口。
在客户端监听JRMP协议,端口为1099,连接成功执行nc反弹命令。
执行利用脚本,填写Weblogic的IP、端口、jar包、JRMP监听的IP和端口、JRMPclient
可以看到JRMP有数据产生。
查看之前nc监听的结果,可见已经与weblogic建立连接。
CVE-2017-10271
1. 测试说明
服务端的IP为:192.xx.xx.136(centos6.9部署weblogic10.3.6)
console访问方式:http://192.xx.xx.136:7001/console/
客户端的IP为:192.xx.xx.128(linux-parrot系统)
利用程序地址:https://www.exploit-db.com/exploits/43458/
默认版本可利用的URL`s:
/wls-wsat/CoordinatorPortType
/wls-wsat/CoordinatorPortType11
/wls-wsat/ParticipantPortType
/wls-wsat/ParticipantPortType11
/wls-wsat/RegistrationPortTypeRPC
/wls-wsat/RegistrationPortTypeRPC11
/wls-wsat/RegistrationRequesterPortType
/wls-wsat/RegistrationRequesterPortType11
2. nc反弹过程
查看目标站点是否可以正常访问,测试可正常访问。
在客户端本地进行监听端口。
执行反弹shell利用脚本。
查看执行结果,已反弹成功。
CVE-2017-3506
1. 测试说明
服务端的IP为:192.xx.xx.136(centos6.9部署weblogic10.3.6)
console访问方式:http://192.xx.xx.136:7001/console/
客户端的IP为:192.xx.xx.128(linux-parrot系统)
2. 测试过程
查看目标站点是否可以正常访问,测试可正常访问。
使用POC测试,脚本如果成功执行/bin/touch /tmp/2017-3506,具体发送内容已打印出来,可供参考。
验证命令是否执行
CVE-2014-4210
1. 测试说明
服务端的IP为:192.xx.xx.136(centos6.9部署weblogic10.3.6+Redis2.6.17)
console访问方式:http://192.xx.xx.136:7001/console/
客户端的IP为:192.xx.xx.128(linux-parrot系统)
2. 利用过程
该漏洞利用前提条件为能够访问到SerachPublicRegistries.jsp文件,假设我们通过弱密码登录到weblogic的控制台,尝试访问http://IP:7001/uddiexplorer/SearchPublicRegistries.jsp,看到可以访问成功。
尝试在该URL后添加其它IP地址,查看页面回显。发现有回显提示Received a responsefrom url……证明该域名的443端口是开通的。
请求样例:http://weblogicIP:7001/uddiexplorer/SearchPublicRegistries.jsp?operator=http:// targetIP:port&rdoSearch=name&txtSearchname=sdf&txtSearchkey=&txtSearchfor=&selfor=Business+location&btnSubmit=Search
Weblogic ssrf + Redis未授权访问 = 反弹shell利用过程。
查看目标站点是否可以正常访问,测试存在ssrf页面正常访问。
测试该服务器(或内网其他主机)的6379(6380、6381)是否处于开启状态。如下图所示,证明该服务器监听6379端口,可能正在运行redis服务。
尝试构造利用请求发包测试是否可以反弹shell:
在客户端查看反弹结果:
3. 利用内容分析
以上是将payload编码后的请求内容。
以上是解码后的payload内容。
客户端到redis端通讯协议说明:*3指后面有三个参数、$3指参数长度为3,即set,$1指参数长度为1,即a,$64同理。
4. 利用过程排查
可以查看redis日志查看是否提示将数据库内容写入到磁盘。
查看写入内容是否正确(本次测试请求写入的目标文件为/var/spool/cron/root)
WebLogic弱口令
1. 登录后台
后台页面:IP:7001/console(http为7001,https为7002)
Google关键字:WebLogic Server AdministrationConsole inurl:console
默认用户名密码:
用户名密码均为:weblogic
用户名密码均为:system
用户名密码均为:portaladmin
用户名密码均为:guest
2. 上传webshell
控制台登录成功后点击“锁定并编辑(Lock&Edit)”按钮,进入编辑模式,找到对应的域,点击“部署(Deployments)”按钮,右边切换到部署概要界面,点击“安装(Install)”按钮。
在安装应用程序界面点击“上载文件(upload your file(s))”。
点击“选择文件”按钮,找到事先准备好的war包上传,上传完成点击“下一步”。
选择上传的包名点击“下一步”直至出现“完成”按钮,点击“完成”按钮。
完成部署后,点击“激活更改(Activate Changes)”按钮,新项目状态变为准备就绪,选择新上传的项目,点击“启动按钮(Start)”,启动项目。
如下图所示,上传项目可正常访问。
领取专属 10元无门槛券
私享最新 技术干货