HelloWorDomain
作者HelloWorDomain联盟成员·2018-04-26 13:55
其它·保密

WebLogic CVE-2018-2628漏洞说明与修复方案

字数 2601阅读 6137评论 0赞 2

WebLogic CVE-2018-2628

漏洞说明与修复方案

1、漏洞发布背景

北京时间4月18日凌晨,Oracle官方发布了4月份的关键补丁集,其中包含高危漏洞(CVE-2018-2628),通过该漏洞,攻击者可以在未授权的情况下远程执行代码。
官方链接:http://www.oracle.com/technetwork/security-advisory/cpuapr2018-3678067.html

2、实现原理

通过前几次反序列化漏洞,WebLogic已经将互联网暴漏的Poc都加入了黑名单,但是黑客却可以通过t3协议绕过黑名单限制,自己构建一个Poc.
攻击者通过weblogic管理服务器所在的IP、端口上的t3服务握手,之后一步步通过readObject操作读取恶意封装的代码,之后将恶意代码的payload发送回请求方。从而实现入侵。
入侵脚本效果展示:
1.png

1.png

如上所示,成功执行了恶意Java封装代码,并获取了回显信息到 payload.out
危险评估
此漏洞为高危漏洞,攻击者可利用此漏洞远程执行代码,包括而不仅限于:杀死生产进程,获取生产业务数据,植入木马,挖矿等...

3、影响版本

WebLogic Server 9
WebLogic Server 10g
WebLogic Server 11g
WebLogic Server 12C

4、官方方案

4.1、补丁介绍

对于Oracle支持周期以及扩展周期内的版本,Oracle会提供补丁,按Oracle官方说明文档,最新版补丁集已经修复此漏洞(实际测试部分Poc依然可以实现攻击操作)
2.png

2.png

对于过了支持周期和扩展支持周期内的版本,官方建议升级到扩展周期内的版本,之后进行补丁安装。(如何进行升级,官方的文档有非常详细的说明,之前的组内分享已经发出过了,这里不做具体说明。)
但是升级会导致环境变化,对于生产环境来说具有极大的不确定性,部分系统会因为兼容性的问题导致不能正常工作,这里需要了解之后介绍到的备用方案。具体参见本文(临时方案部分)
补丁升级(并尝试攻击,结果攻击成功)

4.2、WLS10.3.6(11g)

1、 使用安装中间件服务器的用户登陆中间件服务器所在机器。
2、 停止该机器上所有的WLS中间件的Java进程,(如果在Windows机器上则需要注意停止WLS注册的服务,否则会因为权限问题导致补丁升级时报Java.IO的错误)。
3、 进入中间件安装目录,示例:
3.png

3.png

4、 进入bsu目录,以二进制方式上传补丁p27238412_1036_Generic.zip到该目录,通过该补丁升级BSU工具,这样将极快的提升补丁安装速度,原来需要半个小时的操作,升级后只需要几分钟(注:该操作只会影响补丁冲突检查时间,不影响最终补丁的安装)
4.png

4.png

5、 进入cache_dir,(没有则手动创建),上传补丁到该目录,并解压(也可以解压后上传到该目录)
6、 5.png

5.png

7、 返回bsu目录,修改bsu脚本,防止内存溢出,建议Xmx大于1.5G
6.png
6.png

8、 执行bsu脚本(用法如下)
7.png

7.png

9、 安装补丁(注意如果是Windows建议用管理员权限开启CMD)

 ![8.png](/home/attachment/201804/26/897713_152472192571578.png)

10、启动原来停止的进程和服务。
9.png

9.png

11、尝试攻击,发现攻击成功
10.png

10.png

4.3、WLS12.2.1.3(12c)

WLS12.1.3、WLS12.2.1.2、WLS12.2.1.3版本的WLS都使用Opatch安装补丁,所以仅以WLS12.2.1.3为例介绍补丁安装,并展示攻击结果,不再截图。
1、 使用安装中间件服务器的用户登陆中间件服务器所在机器。
2、停止该机器上所有的WLS中间件的Java进程,(如果在Windows机器上则需要注意停止WLS注册的服务,否则会因为权限问题导致补丁升级时报Java.IO的错误)。
3、检查如下环境变量,确保Opatch正确执行
JDK环境变量,确保你使用的JDK就是你之前安装的JDK
ORACLE_HOME,确保你补丁最终安装的位置,也就是你WebLogicServer所在位置
4、解压补丁包p27342434_122130_Generic.zip
5、进入解压后的目录,通过命令
Windows下:
%ORACLE_HOME%/OPatch/opatch apply
类Unix下:
$ORACLE_HOME/OPatch/opatch apply
6、尝试攻击,还是成功了(无奈)

临时方案

绿盟方案

思路:由官方提供的过滤器彻底过滤t3和t3s协议,在现有的攻击Poc上从源头阻止构建攻击代码
11.png

11.png

连接筛选器填:weblogic.security.net.ConnectionFilterImpl
筛选规则填取: 7001 deny t3 t3s (根据需要修改)
重启生效。
尝试攻击
12.png

12.png

缺点:t3协议是非常重要的WebLogic内部的通讯协议。禁用后会影响到使用t3协议启动的受管节点,WLST监控脚本、停止脚本...等等

推荐临时方案

思路:
需要禁用t3协议,但是不能禁死,对于受管节点或有需求的特定节点,需要放开限制。
参考官方SR链接:
Steps to Configure Weblogic Connection Filters ( Doc ID 1508748.1 )
Connection-filter Rules To Allow Few Ips To Access One Port And To Allow All Ips To Access Another Port ( Doc ID 1494692.1 )
参考官方Doc链接
http://download.oracle.com/docs/cd/E12839_01/web.1111/e13711/con_filtr.htm#i1029357
13.png

13.png

总结

CVE-2018-2628漏洞威胁极大,官方的补丁目前测试结果看来并不能防御已知的攻击Poc脚本。
临时方案:建议添加多条筛选器规则,只允许需要的IP 端口使用t3协议。
后续等待官方更新新的补丁解决方案。

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

2

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

X社区推广