java JNDI高版本绕过 工具介绍 自动化bypass
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