JNDI注入漏洞利用工具
JNDI注入利用工具,生成JNDI连接并启动后端相关服务,可用于Fastjson、Jackson等相关漏洞的验证。工具基于JNDI-Injection-Exploit的基础服务框架上,重新编写了攻击利用代码,支持更多更强大的功能,并加入了多种方式进行回显的支持。
本工具支持了利用 JNDI 注入构造多种恶意 payload,其中包括:
名称 | 功能 | 简介 |
---|---|---|
BasicInfo | 获取服务器基础信息 | 打印出 System.getProperties() 中的信息 |
Command | 命令执行 | 反射调用 forkandexec 执行命令 |
DataSourceHack | 获取Spring DataSource 明文 | 获取缓存在上下文中的 DataSource |
DirList | 目录遍历 | 使用 File 对象列目录 |
FileDelete | 文件删除 | 使用 File 对象删除文件 |
FileRead | 文件读取 | 使用 FileInputStream 读取文件 |
FileWrite | 文件写入 | 使用 FileOutputStream 写文件 |
SQL Query | 执行SQL语句 | 使用 JDBC 发出查询 |
SSRF | 访问内网应用 | 发送 HTTP 请求,并将结果返回 |
对于具体功能的构建比较简单,几乎就是正常的功能性编程,只不过部分功能使用了反射,可能不易于阅读。
对于各项参数的配置使用了配置文件的方式,由于是在调用时会读取文件,并未将值进行缓存,所以可以随时修改配置文件中 payload 的值,无需重启服务。
除去基本功能,本工具加入了多种回显方式,使 JNDI 注入的结果能够返回,这样在研究或测试中可以更方便的看到结果,本攻击支持了如下回显方式:
名称 | 功能 | 简介 |
---|---|---|
ExceptionEcho | 报错回显 | throw 一个异常,message 是我们执行的结果 |
OOBEcho | 带外回显 | 向 dnslog 平台发送数据包携带执行结果 |
TomcatEcho | Tomcat 回显 | 通过 Tomcat 获取 response 将结果写入 |
WebLogicEcho | WebLogic 回显 | 通过 WebLogic 获取 response 将结果写入 |
有了这些功能,我们就可以把 JNDI 注入活活玩成 webshell。
使用
使用源代码执行:
下载项目源代码:
- git clone git@github.com:JosephTribbianni/JNDI.git
执行 org.su18.server.ServerStart
的 main()
方法,可以在控制台中看到启动消息。
使用 jar 文件执行:
在 release 下载打包好的文件,解压压缩包,确保配置文件与 jar 文件位于同一目录下,请根据自定义需求修改端口号及其他配置项,运行 jar 文件:
java -jar JNDI-1.0-all.jar
查看生成的恶意类
可以使用 org.su18.asm.frame.Frame
类的 main()
方法生成 .class
文件进行查看。
执行后,会在项目根目录生成文件,使用任意手段 decompile 后可查看逻辑。
使用展示
这里利用 fastjson 结合 jndi 来进行部分功能使用展示:
命令执行 id :
原创文章,作者: Admin ,转载请注明出处:https://secvery.com/2127.html