前言
本教程及工具僅供技術學習交流、請勿用於非法行爲、否則後果自負
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
環境安裝教程自行百度比較簡單
利用的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