JNDI高版本rce失效問題
原因:
主要還是協議控制高版本的一般都會關閉如rmi,ldap等協議遠程加載的類
com.sun.jndi.rmi.object.trustURLCodebase、com.sun.jndi.cosnaming.object.trustURLCodebase的默認值變為false,即不允許從遠程的Codebase加載Reference工廠類,不過沒限制本地加載類文件。
LDAP限制:com.sun.jndi.ldap.object.trustURLCodebase屬性的默認值被調整為false,導致LDAP遠程代碼攻擊方式開始失效。這里可以利用javaSerializedData屬性,當javaSerializedData屬性value值不為空時,本地存在反序列化利用鏈時觸發。
所有總結一下 就是遠程利用不了 就是利用本地第三方組件的鏈或者是反序列化鏈進行利用
利用:JNDI plus
工具
https://github.com/cckuailong/JNDI-Injection-Exploit-Plus
運行工具? 可以發現有三個大標題? 第一個就是 遠程JNDI鏈接
這個也有提示就是內核不能大于 121
第二個就是本地的JNDI鏈接? ?這個需要配合spring 或者 tomcat,Groovy(這個是java動態腳本的運行依賴)
第三個就是本地的反序列化鏈? 實際上這個就是看對方的jdk的包內的依賴進行利用
我現在的java版本 :
運行一下遠程的鏈接
運行不會彈出計算機
使用本地鏈 本地搭建了tomcat 所有可以使用第一個鏈
/localExploitel
然后測試一下本地沒有的依賴
進行利用
沒有結果 這個說明當前的利用環境必須是有第三方依賴項目進行支持的
最后一個就是反序列化鏈配合JNDI 這個非常好用
先測試這個cb鏈
如果使用對方環境沒有的鏈也會失敗
利用:JAVA-chains
https://java-chains.vulhub.org/docs/intro
從說明書大概可以知道 只有 兩種
使用:
這個的其實就是上面的本地reference利用
或者是使用RMi的序列化? 這個需要相應的鏈條對方需要有
本地的項目的cb是1.83的
找到相應的版本
JYso
后期利用項目這個項目主要的作用就是后滲透鏈接msf
https://github.com/qi4L/JYso
開啟
java -jar JYso-1.3.5.1.jar -j
然后這個就是 利用的端口
自動化的工具(一鍵梭哈)
https://github.com/B4aron1/JNDIBypass
java -jar JNDIBypass.jar -a 192.168.21.13 -ms calc -p 1390