利用ysoserial生成有回显的java反序列化payload(socket监听方式)

释放双眼,带上耳机,听听看~!
在测试过程中,遇到存在java反序列化漏洞的环境,一般使用ysoserial来生成反序列化payload,但ysoserial一般用来执行命令,或者利用JRMPListener开启指定端口,利用JRMPClient发送攻击数据。JRMPListener需要使用ysoserial的JRMPClient

在测试过程中,遇到存在java反序列化漏洞的环境,一般使用ysoserial来生成反序列化payload,但ysoserial一般用来执行命令,或者利用JRMPListener开启指定端口,利用JRMPClient发送攻击数据。

JRMPListener需要使用ysoserialJRMPClient来生成序列化的对象发送到服务端的JRMPListener进行反序列化操作,来达到执行命令看到回显的目的。

为了方便测试目标主机是否存在漏洞,我利用socket实现了命令执行并将结果返回给攻击主机。

下载ysoserial源码,查看payload生成过程,发现其实是在Gadgets.java中把我们输入的命令拼接到了Runtime.getRuntime().exec();里:

image.png

cmd参数中的内容修改为以下代码:

以下代码功能为,监听本地6666端口,等待客户端连接,客户端连接后,接收客户端输入命令,执行后将结果返回

image.png

fastjson反序列化漏洞为例:其中用到了lightless师傅fastjson反序列化payload生成代码:https://www.lightless.me/

将原本插入cmd字符串中的java代码替换成上图代码

image.png

利用lightless师傅的代码生成开启socket监听的fastjson反序列化payload

image.png

利用我自己编写的存在shiro+fastjson反序列化漏洞的环境,验证是否监听端口成功:

image.png

发送fastjson反序列化payload后,服务端会没有响应回来,开启一个ServerSocket,会让线程进入阻塞状态来等待客户端的连接:

image.png

利用反序列化payload开启监听了6666端口

image.png

Payload成功执行后,就可以使用客户端进行连接:

image.png

以上只是演示一种思路,利用ysoserial,可以将任意java代码插入到静态代码块中执行

给TA买糖
共{{data.count}}人
人已赞赏
HackerNews

优傲机器人加速PT JVC电子有限公司自动化步伐

2019-6-14 10:12:48

HackerNews

【NSC2019】7大关键词 解析网络安全行业发展新动向

2019-6-16 9:16:00

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索