大家好,我是ABC_123。春节前weblogic爆出了一个新的漏洞CVE-2023-21839,据说有攻击队曾用这个在野0day打穿了某银行目标。通过官方的漏洞描述来看,应该还是借助jndi来实现反序列化漏洞利用,所以此漏洞成功条件是目标一定要出网,而且T3或IIOP协议开放。与T3协议或IIOP协议相关的weblogic的0day漏洞近几年还会不断地公布出来,要想彻底解决这个漏洞,在不影响业务的前提下,最好还是禁用或者是屏蔽T3协议及IIOP协议。
网上很多文章给出了禁用T3协议及IIOP协议的方法,但大多数不详细,而且部分修复方法有错误,经过ABC_123的验证,给出的详细步骤如下。
1 禁用T3协议过程
进入weblogic的后台之后,选择“安全”—“筛选器”,在“连接筛选器规则”输入
weblogic.security.net.ConnectionFilterImpl
连接筛选器规则中输入:
127.0.0.1 * * allow t3 t3s
0.0.0.0/0 * * deny t3 t3s
最后重启weblogic项目。
经过ABC_123测试,10.x版本的weblogic禁用T3需要重启,否则不会生效。12.x版本不需要重启,点击“保存”就可以立即生效。
2 禁用IIOP协议过程
进入weblogic的后台之后,选择“base_domain”—“环境”—“服务器”,然后在对应服务器设置中选择 “协议”—“IIOP” 选项卡,取消 “启用IIOP” 前面的勾选,然后重启weblogic项目。
经过ABC_123测试,几乎所有版本的weblogic,彻底禁用IIOP协议都需要重启,否则即使点击了“保存”,也不会生效。
经过测试,weblogic9.x、weblogic 10.x(11g)版本禁用T3协议方法详细步骤如下:
首先需要点击“锁定并编辑”,否则“连接筛选器”是灰色界面,无法进行编辑。
之后选择“安全”—“筛选器”,然后参考文章开头给出的文本进行填写,然后点击“保存”。
如果是weblogic 9.x版本,操作方法如下图所示:
点击“保存”之后,需要再点击“激活更改”。
最后发现weblogic后台给出了提示“已激活所有更改。但是, 要使这些更改生效, 必须重新启动这 1 个项目。”
最后需要重启weblogic项目。
经过测试,weblogic 12.1.3.0.0、weblogic 12.2.1.3.0(12c)、weblogic14.x(14c) 版本禁用T3协议详细步骤如下:
登录后台后,直接就可以进行编辑,点击“安全”—“筛选器”,在“连接筛选器”中按照文章前面给出的文本进行填写。
然后点击“保存”,立即生效,不需要重启。如果担心不会生效,那就重启一下weblogic项目,那也是可以的。
经过测试,weblogic9.x、weblogic 10.x(11g)版本禁用IIOP协议详细步骤如下:
进入weblogic后台之后,首先点击“锁定并编辑”,在“base_domain”—“环境”—“服务器”,点击“AdminSever(管理)”项目。
接下来在“协议”—“IIOP”中,取消“启用IIOP”的勾选,点击“保存”。
如果是weblogic9.x版本,操作方法大同小异,按照下图方法进行设置。
之后点击“激活更改”。
之后weblogic后台会给出如下提示,看也来是需要重启weblogic项目的。
经过测试,weblogic 12.1.3.0.0、weblogic 12.2.1.3.0(12c)、weblogic14.x(14c) 版本禁用IIOP协议的详细步骤如下:
登录weblogic后台之后,点开“域结构”—“wl_server”—环境—服务器—“AdminServer(管理)”
接下来取消“启用IIOP”的选中,然后点击“保存”,最后提示“已激活所有更改。但是, 要使这些更改生效, 必须重新启动这 1 个项目”,说明需要重启weblogic项目。
目前很多IPS设备、WAF设备等都可以对恶意的Java反序列化数据包进行阻断,也可以配置防火墙策略,屏蔽T3及IIOP协议。
也可以在weblogic前面放置一个Nginx,只对HTTP协议进行转发,对T3协议及IIOP协议不进行转发,但是这种方法只能杜绝外网攻击,无法杜绝内网横向中对于weblogic反序列化漏洞的攻击。
经过测试,禁用T3及IIOP协议之后,weblogic 10.x返回信息如下所示:
经过测试,禁用T3及IIOP协议之后,weblogic 12.x返回信息如下所示:
Part3 总结
1. 大家如果有什么好的建议或者疑问,可以在公众号后台给我发消息,欢迎批评指正。