Weblogic下Shiro反序列化漏洞利用权限获取方法

前言

尽管Shiro反序列化漏洞已经存在多年,但在平时的攻防比赛与红队评估项目中仍然经常遇到。即使主站没有遇到Shiro漏洞,但在主站边缘域名、全资子公司的子域名、边缘资产、微信公众号、微信小程序等地方,总能找到漏洞的踪迹。随着时间推移,现今遇到的Shiro反序列化漏洞变得越来越难以解决,其中很多情况是由于密钥较为复杂,无法绕过WAF防护,或者找不到可用的利用链,导致无法获取权限。

回顾前年测试Weblogic反序列化漏洞的经历,我突然想到,如果使用了Shiro组件的网站部署在Weblogic中间件下,完全可以利用Weblogic中间件的Coherence组件的利用链来进行攻击。Weblogic反序列化漏洞主要通过T3、IIOP协议发送序列化数据包来实现,只要相关类不在Weblogic黑名单中,服务器就会执行恶意代码。同样地,如果序列化数据包使用Shiro组件处理,并且中间件是Weblogic,也应该可以成功反序列化。而且通过构造的反序列化数据包不依赖T3、IIOP流程,可能不受Weblogic黑名单的限制。在一系列本地搭建的各种版本Weblogic虚拟机环境中测试后,发现这一思路是可行的,但也遇到了不少挑战。

技术研究过程

环境搭建

首先需要在Weblogic下搭建一个Shiro网站应用,我从GitHub上找到了一个samples-web-1.2.42.war包,将其上传到Weblogic中间件并进行部署。在部署过程中,一定要确保点击“激活更改”,并在“控制”选项卡下边点击“为所有请求提供服务”,确保环境搭建成功。

图片[1]-Weblogic下Shiro反序列化漏洞利用权限获取方法-山海云端论坛
图片[2]-Weblogic下Shiro反序列化漏洞利用权限获取方法-山海云端论坛
图片[3]-Weblogic下Shiro反序列化漏洞利用权限获取方法-山海云端论坛

反序列化利用链的选择

Weblogic的Coherence组件反序列化漏洞的POC有多个,如CVE-2020-2555、CVE-2020-2883、CVE-2020-14756、CVE-2021-2135等。每个POC对应着Weblogic中间件下的一条反序列化利用链,选择合适的链条需要技巧,因为每个POC都有其优缺点。最终,经过对比筛选,我选择了CVE-2020-2883、CVE-2020-14756、CVE-2021-2135这三个POC作为测试对象。

图片[4]-Weblogic下Shiro反序列化漏洞利用权限获取方法-山海云端论坛

Coherence组件的SUID问题

由于不同Weblogic版本的Coherence库的SUID不同,在反序列化漏洞利用过程中,SUID不匹配会导致无法成功反序列化。为了解决这一问题,我采用了最简单的方法,即利用URLClassLoader类加载不同版本的Coherence的jar包,将不同Weblogic版本的Coherence POC融合进ysoserial工具包中。

图片[5]-Weblogic下Shiro反序列化漏洞利用权限获取方法-山海云端论坛

生成反序列化数据包

根据Shiro组件的加密方式,生成反序列化数据包。

图片[6]-Weblogic下Shiro反序列化漏洞利用权限获取方法-山海云端论坛
图片[7]-Weblogic下Shiro反序列化漏洞利用权限获取方法-山海云端论坛

内存马问题

这部分我选择了借鉴网上靠谱的代码,并对其进行整合,最终成功实现了内存马的注入。

图片[8]-Weblogic下Shiro反序列化漏洞利用权限获取方法-山海云端论坛
图片[9]-Weblogic下Shiro反序列化漏洞利用权限获取方法-山海云端论坛

总结

  1. 实现Weblogic回显的反序列化代码会非常庞大,导致生成的rememberMe的cookie值很长。建议将内存马的代码放在post body中,减少cookie的大小。
  2. 如果使用Weblogic利用链打不成功,可能是目标Weblogic更新了补丁,需要换一个较新的POC。如果仍无法成功,可以考虑利用目标服务器的低版本JDK来通过jndi出网的方法反弹shell。
  3. 上述回显方法引用了Templates模板类,在打Shiro反序列化漏洞时没问题,但在打T3、IIOP时可能会失败,因为该类被加入了Weblogic的黑名单中。
  4. Weblogic版本为10.3.6.0时,使用Coherence打不成功,因为默认未开启。在这种情况下,建议使用JDK-7u21、jre-8u20、CCK1、CCK3的利用链。
  5. 近期,ABC_123发布的几款工具被公布到网上,我在此声明工具都是内部使用的,禁止非法使用。由于微信公众号文章发布后无法修改,为防止工具被恶意篡改,我在此提供工具的md5哈希值。

(声明:ABC_123研发的工具仅用于内部攻防比赛或日常渗透测试,禁止非法使用。如有工具泄露,本人无意愿让工具传播,也不提供下载。)

© 版权声明
THE END
喜欢就支持一下吧
点赞9 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容