Shiro反序列化的检测与利用 – 作者:130421106

作者:掌控安全-核心成员Xiaoc

一、 前言

Shiro 是 Apache 旗下的一个用于权限管理的开源框架,提供开箱即用的身份验证、授权、密码套件和会话管理等功能。

该框架在 2016 年报出了一个著名的漏洞——Shiro-550,即 RememberMe 反序列化漏洞。

4年过去了,该漏洞不但没有沉没在漏洞的洪流中,反而凭借其天然过 WAF 的特性从去年开始逐渐升温,恐将在今年的 HW 演练中成为后起之秀。

二、 原理

事实上,关于shiro的原因网络之上已经有很多的分析。

而且估计大多数人对枯燥的代码分析没多大兴趣。
我这里就不啰嗦了。直接上如何检测以及攻击过程。

对原理感兴趣的小伙伴可以自行百度或者谷歌吧。

三、 如何发现

3.1 第一种情况

多半是发生在登录处,返回包中包含rememberMe=deleteMe这个字段。

上图:

图片[1]-Shiro反序列化的检测与利用 – 作者:130421106-安全小百科

看到这个字眼,基本就可以试试。

实战之中也是多试试,即使漏洞不存在也不会亏。

图片[2]-Shiro反序列化的检测与利用 – 作者:130421106-安全小百科

3.2第二种情况

另一种情况就是,直接发送原数据包,返回的数据包中不存在关键字

可以通过在发送数据包的cookie中增加字段:


  1. rememberMe=deleteMe

然后查看返回数据包中是否存在关键字。

图片[3]-Shiro反序列化的检测与利用 – 作者:130421106-安全小百科

这就要求很多时候需要手动在发送数据包之中增加字段,无疑相对比较麻烦,

有没有什么自动检测的工具吗?

有,当然有!

四、 自动检测Shiro反序列化之burp插件

先看效果:

图片[4]-Shiro反序列化的检测与利用 – 作者:130421106-安全小百科

这是刚刚我在测试的时候,插件自动发现的。

这期间,我们什么都不用操作,

仅仅需要过一段时间自己看看没有漏洞网站即可。

安装过程:

4.1 将jar包放到一个文件内,

建议在burp根目录文件夹下建立一个插件的文件夹。

路径最好不要出现中文。

图片[5]-Shiro反序列化的检测与利用 – 作者:130421106-安全小百科

4.2 点击—插件—添加—会弹出窗口。

图片[6]-Shiro反序列化的检测与利用 – 作者:130421106-安全小百科

4.3. 选定插件,下一步,关闭

图片[7]-Shiro反序列化的检测与利用 – 作者:130421106-安全小百科

图片[8]-Shiro反序列化的检测与利用 – 作者:130421106-安全小百科

4.4 测试插件效果

图片[9]-Shiro反序列化的检测与利用 – 作者:130421106-安全小百科

我们去访问一下刚刚那个漏洞网站,随便输入账户密码试试。

图片[10]-Shiro反序列化的检测与利用 – 作者:130421106-安全小百科

图片[11]-Shiro反序列化的检测与利用 – 作者:130421106-安全小百科

如果输入账户密码登录几次,等待1分钟左右,这没有出现的话。

就重启burp在试试。一般是不需要的。

五、 利用漏洞进行攻击

通过以上内容,我们已经找到burp,接下来就是进行攻击利用。

直接上工具:

没有工具的可以去这篇文章下下载:

https://bbs.zkaq.cn/Index/s/yBAwHerO

图片[12]-Shiro反序列化的检测与利用 – 作者:130421106-安全小百科

5.1. 测试存在

图片[13]-Shiro反序列化的检测与利用 – 作者:130421106-安全小百科

四种方式都可以试试,

推荐第四个。

图片[14]-Shiro反序列化的检测与利用 – 作者:130421106-安全小百科

这个资源可以放一个目标网站的一些图片链接等,也可以不放。

接着下一步。

图片[15]-Shiro反序列化的检测与利用 – 作者:130421106-安全小百科

已经发现key。在等待几分钟。

上边的框从灰色变白色,即可以输入命令的时候,代表攻击成功。

5.2. 执行命令

图片[16]-Shiro反序列化的检测与利用 – 作者:130421106-安全小百科

图片[17]-Shiro反序列化的检测与利用 – 作者:130421106-安全小百科

5.3. 反弹shell

先在VPS上开启监听

图片[18]-Shiro反序列化的检测与利用 – 作者:130421106-安全小百科

因为我得VPS(服务器)是linux的,就选择这个。

图片[19]-Shiro反序列化的检测与利用 – 作者:130421106-安全小百科
执行,

图片[20]-Shiro反序列化的检测与利用 – 作者:130421106-安全小百科

返回VPS查看。

图片[21]-Shiro反序列化的检测与利用 – 作者:130421106-安全小百科


图片[22]-Shiro反序列化的检测与利用 – 作者:130421106-安全小百科

5.4. 写入webshell

同样的原理可以写webshell,有时候自带的木马写不成功。

可以换成自己的马木,如冰蝎自带的。

图片[23]-Shiro反序列化的检测与利用 – 作者:130421106-安全小百科

写马。

图片[24]-Shiro反序列化的检测与利用 – 作者:130421106-安全小百科

访问试试,貌似写成功了。

图片[25]-Shiro反序列化的检测与利用 – 作者:130421106-安全小百科

空白页面一般是写入成功,如果未写入成功。访问会爆404等待文件不存在。

但是出现一个蛋疼的问题。

Webshell管理工具连接不上。

冰蝎2、冰蝎3、蚁剑都连接不上。

图片[26]-Shiro反序列化的检测与利用 – 作者:130421106-安全小百科

图片[27]-Shiro反序列化的检测与利用 – 作者:130421106-安全小百科

六、进阶之写内存马

到此就失败了么? 
不不不,上内存马。

6.1. 新工具

老规矩,先看看他的样子。

图片[28]-Shiro反序列化的检测与利用 – 作者:130421106-安全小百科

6.2. 使用

图片[29]-Shiro反序列化的检测与利用 – 作者:130421106-安全小百科

图片[30]-Shiro反序列化的检测与利用 – 作者:130421106-安全小百科

图片[31]-Shiro反序列化的检测与利用 – 作者:130421106-安全小百科

6.3. 写马

不能忘了,之所以到这,是因为写木马无法连接的原因。

开始写马。

图片[32]-Shiro反序列化的检测与利用 – 作者:130421106-安全小百科

图片[33]-Shiro反序列化的检测与利用 – 作者:130421106-安全小百科

出错,换个目录试试。

图片[34]-Shiro反序列化的检测与利用 – 作者:130421106-安全小百科
查看,应该是写入成功。

图片[35]-Shiro反序列化的检测与利用 – 作者:130421106-安全小百科

注意的是,这是冰蝎2的木马。

图片[36]-Shiro反序列化的检测与利用 – 作者:130421106-安全小百科

图片[37]-Shiro反序列化的检测与利用 – 作者:130421106-安全小百科

图片[38]-Shiro反序列化的检测与利用 – 作者:130421106-安全小百科

七、 其他

  1. 第一种工具,直接写马不成功。

    因为可以执行命令了。可以通过命令echo写马。

    工具是死的,人是活的。

  2. 学院有自己的靶场,复现的话可以使用学院的,也可以自己vulhub一键搭建。

  3. 这个文章也是早就想写了,一直拖到现在也算是完成了一个小心思。

  4. 写的比较仓促,有些不足,欢迎大家多多指教补充。

  5. 部分工具在公众号:掌控安全EDU后台回复:“工具”获取安装包,直接下载即可。

来源:freebuf.com 2020-12-30 17:47:38 by: 130421106

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论