Java用户注意!赛宁靶场刚还原了Spring4Shell漏洞

漏洞描述

作为目前全球最受欢迎的Java轻量级J2EE应用程序开源框架,Spring允许开发人员专注于业务逻辑,简化Java企业级应用的开发周期。Spring Framework存在远程代码执行漏洞(CVE-2022-22965、CNVD-2022-23942),由于Spring框架存在处理流程缺陷,攻击者可在远程条件下,实现对目标主机的后门文件写入和配置修改,继而通过后门文件访问获得目标主机权限。使用Spring框架或衍生框架构建网站等应用,且同时使用JDK版本在9及以上版本的,易受此漏洞攻击影响。

影响版本

  • Spring Framework 5.3.X < 5.3.18
  • Spring Framework 5.2.X < 5.2.2
  • 运行环境为JDK9及以上的版本

漏洞复现

构建网络拓扑

本场景节选自受攻击的某企业网络环境,环境内包含Web站点,内网服务区,办公区,核心内网区。通过Spring Framework RCE漏洞拿下最外层的Web站点,获取内网主机敏感信息,再利用代理工具构建隧道,打通内网。针对不同主机存在的不同漏洞进行逐一击破,最终拿下整个内网,达到最终目的。

渗透过程

阶段一:DMZ区渗透测试任务

-任务1:目标网站端口扫描任务

-任务2:spring Core漏洞利用

阶段二:内网服务区渗透测试任务

-任务1:搭建隧道连接内网任务

-任务2:渗透OA服务器

-任务3:渗透wiki服务器

-任务4:NFS未授权获取主机权限

阶段三:内网域渗透

-任务1:向日葵 RCE漏洞利用

-任务2:域内信息收集

-任务3:获取域服务账户

-任务4:基于资源的约束委派利用

-任务5:横向移动到子域域控

-任务6:SIDHistory版跨域黄金票据利用

今天我们就重点带大家了解一下赛宁靶场中的Spring Framework RCE漏洞利用,事不宜迟,现在就开始吧!

使用浏览器进行访问模拟目标http://10.108.3.208:8080

通过工具进行抓包,写入webshell

用webshell管理工具连接,执行命令

成功执行命令。

修复建议

-官方修复建议-目前,Spring官方已经在5.2.20,5.3.18版本修复上述漏洞,用户请及时升级到安全版本。https://github.com/spring-projects/spring-framework/tags

缓解措施

赛宁网安提醒您:若不便对应用进行升级操作,请及时配置相应缓解措施,以免遭受攻击。

1.使用WAF缓解

用户请根据实际部署业务的流量情况,在WAF或其他网络防护设备上实现对”classLoader.”,”class.module.*”,”class.”,”Class.”,”.class.”,”.Class.”, 等字符串的规则过滤,请注意其中流量特征 “class.module.*” 对大小写不敏感。用户注意在部署规则后,对业务允许情况进行测试,避免产生额外影响。

2.其他临时缓解措施

全局搜索 @InitBinder注解,判断方法体内是否有dataBinder.setDisallowedFields方法,如果有使用则在原来的黑名单中添加:{“class.”,”Class.”,”.class.”,”.Class.”} (注:如果此代码片段使用较多,需要每个地方都追加)在应用系统的项目包下新建以下全局类,并保证这个类被Spring 加载到(推荐在Controller 所在的包中添加)。完成类添加后,需对项目进行重新编译打包和功能验证测试。并重新发布项目。与此同时,请做好资产自查以及预防工作,以免遭受黑客攻击。