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