Shiro-550反序列化漏洞复现

2022-11-02 14:05:24 浏览数 (1)

0x01 漏洞简介

Apache Shiro是一款开源安全框架,提供身份验证、授权、密码学和会话管理。Shiro框架直观、易用,同时也能提供健壮的安全性。

Apache Shiro 1.2.4及以前版本中,加密的用户信息序列化后存储在名为remember-me的Cookie中。攻击者可以使用Shiro的默认密钥伪造用户Cookie,触发Java反序列化漏洞,进而在目标机器上执行任意命令。

  • 影响版本 Shiro <= 1.2.4

0x02 环境准备

  • Ubuntu(192.168.126.130) 搭建漏洞环境
  • Kali(192.168.126.128) 接收反弹Shell
  • Windows(192.168.129) 攻击主机

使用 vulhub 可以快速搭建漏洞环境。

代码语言:javascript复制
cd /vulhub/shiro/CVE-2016-4437
docker-compose up -d

0x03 漏洞检测

1. 验证Shiro框架

首先,使用BurpSuite进行抓包,在请求包中的cookie字段中添加rememberMe=123;,看响应包header中是否返回rememberMe=deleteMe值,若有,则证明该系统使用了Shiro框架。

2. Burp Shiro 漏洞检测插件
  • BurpShiroPassiveScan 点击下载 提取码:j43f

在BurpSuite的扩展(Extend)中安装并启动Shiro检测插件

当BurpSuite抓取到Shiro的数据包时会自动进行检测Key,当发现存在Shiro默认key时会有相应的告警

3. Shiro 漏洞检测工具
3.1 工具一:ShiroExploit By 飞鸿
  • ShiroExploit 点击下载

使用工具检测 Shiro-550 漏洞

选择漏洞检测方式

注意在使用回显进行漏洞检测时,会在目标网站上自动生成一个文件其中记录了执行命令的结果,所以不建议在正式环境测试中使用这种检测方式。

检测到目标存在Shiro反序列化漏洞

3.2 工具二:shiro_attack By j1anFen
  • shiro_attack 点击下载

使用shiro_attack进行爆破Shiro密钥检测漏洞,当目标系统存在漏洞时,检测结果如下图所示:

0x04 漏洞利用

1. 命令执行
  • 演示工具:shiro_attack 点击下载

使用shiro_attack工具可以直接执行命令并回显结果

2. 反弹Shell
  • 演示工具:ShiroExploit 点击下载

首先,在kali上开启nc监听本地1111端口,用来接收反弹的Shell

代码语言:javascript复制
nc -l -p 1111

然后用ShiroExploit工具的反弹Shell给Kali(192.168.126.128)的1111端口。

上述工具利用成功后,在Kali上成功接收到了反弹的Shell

0x05 修复方案

  • 升级Shiro至新版本;
  • 更改默认密钥;

参考文章

  • https://www.cnblogs.com/Cl0ud/p/13412341.html
  • https://github.com/feihong-cs/ShiroExploit/blob/master/README.md
  • https://github.com/j1anFen/shiro_attack/blob/master/README.md

0 人点赞