weblogic CVE-2020-2555 反序列化RCE 復現

前言

本教程及工具僅供技術學習交流、請勿用於非法行爲、否則後果自負

0x01 漏洞說明

2020年3月6日,Oracle Coherence 反序列化遠程代碼執行漏洞(CVE-2020-2555)的細節被公開,Oracle Coherence爲Oracle融合中間件中的產品,在WebLogic 12c及以上版本中默認集成到WebLogic安裝包中,攻擊者通過t3協議發送構造的序列化數據,能過造成命令執行的效果
在這裏插入圖片描述

0x02 影響版本

  • Oracle weblogic 12.1.3.0.0
  • Oracle weblogic 12.2.1.1.0
  • Oracle weblogic 12.2.1.2.0
  • Oracle weblogic 12.2.1.3.0
  • Oracle weblogic 12.2.1.4.0

通過研究發現 Weblogic 10.3.6.0 版本不受影響範圍內,雖然該版本默認自帶了 Coherence(3.7),通過調試發現該版本默認並未啓用 Coherence,所以 Weblogic 10.3.6.0 不在受影響範圍內。

0x03 漏洞利用

靶機環境
window server 2008 r2
jdk8u202
weblogic 12.2.1.4.0
ip:192.168.2.123

攻擊機環境
windows 10
jdk8u73

環境安裝教程自行百度比較簡單

JDK安裝包下載

Weblogic安裝包下載地址

利用的POC https://github.com/Y4er/CVE-2020-2555

下載完後新建個項目把代碼和包都放進去

在這裏插入圖片描述

打開CVE_2020_2555.java修改執行的命令
在這裏插入圖片描述

這裏的test.ser 是生成的payload文件位置和名字,可以修改成自己想要的位置和名字, 這裏就在桌面生成test.ser文件
在這裏插入圖片描述

這裏可以修改成要執行的命令

cmd.exe /c 是執行windows命令

/bin/bash -c 是執行linux命令

在這裏插入圖片描述

這裏的T3ProtocolOperation.send("192.168.2.123", "7001", payload);就是開始攻擊

serialize(badAttributeValueExpException);是序列化生成payload文件

如果只需要生成文件的話可以把發送payload攻擊那行註釋掉,不然的話如果目標無效就不能生成了

這裏我註釋掉,然後保存運行

運行完就會在桌面上生成一個test.ser文件了

複製到weblogic_t3.py目錄下

開始攻擊

在這裏插入圖片描述

0x04 注意的地方

coherence.jar要使用和目標版本一致的,不然會有serialVersionUID不一致的問題。

coherence.jar位置在這

在這裏插入圖片描述

如何查看版本呢

目標:7001/console/login/LoginForm.jsp

在這裏插入圖片描述

0x05 修復建議

升級補丁,參考oracle官網發佈的補丁https://www.oracle.com/security-alerts/cpujan2020.html 如果不依賴T3協議進行JVM通信,禁用T3協議。

進入WebLogic控制檯,在base_domain配置頁面中,進入安全選項卡頁面,點擊篩選器,配置篩選器。 在連接篩選器中輸入:weblogic.security.net.ConnectionFilterImpl,在連接篩選器規則框中輸入 7001 deny t3 t3s 保存生效(需重啓)

0x06 時間線

  • 2020-03-06 漏洞細節被公開
  • 2020-03-06 360-CERT 發佈預警
  • 2020-03-09 360-CERT 發佈分析

0x07 參考鏈接

  • 1.https://cert.360.cn/report/detail?id=15b04e663cc63500a05abde22266b2ee
  • 2.https://y4er.com/post/weblogic-cve-2020-2555/
  • 3.https://xz.aliyun.com/t/7387#toc-7
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章