12.Weblogic 檔案讀取漏洞復現
利用docker環境模擬了一個真實的weblogic環境,其後臺存在一個弱口令,並且前臺存在任意檔案讀取漏洞。
分別通過這兩種漏洞,模擬對weblogic場景的滲透。
Weblogic版本:10.3.6(11g)
Java版本:1.6
弱口令
環境啟動後,訪問 http://192.168.0.132:7001/console 即可跳轉到Weblogic後臺登陸頁面:
本環境存在弱口令:
使用者名稱:weblogic
weblogic常用弱口令: http://cirt.net/passwords?criteria=weblogic
任意檔案讀取漏洞的利用
假設不存在弱口令,如何對weblogic進行滲透?
本環境前臺模擬了一個任意檔案下載漏洞,訪問 http://192.168.0.132:7001/hello/file.jsp?path=/etc/passwd
可見成功讀取passwd檔案。那麼,該漏洞如何利用?
讀取後臺使用者密文與金鑰檔案
weblogic密碼使用AES(老版本3DES)加密,對稱加密可解密,只需要找到使用者的密文與加密
時的金鑰即可。這兩個檔案均位於base_domain下,名為SerializedSystemIni.dat和config.xml,
在本環境中為./security/SerializedSystemIni.dat
SerializedSystemIni.dat是一個二進位制檔案,所以一定要用burpsuite來讀取,
用瀏覽器直接下載可能引入一些干擾字元。在burp裡選中讀取到的那一串亂碼,右鍵copy to file就可以儲存成一個檔案:
config.xml是base_domain的全域性配置檔案,所以亂七八糟的內容比較多,找到其中的
<node-manager-password-encrypted>的值,即為加密後的管理員密碼,不要找錯了:
解密密文
然後使用本環境的decrypt目錄下的weblogic_decrypt.jar,解密密文(或者參考這篇文
章:http://cb.drops.wiki/drops/tips-349.html ,自己編譯一個解密的工具):
可見,解密後和我預設的密碼一致,說明成功。
後臺上傳webshell
獲取到管理員密碼後,登入後臺。點選左側的部署,可見一個應用列表:
點選安裝,選擇“上載檔案”:
上傳war包。值得注意的是,我們平時tomcat用的war包不一定能夠成功,你可以將你的webshell放到本專案的
web/hello.war這個壓縮包中,再上傳。上傳成功後點下一步。
填寫應用名稱:
繼續一直下一步,最後點完成。
應用目錄在war包中WEB-INF/weblogic.xml裡指定(因為本測試環境已經使用了/hello這個目錄,所以你要在本測試
環境下部署shell,需要修改這個目錄,比如修改成/bmjoker):
成功獲取webshell: