如何从流量侧浅谈WebLogic远程代码执行漏洞


本篇文章给大家分享的是有关如何从流量侧浅谈WebLogic远程代码执行漏洞,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。在不久前Oracle官方发布的10月重要补丁更新公告(Oracle Critical Patch Update Advisory – October 2018)中发布了五个基于T3协议的WebLogic远程高危漏洞(CVE-2018-3191、CVE-2018-3197、CVE-2018-3201、CVE-2018-3245免费云主机域名、CVE-2018-3252),CVSS 3.0 Base Score均为9.8分,版本涉及:10.3.6.0, 12.1.3.0, 12.2.1.3,本文将针对其中影响较大的CVE-2018-3191进行复现与分析,并在流量端进行追溯。Weblogic是目前全球市场上应用最广泛的J2EE工具之一,被称为业界最佳的应用程序服务器,其用于构建J2EE应用程序,支持新功能,可降低运营成本,提高性能,增强可扩展性并支持Oracle Applications产品组合。官方文档传送门:https://docs.oracle.com/middleware/12213/wls/INTRO/intro.htm#INTRO123。关于T3协议:说到T3协议就不得不提起JAVA远程方法调用:JAVA RMI(Java Remote Method Invocation),其主要用于实现远程过程调用的Application编程接口。通过RMI可以使计算机上运行的程序调用远程服务器上的对象,其目的是使得远程接口对象的使用尽可能简化。该接口的实现方式之一即为:JRMP(Java远程消息交换协议,Java Remote Message Protocol),也可以使用CORBA兼容的方法实现。详细介绍请参考: https://blog.csdn.net/cdl2008sky/article/details/6844719。T3协议是用于Weblogic服务器和其他Java Application之间传输信息的协议,是实现上述RMI远程过程调用的专有协议,其允许客户端进行JNDI调用。
当Weblogic发起一个T3协议连接的时候,Weblogic会连接每一个Java虚拟机并传输流量,由于通信过程得到了极大的简化,所以使得其在操作系统资源利用上实现的高效以及最大化,同时提高了传输速度。攻击机:靶机:首先,需要探测靶机Weblogic服务的相关信息,通过使用Nmap工具进行快速扫描,命令如下:如下图标记所示,靶机的Weblogic开启了T3协议,且属于受CVE-2018-3191影响的版本范围,因此,存在着漏洞风险。在获取靶机的Weblogic版本及T3协议的相关信息后,即可开始进行漏洞复现。这里,我们需要使用到ysoserial工具,该工具可以针对不同的Weblogic产品给出漏洞利用脚本。下载地址:https://github.com/angelwhu/ysoserial。ysoserial工具基本使用方法:此处,我们在终端输入命令:目的是在本地建立一个JRMPListener (批注:Java Remote Method Protocol,Java远程消息交换协议。是特定于Java技术的、用于查找和引用远程对象的协议。这是运行在RMI之下、TCP/IP之上的线路层协议),用于接收被攻击方的Weblogic请求,并执行指定的bash反弹命令。命令后半段的bash命令进行了base64转码解码的操作,此举是为了避免Runtime.getRuntime().exec() 执行过程中将特殊符号转义,明文为:下图可以看到,我们成功打开了JRMP listener:此举是为了等待靶机反弹bash连接。Weblogic发起远程方法调用,即rmi服务上图可以看到,生成了攻击载荷,且注入成功,此时nc监听的端口会收到反弹的bash,获得root权限。工具下载地址:CVE-2018-3191 payload生成工具:https://github.com/voidfyoo/CVE-2018-3191/releasesWeblogic T3协议发送工具:
https://github.com/Libraggbond/CVE-2018-3191(注:工具安全性请自行查验)如图所示为此次在攻击过程中在流量侧抓取的数据包,其中No.16为带有攻击载荷的流量包:经过对TCP流的追踪,我们可以在此基础上进行详细分析。由于此前Oracle官方没有将com.bea.core.repackaged包中的AbstractPlatformTransactionManager类加入到黑名单中,因此导致了Spring JNDI注入的发生。通过我们对CVE-2018-3191 POC的分析,在此类中,其主要是使用了JtaTransactionManager这个类进行Spring JNDI注入,这点我们也可以在流量端有所发现:综上,通过上述关键特征,我们可以很快提取出waf相关防御规则。
根据本文上述分析,安全工作人员可很快提取相关防御规则升级至WAF系统,由于攻击者是通过T3协议来完成攻击,所以在T3协议访问控制上应该严加管控,ORACLE在本次10月重要披露中除CVE-2018-3252外均可通过T3协议访问控制策略来进行临时防御。通过Weblogic中base_domain的设置页面的”安全”->”筛选器”来进行配置和防御,具体方法不再赘述,请参考网络资料。由于本次公开的漏洞涉及到了几个较大的版本号,所以影响还是非常大的,建议受漏洞影响的用户尽快升级或更新补丁来进行防护。鉴于Weblogic在防御反序列化漏洞上通常采用黑名单的方式,黑名单在攻击防御侧存在严重弊端,所以在升级版本或更新补丁的同时建议将JDK版本升级至最新版本。以上就是如何从流量侧浅谈WebLogic远程代码执行漏洞,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注云编程开发博客行业资讯频道。

相关推荐: 亲历Intel CPU漏洞的正面袭击

作为已经3年多没有写过代码的程序员来说,本篇不应该算是一篇技术型的文章,而是作为服务上千家客户的ToB大数据创业公司的一次经历,可能很多人对于我们的产品了解并不多,所以我先简单介绍下我们的技术和业务应用场景,我们有多个SaaS产品,有给游戏公司提供免费使用的游…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 02/04 10:54
下一篇 02/04 10:54